Я создал вход, например, вот этот:
O,0,0;O,1,0;X,2,0;X,0,1;O,1,1;,2,1;,0,2;O,1,2;X,2,2
Первый символ - это «ноль», а два других (разделенных знаком «,») - это позиция в матрице. Эта специфическая c игра в крестики-нолики будет выглядеть так:
game = [["O", 0, 0], ["O", 1, 0], ["X", 2, 0], ["X", 0, 1], ["O", 1, 1], ["", 2, 1], ["O", 0, 2], ["O", 1, 2], ["X", 2, 2]]
or if you want to look at it this way:
O O X
X O -
O O X
Здесь игрок: «O» - победитель
Результат, которого я хочу добиться, - это сказать, кто победителем считается («X» или «O») или если есть ничья или игра еще не закончилась.
Другой пример игры может быть таким:
O,0,0;O,1,0;X,2,0;,0,1;,1,1;X,2,1;X,0,2;O,1,2;,2,2
Игра будет выглядеть так:
game = [["O", 0, 0], ["", 1, 0], ["X", 2, 0], ["", 0, 1], ["", 1, 1], ["X", 2, 1], ["X", 0, 2], ["O", 1, 2], ["", 2, 2]]
Or:
O - X
- - X
X O -
Здесь игра еще не закончилась
Другой пример:
O,0,0;O,1,0;X,2,0;X,0,1;X,1,1;O,2,1;O,0,2;X,1,2;O,2,2
The game would look like:
game = [["O", 0, 0], [O", 1, 0], ["X", 2, 0], ["X", 0, 1], ["X", 1, 1], ["O", 2, 1], ["O", 0, 2], ["X", 1, 2], ["O", 2, 2]]
Or:
O O X
X X O
O X O
Как видите есть ничья.
Это то, что я пробовал:
string = input("Insert a game")
g = string.split(";")
for i in range(len(g)):
g[i] = g[i].split()
for i in range(len(g)):
g[i] = g[i].split(",")
g2 = g.copy()
del(g2[0][1])
del(g2[0][2])
Я хотел составить другой список только для крестиков и нулей, чтобы мне было легче сказать когда выигрывает «X» или «O», но он не работает, он не удаляет два других следующих числа, которые находятся рядом с ним. Я не знаю, хорошая ли это идея, может быть, есть более простой способ решить всю проблему. Я действительно не знаю, как написать код для проверки условий (кто выиграл, ничья или еще не закончилась).
Если вы не знаете игру, я напишу инструкции:
Кто-то выигрывает, если:
-Есть три ячейки по горизонтали, занятые одним и тем же игроком
-Три ячейки по вертикали заняты одним и тем же игроком
-Три клетки по диагонали заняты одним и тем же игроком
Ничья проводится, если:
-Каждая из клеток занята, и это не тот случай, о котором говорилось ранее .
Игра не закончилась, если:
- Мы не находимся ни в одном из условий, упомянутых ранее, и есть «пустые» пробелы.