![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
Qawra |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: 3 Всего: 4 |
Простенькая такая игра для двоих на листочке бумаги в клеточку : игроки по очереди ставят точки в углах клеток , соединяют их линиями и пытаются замкнуть эти линии.Как только линия замкнётся территория считается захваченной фараоном .
Игра продолжается пока есть свободное место . Побеждает тот кто чья территория больше . Я думаю что надо закрепить 4 клавиши за одним игроком и 4 за другим что бы они перемещали курсор в момент хода . Но я не умею писать игры вообще ! Учитель сказал что мы должны будем написать это за новогоднии праздники (а значит праздников этих у меня не будет - я буду читать книжку Java2 на 1100 страниц и писать игру ). Книжку эту он нам сказал не читать полностью а только те темы которые в процессе работы могут понадобиться .В какой же последовательности мне её читать и что может понадобиться для этой конкретной игры ? !! |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: нет Всего: 18 |
Вообще у двоечников она называется "точки", и алгорим там ни разу не простой, обработка клавиш это наилегчайшее действие в ней. Если это задал преподаватель, значит есть какие то упрощения, стоит о них сказать.
|
|||
|
||||
Qawra |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: 3 Всего: 4 |
У двоечников ? Это специально для них игра ?
Я думала я почти отличница ! Преподаватель пoка ничего не сказал про упрощения .Мы должны ещё теорию закончит . Впереди ( как я понимаю по оглавлению ) ещё 60 страниц для изучения : Polymorphism by Inheritance, Text files , vectors , Interfaces ,Serialisation ,Exteption Handling, Abstract classes ,Recursion ,Java DOC ,AWT and Swing . Какие могут быть упрощения в этой игре ? Может лучше мне их самой преподавателю предложить ... |
|||
|
||||
Mazzi |
|
|||
![]() Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 4 Всего: 21 |
Все названия на английском. Ты в какой стране учишься, отличница?
-------------------- Мне нужны помощники. |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: нет Всего: 18 |
Qawra,
просто в нее часто двоечники на последних партах во время уроков играют ![]() Упрощения - например поле маленькое. Или используются готовые наработки. Либо алгоритм будет рассматриваться во время обучения. |
|||
|
||||
Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Препод изверг у вас
![]() Из перечисленного рекурсия может понадобиться, Swing наверное тоже. Плюс любой способ вывода графики, ввод если с клавиатуры можно на всех игроков общие клавиши сделать - ходы все равно по очереди делаются. И для начала надо четко правила описать - куда можно ставить точки, когда их можно соединять итд. Потом придумать как определить замкнутый контур, как найти все точки внутри контура... Но начинать нужно с правил. ЗЫ Фараон вроде карточная игра --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
BalmaR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 11.11.2008 Репутация: нет Всего: нет |
=) конечно можно
|
|||
|
||||
Qawra |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: 3 Всего: 4 |
Видимо это тактика преподавания у него такая - всех в омут и плывите если выплывите .. С этой игрой у меня очень нехорошие предчувствия ...не может человек просто взять и написать игру если до этого он ничего подобного не писал . Правила игры были очень простые .Листочек в клеточку где игроки ставят точки ( каждый своим цветом чернил ). Ставить точки можно в любом незанятом углу клетки . Точки одного цвета соединяются по диагонали или по ребру клетки ( но новые чёрточки не могут пересекать уже сделанные чёрточки ) .Если они замыкаются в любую даже самую маленькую фигуру ( треугольник)- эта фигура заштриховывается цветом игрока и считается территорией захваченной фараоном . Второй игрок при удачном стечении обстоятельств может обойти своими точками эту территорию замкнуть свою линию . В этом случае он её завоёвывает ( заштриховывает своим цветом ) . Как создаются листочки в клеточку если писать всё надо в BlueJ ? |
|||
|
||||
Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
BlueJ это в форум по яве, там быстрее ответят. Или читать документацию
![]() Вобще - пиши классы Точка, Поле, Игрок Для класса Точка: Идентификатор игрока, который поставил точку(или ноль, если точка не поставлена) Идентификатор игрока, которым захвачена точка(-//-) Массив с указателями на точки, с которыми она соединена линией. Соседних точек максимум восемь. Массив с указателями на точки, с которыми соединять нельзя. Таких точек может быть четыре. Методы: Занять() Захватить() СоединитьС() НельзяСоеденитьС() Для класса поле: Две переменные - высота и ширина игрового поля (в точках) Массив Точек[ширина][высота] Методы: ПоставитьТочку() СоединитьТочки() Для класса Игрок: Идентификатор Цвет Методы: ВзятьИД() ВзятьЦвет() Вот примерно так. Это сообщение отредактировал(а) Rpahut - 22.11.2008, 20:12 --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
Qawra |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: 3 Всего: 4 |
а почему в классе точка существует
"Массив с указателями на точки, с которыми соединять нельзя. Таких точек может быть четыре." ? Где они находятся ? |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: нет Всего: 18 |
Как копнете глубже поймете, что там за ужасы хранятся
![]() Если игра только на двоих людей (без ИИ), то все сводится к функции захвата территории. Она вызывается каждый раз, когда игрок ставит точку, нужно пробежать все соседние такие же точки (незахваченные, свои) и при замыкании контура (тут еще определить, замыкаем ли он, и находится ли внутри него точка противника, тут я делал рекурсией, нужно учитывать глубину поиска на больших картах и чтобы стек не переполнился, и все равно получалось очень медленно) пометить контур (точнее точки его образующие) как захваченный и помещать все контуры в отдельный массив (для рисования линий при отображении). Вообще - поисковик ничего подобного не выдает? возможно кто то уже делал похожее |
|||
|
||||
russians |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
AntonN, а если с ИИ? Брать пролог и курс искуственного интеллекта? ;)
|
|||
|
||||
Qawra |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: 3 Всего: 4 |
Хотелось бы посмотреть на что-нибудь подобное ..хотя я думаю что на моём уровне я смогу коде .Надо будет сидеть с книжкой и разбираться .
Здесь есть об игре "точки " http://pointsgame.narod.ru/ но это немного другой вариант где "Смысл состоит в окружении как можно большего числа точек противника." В "Фараоне " не важно окружаешь ли ты точки противника или просто пустую территорию . Важно в итоге окружить большую площадь чем твой противник . Не знаю становиться ли поставленная задача от этого легче .. |
|||
|
||||
Rpahut |
|
||||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Это четыре точки по диагонали от текущей. Если в клетке проведена диагональная линия, то две другие точки в той же клетке соединить друг с другом уже нельзя. Для них и записывается "нельзя соединить с". Можно в принципе без этого массива, тогда при попытке соединения двух точек нужно проверять, не проведена ли уже в клетке линия. Второй вариант наверное даже лучше... Хотя нет, всетаки пусть будет массив.
Главное чтобы препод не потребовал компьютерного противника ![]() Это сообщение отредактировал(а) Rpahut - 24.11.2008, 18:32 --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
||||
|
|||||
Qawra |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 6.3.2007 Репутация: 3 Всего: 4 |
Ну уж о компьютерном противнике пусть он даже и не мечтает ! Он нам ещё даже GUI не показывал , да и алгоритмы мы с ним учили только lдля поиска и для сортировки ...
Раз не очень много мы пока знаем - будем упрощать свою задачу : Если не поручать компьютеру проверять замыкается или нет контур ( там какой-то сложный рекурсивный алгоритм задействован ) а отдать эту функцию самим игрокам .Если игрок считает что пора контур замкнуть пускай кликнет где линию нарисовать .Компьютор проверит и линию нарисует . Что можно ещё упростить без потери идеи ? Узкое место во всей этой затее - документация (которую надо будет на английском языке напечатать ). Оценивается не столько сложность работы сколько ИСПОЛЬЗОВАНИЕ НУЖНЫХ ИНСТРУМЕНТОВ В НУЖНЫЙ МОМЕНТ . В общем реализация должна быть красивой до аскетизма . |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |