|
12.07.2007, 23:21
|
#1
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Алгоритм игры Lines
Алгоритм игры Lines
Lines - игра, в которой надо выстроить в ряды не менее определенного количества шариков одного цвета, что бы они исчезли)
|
Hello, World!
Некоторые еще помнят те времена, когда компьютеры встречались в редких ведомствах. Это были 286, 386, 486 компы с MS-DOS. Печатали тогда в Лексиконе, считали в SuperCalk 4, а из игр у всех стояли PackMan'ы и Lines, причем Lines пользовался гораздо большей популярностью, чем PackMan. С появлением Windows 3.1 Lines сменили пасьянсы.
Были попытки (мне они известны) сделать Windows Lines, однако ни одна версия не вернула себе ту популярность, что была у Dos Lines.
Я решил попробывать сделать Lines для Windows средствами OpenGL и пока у меня дела идут отлично. С графикой проблем нет, однако алгоритма, по которому Lines работает у меня нет.
Так вот: может у кто знает принцип этого алгоритма, или у кого завалялись исходники того, досовского Lines. (Они были по-моему на pascal).
|
(Offline)
|
|
13.07.2007, 01:54
|
#2
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений (для 205 пользователей)
|
Re: Алгоритм игры Lines
Скрины покажешь?
может у кто знает принцип этого алгоритма, или у кого завалялись исходники того, досовского Lines.
|
Алгоритм в принципе несложный. ИМХО, тетрис написать сложнее.
Функция Нажатие_На_Кнопку_Мыши
{
определяем, в какую клетку тыкнули мышкой;
если(ни один шарик не выбран)
{
если(клетка не пустая)
запоминаем, какой шарик выбрали;
}
иначе
{
если(клетка пустая)
{
перемещаем в нее шарик;
проверяем, не выстроилась ли линия из 5 шариков;
если(линия выстроилась)
убираем линию;
иначе
{
добавляем несколько шариков в пустые ячейки;
проверяем, не выстроилась ли линия из 5 шариков;
если(линия выстроилась)
убираем линию;
}
}
иначе
запоминаем координаты нового выбранного шарика;
}
}
Писалось сходу после тяжелого рабочего дня, так что алгоритм наверняка далек от оптимального. Но вроде должно работать.
З.Ы.по идее, перед перемещением шарика надо бы еще проверять, есть ли путь от шарика к нужной клетке. Но это уже детали. Если надумаешь, то смотри
http://pmg.org.ru/ai/navigato.htm
http://pmg.org.ru/ai/stout.htm
З.З.Ы.:ты все-таки решил их доделать...Гуд лак.
UPD.:
есть у меня знакомая девушка, которая лайнс делала на С++. Если найду ее, попрошу сорсы.
|
(Offline)
|
|
13.07.2007, 17:32
|
#3
|
AnyKey`щик
Регистрация: 13.07.2007
Сообщений: 1
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Алгоритм игры Lines
В свое время делала Эту игрушку на С++. Остались куски алгоритма. Точно знаю, что там нет мелочей типа итоговой таблицы победителей и т. д. Но сам алгоритм представлен. Надеюсь что мой материал тебе поможет. Есть просьба! как сделаешь свою игру, пришли пожалуйста мне. Заранее спасибо!
|
(Offline)
|
|
14.07.2007, 06:06
|
#4
|
Модератор
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений (для 44 пользователей)
|
Re: Алгоритм игры Lines
Незнаю почему мои пост стерли но если тебе нужны исходники у меня есть на Delphi
|
(Offline)
|
|
25.07.2007, 11:41
|
#5
|
AnyKey`щик
Регистрация: 26.07.2006
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Алгоритм игры Lines
Сообщение от WaReZ_MEN
Незнаю почему мои пост стерли но если тебе нужны исходники у меня есть на Delphi
|
Мне нужны исходники на Delphi? выложи плиз или вышли на мыло [email protected] Буду очень благодарен.
|
(Offline)
|
|
26.07.2007, 02:12
|
#6
|
Модератор
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений (для 44 пользователей)
|
Re: Алгоритм игры Lines
|
(Offline)
|
|
26.07.2007, 07:33
|
#7
|
AnyKey`щик
Регистрация: 26.07.2006
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Алгоритм игры Lines
Спасибо, как ни странно, но я тоже вспомнил вчера про этот сайт. В общем нашел там все, что нужно было. Еще раз спасибо.
|
(Offline)
|
|
26.07.2007, 08:09
|
#8
|
Модератор
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений (для 44 пользователей)
|
Re: Алгоритм игры Lines
Всегда пожалуисто
|
(Offline)
|
|
27.07.2007, 16:56
|
#9
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Алгоритм игры Lines
Sorry, но там ссылка дохлая (ошибка 404) !!!
|
(Offline)
|
|
27.07.2007, 22:21
|
#10
|
Бывалый
Регистрация: 29.03.2007
Сообщений: 662
Написано 199 полезных сообщений (для 448 пользователей)
|
Re: Алгоритм игры Lines
Ничего она не дохлая, только заходил проверял
|
(Offline)
|
|
27.07.2007, 23:49
|
#11
|
Бывалый
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений (для 110 пользователей)
|
Re: Алгоритм игры Lines
у мну оно не работает
у мну страница открывается , но у мну оно не качается
мну растроился
|
(Offline)
|
|
28.07.2007, 14:35
|
#12
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Алгоритм игры Lines
у мну оно не работает
у мну страница открывается , но у мну оно не качается
мну растроился
|
Так вот: значит не у меня одного не качается! Сегодня опять проверил: не качается!
|
(Offline)
|
|
07.08.2007, 14:20
|
#13
|
AnyKey`щик
Регистрация: 26.07.2006
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Алгоритм игры Lines
Зашел, работает, все дело в том что там есть такая инфа от 25.03.2002 г. И так, новый адрес httt://delphigfx.mastak.ru перепишите ссылки.
Старый, т.е. этот сервер, обновляться более не будет.
Но новый адрес не работает совсем. В общем помер он, потому и глючит. Очень жаль.
|
(Offline)
|
|
12.08.2007, 00:08
|
#14
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Алгоритм игры Lines
ВСЕМ, ВСЕМ, ВСЕМ! Привет всем.
Может, кто знает, почему ниже приведенный цикл, исспользуемый мной для поиска собранных линий и их удаления выполняется до бесконечности! Вроде бы я все проверил: явных ерроров нет. Дебаггер при проходе этого цикла выдает следующее:
First-chance exception in 3D Lines 2007.exe (GDI32.DLL): 0xC0000005: Access Violation.
|
А вот и сам цикл:
//Проверяем наличае собранных линий в колличестве 5 и более
int vsp;
//По горизонтали вправо
for (i1=1;i1<14;i1++)
{
for (int i2=1;i2<14;i2++)
{
if (g[i1][i2]==g[i1+1][i2]==g[i1+2][i2]==g[i1+3][i2]==g[i1+4][i2]&&g[i1][i2]!=0&&g[i1+1][i2]!=0&&g[i1+2][i2]!=0&&g[i1+3][i2]!=0&&g[i1+4][i2]!=0)//Найдена линия из 5 шаров
{
vsp=g[i1][i2];//Получаем в переменную vsp тип шариков
//Присваиваим этим клеткам значение "0", то есть удаляем шары
g[i1][i2]=g[i1+1][i2]=g[i1+2][i2]=g[i1+3][i2]=g[i1+4][i2]=0;
//А может в линии шаров больше, чем пять? Проверим и это!
for (int p=5;p<14;p++)
{
if (g[i1+p][i2]==vsp);
{
g[i1+p][i2]=0;//Удаляем и этот шар.
}
if (g[i1+p][i2]!=vsp);
{
break;
}
}
}
}
}
|
(Offline)
|
|
12.08.2007, 00:29
|
#15
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Алгоритм игры Lines
Не поверишь - уменя он выполняется без провисов.
Возможно 3ависит от введённых данных.
Ты вообще уверен, что виснет именно этот цикл?
Если да , то первое, что бросается в галаза -
//Найдена линия из 5 шаров
товарищ - так не кодят =/ Раскручивай это нагромождение.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:08.
|