Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 17.08.2010, 11:42   #1
Айнур
AnyKey`щик
 
Регистрация: 20.06.2010
Сообщений: 7
Написано 2 полезных сообщений
(для 2 пользователей)
неполучается заполнить карту random -ом

Неполучается заполнить карту так что бы одна картинка была только два раз.
Вложения
Тип файла: zip cartinki.zip (25.5 Кб, 417 просмотров)

Последний раз редактировалось Айнур, 19.08.2010 в 14:07.
(Offline)
 
Ответить с цитированием
Старый 17.08.2010, 18:47   #2
12121
Нуждающийся
 
Регистрация: 26.12.2008
Сообщений: 57
Написано 22 полезных сообщений
(для 28 пользователей)
Ответ: неполучается заполнить карту random -ом

У тебя же карта 4х4=16 а картинок только 8. Как они могут не повторяться ?
После каждого случайного выбора надо проверять всю карту и сравнивать с выбором. Если совпало то снова выбираем.
И еще вместо всей конструкции if map[x,y]=1 then vivod(img[1],x,y);else . . . напиши vivod(img[map[x,y]],x,y);
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Айнур (19.08.2010)
Старый 19.08.2010, 14:13   #3
Айнур
AnyKey`щик
 
Регистрация: 20.06.2010
Сообщений: 7
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: неполучается заполнить карту random -ом

я ошибся .надо что бы картинка была два раза .я хочу сделать игру для развития памати .Картинки должны быть разбросаны по экрану и закрыты сверху другой картинкой ,А надо найти две одинаковых картинки и их поля очистится.
(Offline)
 
Ответить с цитированием
Старый 19.08.2010, 19:36   #4
_Nox_
ПроЭктировщик
 
Регистрация: 21.06.2009
Адрес: Беларусь, Столбцы
Сообщений: 148
Написано 32 полезных сообщений
(для 57 пользователей)
Ответ: неполучается заполнить карту random -ом

for i:=1 to 8 do mas [i]:=2;
for i:=1 to 4 do
 for j:=1 to 4 do
  begin
   a:=random (8); // я точно не помню какой диапазон даёт рандом, но если 0..8 то сделай его до 7, а когда выбьет 0 то замени на 8
   p:=random (1);
   while mas [a]=0 do //вместо этого можно придумать что-то более весёлое
    begin
     if p = 1 then
      begin
       a:=a+1;
       if a>8 then a:=1;
      end else
      begin
       a:=a-1;
       if a = 0 then a:=8;
      end;
    end;   
   map [i,j]:=a;
   mas [a]:=mas [a]-1;
  end;
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Айнур (20.08.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:06.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com