forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   неполучается заполнить карту random -ом (http://forum.boolean.name/showthread.php?t=13151)

Айнур 17.08.2010 11:42

неполучается заполнить карту random -ом
 
Вложений: 1
Неполучается заполнить карту так что бы одна картинка была только два раз.

12121 17.08.2010 18:47

Ответ: неполучается заполнить карту random -ом
 
У тебя же карта 4х4=16 а картинок только 8. Как они могут не повторяться ?
После каждого случайного выбора надо проверять всю карту и сравнивать с выбором. Если совпало то снова выбираем.
И еще вместо всей конструкции if map[x,y]=1 then vivod(img[1],x,y);else . . . напиши vivod(img[map[x,y]],x,y);

Айнур 19.08.2010 14:13

Ответ: неполучается заполнить карту random -ом
 
я ошибся .надо что бы картинка была два раза .я хочу сделать игру для развития памати .Картинки должны быть разбросаны по экрану и закрыты сверху другой картинкой ,А надо найти две одинаковых картинки и их поля очистится.

_Nox_ 19.08.2010 19:36

Ответ: неполучается заполнить карту 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;



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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot