6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
|
|
1 | |
Нужна идея по реализации игр.поля02.03.2020, 20:25. Показов 1459. Ответов 16
Всем вечера доброго,
у меня такой вопрос - мне нужно сделать игру на подобии настольной игры с фигурками и полями, где когда кидаешь кубик, то на выпавшее число ходишь фигуркой. В игре должно быть 35 полей (ячеек хода), 4 цвета игроков и каждый игрок имеет по 4 фигурки. Интересно было бы услышать ваши идеи как вы бы реализовали поля с ходами, например если выпадет, что на одном поле должны находится много фигур. Запрещено использовать многомерные массивы, где строка отвечает за фигуры, а столбец за поля хода. Также поля не должны быть String. Буду благодарен за идеи.
0
|
02.03.2020, 20:25 | |
Ответы с готовыми решениями:
16
Нужна идея для реализации Нужна идея для реализации простого ИИ Нужна идея по реализации принципов ООП Сравнение даты (PHP MYSQL) Нужна идея реализации! |
Модератор
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,331
|
|
02.03.2020, 20:58 | 2 |
Каждая фигурка игрока = объект, у которого есть поле содержащее позицию на поле. По сути тогда и поле как таковое и не нужно, в смысле оно не содержит фишек игроков а только спец действия если нужны. Если надо будет реализовать взаимодействие между чужими фишками то просто перебирать все фишки на позицию и принадлежность игроку. Фишки всех игроков можно хранить в листе. Даешь больше объектов и ооп)))
0
|
52 / 26 / 9
Регистрация: 04.05.2013
Сообщений: 80
|
|
03.03.2020, 10:48 | 3 |
Каждое поле представлено объектом, который хранит:
- ссылки на другие поля откуда можно придти сюда, и куда уйти; - список фигурок на этом поле; - список активных действий, которые будут применены к фишкам-игрокам при проходе мимо, попадании на это поле и другие. Фигурка игрока хранит: - ссылку на объект игрока; - ссылку на текущие поле в игре. В итоге игровое окружение представлено графом полей, своей структурой определяющее правила перехода одной фишки игрока на другое поле, и списком активных действий, позволяющим на каждом передвижении фишки автоматически проверять условия применимости и применять к фишке/игроку соответствующие эффекты (перешел через клетку СТАРТ получу N денег, прошел одну клетку получи M очков, получил негативный эффект и прочее).
1
|
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
|
|
03.03.2020, 21:30 [ТС] | 4 |
Можно пожалуйста подробнее как реализовать каждое поле как объект и переписывать туда ссылки при ходе фигуркой? Был бы очень благодарен если бы Вы дали какой-нибудь наглядный пример, с которого я мог бы научиться. Мне нужно будет в конце довести до ума это все с помощью JavaFX. Могу ли я тогда представить игровое поле в виде ArrayList, размером, например, 35, где каждое поле обьект, который хранит ссылки на другие обьекты? И еще вопрос, цвет игрока должен быть сделан через enum, как совместить этот enum с обычным обьектом?
Добавлено через 3 минуты Дааааа...пошло ООП... А вот реализация немного сложновато т.к. новичок еще в этом. Игру эту нужно потом будет довести с помощью JavaFX до ума и дабы потом не облажаться расспрашиваю тут что и как кто думает.
0
|
52 / 26 / 9
Регистрация: 04.05.2013
Сообщений: 80
|
||||||||||||||||||||||||||||||||||||
04.03.2020, 09:59 | 5 | |||||||||||||||||||||||||||||||||||
1
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
04.03.2020, 10:25 | 6 |
StalinStr, или вот, более простой скелетон))
Кликните здесь для просмотра всего текста
package helper; import java.awt.*; public class Helper { public static void main(String[] args) { // тут делаешь игроков и их ходы } } enum Color {RED, GREEN} class Fishka { private Point position; private Color color; private Player owner; Fishka(Player owner, Color color, Point position) { this.position = position; this.color = color; this.owner = owner; } public void changePosition(int x, int y) { this.position.x = x; this.position.y = y; } } class Player { private String name; private Color color; private Fishka [] fishkas; private boolean doIPlay = false; public Player(String name, Color color, int countFishkas) { this.name = name; this.color = color; this.fishkas = new Fishka[countFishkas]; fillFishkas(); } private void fillFishkas() { for (int i = 0; i < fishkas.length; i++) { fishkas[i] = new Fishka(this, color, new Point(0,0)); } } void moveFishka(int indexFishka, Point newPos) { if (doIPlay) fishkas[indexFishka].changePosition(newPos.x, newPos.y); } }
1
|
Модератор
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,331
|
|
04.03.2020, 12:23 | 7 |
StalinStr, Еще важно помимо поля правильно поделить игру на классы. Как минимум разделить части отвечающие за игровую логику, отрисовку элементов, создание окна, таймер и игровой цикл.
Aviz__, Имхо позицию фишки стоит не Point-ом а простым int-ом, так как поле по сути линейное, а значит достаточно хранить просто позицию фишки на поле, а координаты каждой клетки поля внутри каждой клетки поля. А поле можно представить в виде одномерного массива клеток, либо в виде списка тех же клеток. Хотя с таким подходом будет сложно отрисовывать плавную анимацию движения фишек, будут телепорты фишек между клетками поля.
1
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
04.03.2020, 12:29 | 8 |
читаем внимательно
и т.е. его нужно "нарастить мясом", если ты не понял смысла слова скелетон)) давай свой код, раз критикуешь..
1
|
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
|
|
06.03.2020, 00:53 [ТС] | 9 |
Графическую часть нужно будет через месяца полтора +- делать, сейчас главное сделать правильную начинку. Проблема в том, что я не работал еще пока с javaFX, чтобы потом без проблем ее применить. Написано, какие поля нужно сделать и что все должно быть ООП.
Добавлено через 1 час 55 минут Вопрос такой у меня, который я не могу найти в интернете, если я присваиваю определенному игроку , например, цвет через enum и как я понял, что число игроков, который можно создать таким путем будет не ограничено. То есть это надо будет искусственно ограничивать к-во игроков и путем сравнения вычислять одинаковый цвет чтобы не было создано два игрока с одинаковым цветом? Немного не понятно с позицией фишек, т.к. самим полям мне нужно будет присвоить определенные свойства, но как их присвоить будет потом? Не проще ли сделать каждое поле обьектом в массиве и прогонять фишки через них? Если нет, то почему? Добавлено через 27 минут Спасибо за такие подробные методы, по меньшей мере буду знать какие мне будут нужны. Код сложноватый для меня как для новичка, но попробую разобраться.
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
||||||
06.03.2020, 08:44 | 10 | |||||
класс Игра в котором будет поле массив типа Игрок и приватный метод заполнитьМассИгроков(int количествоИгроков) для заполнения этого массива. в одном из конструкторов Игра залаешь количествоИгроков и передаешь в метод заполнения. вот же, как у класса Игрок
1
|
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
|
|
19.03.2020, 18:22 [ТС] | 11 |
Вечер добрый... А есть ли ссылка на Хаб с полной игрой? Дабы полностью посмотреть код..
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
19.03.2020, 18:41 | 12 |
вот такое "site:https://github.com javafx game" загугли. примерно 20000 ссылок))
Добавлено через 1 минуту целиком, что в кавычках бери))
0
|
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
|
|
19.03.2020, 21:34 [ТС] | 13 |
Благодарочка тебе дружище) Я просто столкнулся с проблемой немного, в игре нужно много взаимодействия между обьектами делать, а мы такое еще не учили, вот и не могу нагуглить подходящих примеров, но сейчас посмотрю как ты говоришь, надеюсь найду достойный пример... Спасибо
Добавлено через 2 часа 34 минуты Еще один вопрос, обязательно ли указание Position координатами y и x или можно просто обычным массивом от 0 до 30, например? И если нет, то в чем разница, буду благодарен если обьяснишь..
0
|
52 / 26 / 9
Регистрация: 04.05.2013
Сообщений: 80
|
|
19.03.2020, 22:12 | 14 |
Подобной игры никогда не делал, так что кроме предложенного каркаса больше ничего нет. Когда-то давно, еще в университете, делал Тетрис на JavaFX. Вот ссылка ссылка. Проект простой, поэтому будет запускаться на JDK8. Для более старших версий Java нужна обвязка Maven с подключенными библиотеками JavaFX.
В отличии Тетриса, вот пример проекта с декларативным заданием интерфейса через .fxml .
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
20.03.2020, 07:28 | 15 |
в смысле Point position? нет, но это удобно, когда ты будешь гонять фишки по полю двухмерному. я вижу, Бро, тебе тяжело лаются понятия ооп...
0
|
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
|
|
20.03.2020, 22:13 [ТС] | 16 |
Да почему, я просто не делал ни разу такого. Переписывался с форума этого с человеком, он мне говорит - "Если это лабораторная, то к ней сто процентов должна быть брошур!". Что на самом деле у меня в лекциях с брошурами? - Вот это enum, его обозначают вот так и на этом, впринципе, все! У меня то и спросить толком некого, а то что я в прошлом семестре учил, то я знаю уже наизусть и иногда думаю как я мог некоторые вопросы раньше не понимать. Задания, на которые я раньше тратил сутки, сейчас решаются буквально за минут 15. Да и в 3 х часовом экзамене было только одно задание на ООП! Проблема в том, что простые вещи на ООП могу делать, а дали и сказали - делай игру без примера и всего остального, то тут уже тяжело будет! Но на то это и учеба чтобы учить ..Месяц назад сравнивал массивы, а сейчас целый проект.. Но ничего, справляюсь потихоньку...
Добавлено через 3 минуты Благодарю.. В том и дело, что тетрис им сильно просто со змейкой делать) Пересаживают на полное ООП и для этого целую кучу всяких приколов придумали для игры, но толком не рассказывают как и что реализовать даже в других каких-то проектах.. Типа учитесь думать и искать инфу сами... Да и лекции отменили из-за вируса и хоть бошкой рубись, но сдавать требуют.. Справимся в общем... Спасибо за ссылки
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
21.03.2020, 08:55 | 17 |
0
|
21.03.2020, 08:55 | |
21.03.2020, 08:55 | |
Помогаю со студенческими работами здесь
17
Идея реализации анти чита Есть идея,нужно помочь в реализации Есть мощная идея для реализации Нужна идея! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |