[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Остров 20x20
johniek_comp
У меня есть остров, его размер 20x20, а это [1:1 1:2 1:3 1:4......19:6 19:7 19:8 19:9]

На острове живут тролли зверятка, они передвигаются по карте меняя свои координаты, как это все держать?

location[bear][3:8]
...
location[bear][5:2]

так что ли? и как мне узнавать текущее расположение зверька?

Выливайте все что думаете...

update:
зверьков одного вида может быть не сколько это раз!
самец или самка это два!
если они(зверьки одного вида) находятся на одной территории то они занимаются сексом и рожают ещё одного зверька(раз хомяк, два хомяк шмяк-шмяк-шмяк ещё хомяк smile.gif просто вспомнилось)

я должен все этой толпой управлять...



Спустя 7 минут, 49 секунд (3.05.2012 - 18:29) Invis1ble написал(а):
[3:8] - лучше 2-мерный массив, имхо [3][8]
как узнавать? присваивай каждому свой id, по нему и узнавать будешь

Спустя 1 минута, 35 секунд (3.05.2012 - 18:31) Invis1ble написал(а):
Цитата
я должен все этой толпой управлять...

повелитель хомяков laugh.gif

Спустя 2 минуты, 12 секунд (3.05.2012 - 18:33) johniek_comp написал(а):
Invis1ble
animal[bear][0][M][4][8]

название\id\пол\координата по гор.\по вер.

так что ли?

Спустя 48 секунд (3.05.2012 - 18:34) Dezigo написал(а):
Битовая матрица. Очень быстро smile.gif

Спустя 4 минуты, 45 секунд (3.05.2012 - 18:39) Invis1ble написал(а):
$location = array(
0 => array(0 => 0, 1 => 5, 2 => 0),
1 => array(...),
...
);

echo $location[0][1]; // хомяк с id=5

0 - свободное пространство
как-то так

Спустя 5 минут, 40 секунд (3.05.2012 - 18:44) inpost написал(а):
$unit['id7?'] = array(
'x' => 1,
'y' => 7,
'name' => 'Петр',
'sex' => 1,
);

Спустя 5 минут, 13 секунд (3.05.2012 - 18:50) Dezigo написал(а):
$arr[1][2] = 5;

Заполнить
function declaree($m, $n, $value = 0) {
return array_fill(0, $m, array_fill(0, $n, $value));
}
$t = declaree(20,20,5);
print_r($t);

Спустя 48 секунд (3.05.2012 - 18:50) bodja написал(а):
Вспоминаем что такое обьекты их свойства и методы. biggrin.gif

Спустя 3 минуты, 30 секунд (3.05.2012 - 18:54) Invis1ble написал(а):
bodja
ага, я тоже так подумал. Тут ООП кстати будет.

Спустя 3 минуты, 14 секунд (3.05.2012 - 18:57) johniek_comp написал(а):
bodja
Будет класс animal, там свойства(проценты передвижения, соотношения разные, вероятность пожирания тебе хищником и т.д.) и куча-куча методом которые будут этим всем заправлять, может и не плохая игрушка получится smile.gif

inpost
спасибо за толчок

как же мне за вечер надоест слово array.... dry.gif

Спустя 2 минуты, 2 секунды (3.05.2012 - 18:59) inpost написал(а):
Dezigo
Проблема в количестве разнополых хомячков! smile.gif

Invis1ble
Зачем ООП? Я показал обычный массив, который можно рассматривать как набор объектов, где первым ключем и будет их идентификационный номер. Далее перемещать и изменять как тебе пожелается smile.gif

johniek_comp
Я работаю с этим сейчас на JS. Нет там слова array! smile.gif
Посмотри в сторону массивов, это и есть те же объекты и классы не нужны.

Спустя 2 минуты, 45 секунд (3.05.2012 - 19:02) Invis1ble написал(а):
inpost
Потому что в данном случае логичней пользоваться объектами и их свойствами и методами, чем лепить 100500 массивов и функций. ИМХО.

Спустя 3 минуты, 50 секунд (3.05.2012 - 19:06) inpost написал(а):
Invis1ble
Вообще-то твоё представление свойств - и есть моё представление массивов. Так что злоупотреблять уже будешь ты smile.gif

Спустя 1 минута, 56 секунд (3.05.2012 - 19:08) johniek_comp написал(а):
inpost
Не ну как без класса ты себе это представляешь? Нужно например будет вытащить однополых хомяков, если их > 80% не гомосексуалистами же их делать, буду увеличивать % рождения девочек smile.gif Вот когда-когда, а вот сейчас за все время что я писал реально нужно это ООП.

Спустя 3 минуты, 6 секунд (3.05.2012 - 19:11) Invis1ble написал(а):
inpost
Цитата
Так что злоупотреблять уже будешь ты

не выдумывай

Спустя 3 минуты, 12 секунд (3.05.2012 - 19:14) sebastjan написал(а):
А на чём игру делаешь?

Спустя 1 минута, 36 секунд (3.05.2012 - 19:16) johniek_comp написал(а):
sebastjan
Unity3D+C#

Спустя 2 минуты, 25 секунд (3.05.2012 - 19:18) sebastjan написал(а):
johniek_comp
Ну ничего себе blink.gif

Спустя 2 минуты, 16 секунд (3.05.2012 - 19:20) sebastjan написал(а):
Invis1ble
inpost
А какая разница как бублик назвать. smile.gif Вообще не вижу темы для спора. smile.gif

Спустя 1 минута, 53 секунды (3.05.2012 - 19:22) sebastjan написал(а):
johniek_comp
Так ты модельки уже накрутил в 3Д, показал бы , что ли?

Спустя 3 минуты, 9 секунд (3.05.2012 - 19:25) sharki написал(а):
johniek_comp
Ну тогда явно ООП..куда без него в C#. А по карте...есть полигон 20х20, есть класс описываешь его тупо абстрактно, чтобы в итоге его расширить, и нарисовать свою карту. Далее у тебя есть главный объект, он будет иметь реализацию основных функций, а именно : просчет наступания предела полигона, просчет смежных ему объектов, и т.п (сам думай). Для просчета " смежных ему объектов" тебе надо иметь у каждого объекта(зверька) радиус соприкосновения, для детекции близости между особями. Каждое движение фиксируется в БД, а точнее его координаты на полигоне...а далее тебе надо описывать геометрию и математику в тех самых выше описанных функциях smile.gif

Так же не забывай про интерфейсы, чтобы не было бардака. Плюс ко всему прочти про паттерн наблюдатель, он тебе пригодится

Спустя 1 минута, 6 секунд (3.05.2012 - 19:26) inpost написал(а):
johniek_comp
foreach($unit as $k=>$v)
if($v['sex'] == 1)
echo $k.' самка';

Если есть желание, то можешь показать вариант проще :)
А вообще, для них пишутся функции.

Спустя 1 минута, 49 секунд (3.05.2012 - 19:28) inpost написал(а):
Увидел, ты же не на ПХП, а жаль!
Трёхмерные хомяки, которые размножаются? А я всё думал, кто же такие игры обычно делает...

Спустя 3 минуты, 18 секунд (3.05.2012 - 19:32) Invis1ble написал(а):
Цитата
Вообще не вижу темы для спора.

Я и не спорю. Я высказал свою точку зрения.

Спустя 4 минуты, 10 секунд (3.05.2012 - 19:36) sebastjan написал(а):
smile.gif
Мне бы одним глазком на скрин глянуть персонажей а то всё ООП, да массивы.

Спустя 13 минут, 4 секунды (3.05.2012 - 19:49) johniek_comp написал(а):
sebastjan
Как я персонажей нарисую, я же не дизайнер или как там они называются smile.gif Дилетант скорее всего smile.gif Да и мне не сама игра нравится, а сами алгоритмы, код, и т.д. это меня тянет...по дизайну ничего не готово, но для тебя что-то склепал - такие структуры занимают 2-3 минуты по времени, код не нужен пока smile.gif
user posted image

Спустя 13 часов, 29 минут, 12 секунд (4.05.2012 - 09:18) Zerstoren написал(а):
1) используйте массив [y][x]
2) В них вкладывайте еще ассоциативный массив с инфой о зверушке (а лучше id зверушек)
3) Держите еще один массив на детальную инфу о зверушке (дублируйте в нем координаты x и y).

Так вы сможете по координате определить кто на ней находится,
Дублирующий массив (а лучше юзать ссылку/referrer) будет содержать нужную инфу, которая с легкостью будет получена.

Если нужны совет, можете обратится в ЛС, я сейчас занят разработкой браузерной игрушки и у меня матрица 2000х2000)

Спустя 6 часов, 17 минут, 42 секунды (4.05.2012 - 15:36) johniek_comp написал(а):
Значить есть матрица 20х20, задача такая: хомяк стоит на какой-то координате, и он может двигаться только на одну клетку(всего их 8, рядом стоящих клеток) например хомяк на 8:13, как узнать все соседние...на листочке в клетку нарисовал матрицу и соорудил алгоритм нахождения всех соседних...
<?php
function
location($location = array())
{
return
$access = array(0 => array(0 => $location[0], 1 => $location[1] - 1),
1 => array(0 => $location[0] + 1, 1 => $location[1] - 1),
2 => array(0 => $location[0] + 1, 1 => $location[1]),
3 => array(0 => $location[0] + 1, 1 => $location[1] + 1),
4 => array(0 => $location[0], 1 => $location[1] + 1),
5 => array(0 => $location[0] - 1, 1 => $location[1] + 1),
6 => array(0 => $location[0] - 1, 1 => $location[1]),
7 => array(0 => $location[0] - 1, 1 => $location[1] - 1));
}

location(array(0 => 8, 1 => 13));

?>

если хомяк стоит на 8:13, то клетки на которые он может двигаться это: 7:13,7:14,8:14,9:14,9:13,9:12,8:12,7:12. он двигается на случайную клетку, и меняет свои координаты, и опять получает массив с доступных клеток и снова выбирает куда ему идти :)
Один момент, если он на клетке 1:1, то доступны для передвижения только 1:2,2:1,2:2. Метод выберет не существующие клетки, как сделать что бы такого не было? Тупо if else или массив из не доступных клеток, или в массиве перечислить вообще все клетки поля, а далее !in_array unset() ?

Спустя 7 минут, 15 секунд (4.05.2012 - 15:43) inpost написал(а):
Есть такая глупая вещь, называется: isset smile.gif

Спустя 2 часа, 14 минут, 14 секунд (4.05.2012 - 17:57) SlavaFr написал(а):
Цитата (johniek_comp @ 3.05.2012 - 17:16)
sebastjan
Unity3D+C#

A какое отношение это имеет к php и к разделу "PHP для знатаков"?


Спустя 40 минут, 36 секунд (4.05.2012 - 18:38) johniek_comp написал(а):
SlavaFr
Алгоритмы моя, дорогая, алгоритмы rolleyes.gif

Спустя 1 час, 31 секунда (4.05.2012 - 19:38) SlavaFr написал(а):
Цитата (johniek_comp @ 4.05.2012 - 16:38)
SlavaFr
Алгоритмы моя, дорогая, алгоритмы rolleyes.gif

Да ты пойди в пивной спроси, там тоже расказать могут как с закрытыми глазами стенки без высшей математики искать.
Не ужели ты думаеш что в Unity3D корорый используется для программирования игр или в C# в System.Drawing и уже готовых классы типа Point и Canvas , не кому не приходило в голову решать подобные проблемы? Зачем тогда в ПХП алгоритмы искать, когда они какраз в C# и в Unity3D штапелями лежать должны?

Спустя 17 минут, 52 секунды (4.05.2012 - 19:56) johniek_comp написал(а):
SlavaFr
смысл брать все готовое? мне это нравится, вот и занимаюсь smile.gif

Спустя 23 часа, 28 минут, 59 секунд (5.05.2012 - 19:25) SlavaFr написал(а):
Цитата (johniek_comp @ 4.05.2012 - 17:56)
SlavaFr
смысл брать все готовое? мне это нравится, вот и занимаюсь smile.gif

не кто не заставляет тебя брать горовое, если нравится, то изробретай велосипед заново. Но посмотреть, как готовое работает, вроде тоже не кто не запрещает. Посмотри и зделай лучше!
Частые причины из за которых пишут новое:
1) когда "готовое" по обоснованным причинам не подходит.
2) когда найти готовое и с ним разобратся займет значительно больше времени чем самому написать.
3) когда готовое не понимают.

Ладно, не хочу особо вникаться в причины из за которых ты не разобралсй в Фрамеворках и Библиотеках которыми сам же собераешся работать.
Что касается "ПХП для знатков" и твоей проблемы с клетками которых несуществует, то я советовал бы вообще не засерать память масивом возможных клеток.
Известно что имеется только 8 направлений и то, что в них можно зделать только один шаг.
напиши просто методы которыей позволяет тебе двигатся по этим направлениям, проверяют координаты клетки под этим направление и контролирует является ли эта клетка Valid и нет ли на ней другого хомяка.


_____________
user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.