Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> написать игру "Фараон" с нуля 
:(
    Опции темы
Qawra
Дата 20.11.2008, 20:40 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 6.3.2007

Репутация: 3
Всего: 4



Простенькая такая игра для двоих на листочке бумаги в клеточку : игроки по очереди ставят точки  в углах клеток , соединяют их линиями и пытаются замкнуть эти линии.Как только линия замкнётся территория считается захваченной фараоном . 
Игра продолжается пока есть  свободное место .
Побеждает тот кто чья территория больше .
Я думаю что надо  закрепить 4 клавиши за одним игроком и 4 за другим что бы они перемещали курсор в момент хода . 
Но я не умею писать игры вообще ! Учитель сказал что мы должны будем написать это за новогоднии праздники (а значит  праздников этих у меня не будет - я буду читать книжку Java2  на 1100 страниц и писать игру ). Книжку эту  он нам сказал не читать полностью а только те темы   которые  в процессе работы могут понадобиться .В какой же последовательности  мне её читать и что может понадобиться для этой конкретной игры ? !!
PM MAIL   Вверх
AntonN
Дата 20.11.2008, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: нет
Всего: 18



Вообще у двоечников она называется "точки", и алгорим там ни разу не простой, обработка клавиш это наилегчайшее действие в ней. Если это задал преподаватель, значит есть какие то упрощения, стоит о них сказать.


--------------------
user posted image
PM MAIL WWW   Вверх
Qawra
Дата 21.11.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 .
Какие могут быть упрощения в этой игре ? Может лучше мне их самой преподавателю предложить ...

PM MAIL   Вверх
Mazzi
Дата 21.11.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 4
Всего: 21



Все названия на английском. Ты в какой стране учишься, отличница?


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
AntonN
Дата 21.11.2008, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: нет
Всего: 18



Qawra
Цитата

У двоечников ? Это специально для них игра  ?

просто в нее часто двоечники на последних партах во время уроков играют smile
Упрощения - например поле маленькое. Или используются готовые наработки. Либо алгоритм будет рассматриваться во время обучения.


--------------------
user posted image
PM MAIL WWW   Вверх
Rpahut
Дата 21.11.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: 5
Всего: 7



Препод изверг у вас smile 
Из перечисленного рекурсия может понадобиться, Swing наверное тоже. Плюс любой способ вывода графики, ввод если с клавиатуры можно на всех игроков общие клавиши сделать - ходы все равно по очереди делаются.

И для начала надо четко правила описать - куда можно ставить точки, когда их можно соединять итд. Потом придумать как определить замкнутый контур, как найти все точки внутри контура... Но начинать нужно с правил.

ЗЫ Фараон вроде карточная игра
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
BalmaR
Дата 22.11.2008, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.11.2008

Репутация: нет
Всего: нет



=) конечно можно
PM MAIL   Вверх
Qawra
Дата 22.11.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 6.3.2007

Репутация: 3
Всего: 4




 Видимо  это тактика преподавания у него такая - всех в омут и плывите если выплывите ..
С этой игрой у меня очень нехорошие предчувствия  ...не может человек просто взять и написать игру если до этого он ничего подобного не писал .

Правила игры были очень простые .Листочек в клеточку где игроки ставят точки ( каждый своим цветом чернил ). Ставить точки можно в любом незанятом углу клетки . Точки одного цвета соединяются по  диагонали  или по ребру клетки ( но новые чёрточки не могут пересекать  уже сделанные чёрточки ) .Если они замыкаются в любую даже самую маленькую фигуру  ( треугольник)- эта фигура заштриховывается цветом игрока  и считается территорией захваченной  фараоном .  Второй игрок при удачном стечении обстоятельств может обойти своими точками эту территорию замкнуть свою линию . В этом случае  он её завоёвывает ( заштриховывает своим цветом )  . 

Как создаются  листочки в клеточку  если писать всё надо в BlueJ  ?
PM MAIL   Вверх
Rpahut
Дата 22.11.2008, 20:11 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: 5
Всего: 7



BlueJ  это в форум по яве, там быстрее ответят. Или читать документацию smile Гугль говорит что там должен быть класс Canvas.

Вобще - пиши классы Точка, Поле, Игрок
Для класса Точка:
 Идентификатор игрока, который поставил точку(или ноль, если точка не поставлена)
 Идентификатор игрока, которым захвачена точка(-//-)
 Массив с указателями на точки, с которыми она соединена линией. Соседних точек максимум восемь.
 Массив с указателями на точки, с которыми соединять нельзя. Таких точек может быть четыре.
Методы:
 Занять()
 Захватить()
 СоединитьС()
 НельзяСоеденитьС()

Для класса поле:
 Две переменные - высота и ширина игрового поля (в точках)
 Массив Точек[ширина][высота]
Методы:
 ПоставитьТочку()
 СоединитьТочки()

Для класса Игрок:
 Идентификатор
 Цвет
Методы:
 ВзятьИД()
 ВзятьЦвет()

Вот примерно так.

Это сообщение отредактировал(а) Rpahut - 22.11.2008, 20:12
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
Qawra
Дата 22.11.2008, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 6.3.2007

Репутация: 3
Всего: 4



 а почему в классе точка существует 
"Массив с указателями на точки, с которыми соединять нельзя.
Таких точек может быть четыре." ? 
Где они  находятся ?
PM MAIL   Вверх
AntonN
Дата 22.11.2008, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: нет
Всего: 18



Как копнете глубже поймете, что там за ужасы хранятся smile
Если игра только на двоих людей (без ИИ), то все сводится к функции захвата территории. Она вызывается каждый раз, когда игрок ставит точку, нужно пробежать все соседние такие же точки (незахваченные, свои) и при замыкании контура (тут еще определить, замыкаем ли он, и находится ли внутри него точка противника, тут я делал рекурсией, нужно учитывать глубину поиска на больших картах и чтобы стек не переполнился, и все равно получалось очень медленно) пометить контур (точнее точки его образующие) как захваченный и помещать все контуры в отдельный массив (для рисования линий при отображении).
Вообще - поисковик ничего подобного не выдает? возможно кто то уже делал похожее


--------------------
user posted image
PM MAIL WWW   Вверх
russians
Дата 23.11.2008, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 6.11.2006

Репутация: нет
Всего: нет



AntonN, а если с ИИ? Брать пролог и курс искуственного интеллекта? ;)
PM MAIL   Вверх
Qawra
Дата 23.11.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 6.3.2007

Репутация: 3
Всего: 4



Хотелось бы посмотреть на что-нибудь подобное ..хотя я думаю что на моём уровне я смогу  коде  .Надо будет сидеть с книжкой и разбираться .
Здесь есть об игре   "точки " http://pointsgame.narod.ru/
но это немного другой вариант где "Смысл состоит в окружении как можно большего числа точек противника." 
В "Фараоне " не важно окружаешь ли ты точки противника или просто пустую территорию . Важно в итоге  окружить большую площадь чем твой противник . 
Не знаю становиться ли поставленная задача от этого легче ..


PM MAIL   Вверх
Rpahut
Дата 23.11.2008, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: 5
Всего: 7



Цитата

"Массив с указателями на точки, с которыми соединять нельзя.
Таких точек может быть четыре." ? 

Это четыре точки по диагонали от текущей.
Если в клетке проведена диагональная линия, то две другие точки в той же клетке соединить друг с другом уже нельзя. Для них и записывается "нельзя соединить с". Можно в принципе без этого массива, тогда при попытке соединения двух точек нужно проверять, не проведена ли уже в клетке линия.
Второй вариант наверное даже лучше... Хотя нет, всетаки пусть будет массив.

Цитата

Не знаю становиться ли поставленная задача от этого легче ..

Главное чтобы препод не потребовал компьютерного противника smile Все остальное достаточно просто. Можно будет несколько вариантов игры сделать, на захват площади или на захват точек противника.

Это сообщение отредактировал(а) Rpahut - 24.11.2008, 18:32
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
Qawra
Дата 24.11.2008, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 6.3.2007

Репутация: 3
Всего: 4



Ну уж о компьютерном противнике  пусть он даже и не мечтает ! Он нам   ещё даже GUI не показывал , да и  алгоритмы мы с ним учили только lдля поиска и для сортировки ... 
Раз не очень много мы пока знаем - будем упрощать свою  задачу :
Если не поручать компьютеру проверять замыкается или нет контур ( там какой-то сложный рекурсивный алгоритм задействован )
а отдать эту функцию самим игрокам .Если игрок считает что пора контур замкнуть пускай кликнет где линию нарисовать .Компьютор проверит и линию нарисует .
Что можно ещё упростить без потери идеи ?

Узкое место во всей этой затее - документация (которую надо будет на английском языке напечатать ). Оценивается не столько сложность работы сколько  ИСПОЛЬЗОВАНИЕ   НУЖНЫХ ИНСТРУМЕНТОВ В НУЖНЫЙ МОМЕНТ .
В общем   реализация должна быть красивой до аскетизма .
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.