Я пытался улучшить свои навыки Java и решил создать игру Noughts and Crosses. Я пытаюсь реализовать условия выигрыша, поэтому игра может определить, выиграл ли «ай» или человек, и закончил игру.Поиск в словаре
Данные хранятся в HashMap как пары значений ключа. Целое число - это позиция, а строка - то, что она содержит. Строка будет ""
, "O"
или "X"
.
целого числа, представляющая позиция:
1 2 3
4 5 6
7 8 9
Код инициализация показывая базы данных:
Map<Integer, String> database = new HashMap<Integer, String>();
Во всяком случае, я пытаюсь работать, лучший способ поиска через словарь, проверяя любой из следующие условия выигрыша:
- 3 "O" или "X" Строки в положениях 1, 2, 3 < --Horizontally
- 3 "O" или "X" Строка в положениях 4, 5, 6 < --Horizontally
- 3 "О" или "Х" Строка в положениях 7, 8, 9 < --Horizontally
- 3 "О" или "X" Строка в положениях 1, 4, 7 < --Vertically
- 3 "O" или "X" Строка в положениях 2, 5, 8 < --Vertically
- 3 «O» или «X» Строки в позициях 3, 6, 9 < - Верно
- 3 "O" или "X" Строки в положениях 1, 5, 9 < --Diagonally
- 3 «О» или «Х» Строки в положениях 3, 5, 7 < --Diagonally
Должен ли я сделать большой вложенным, если заявление или случай множества, или есть способ, которым я могу более эффективно обходить это?
Разве это не 'Noughts' и кресты? – Kayaman
Обновлено с правильным написанием, приветствиями. –
Насколько эффективны вы это хотите? Каково ваше требование к производительности? Вы действительно думаете, что это важно для 9 предметов? Что вы пробовали? Было ли это медленно? –