ПИТОН: нолики и крестикиPython

Программы на Python
Ответить
Anonymous
 ПИТОН: нолики и крестики

Сообщение Anonymous »

Я создал многопользовательскую игру «Крестики-нолики», используя Python 3.
У меня работает весь код, за исключением цикла проверки.

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

Это мой код на данный момент:

import random

def start_player():

startplayer = random.randint(1,2)
if startplayer == 1:
turn = 'X'
print("Player One (X) will start the game.")
else:
startplayer == 2
turn = 'O'
print("Player Two (O) will start the game.")
return turn

def getmove():

row = int(input("Please enter a number between 0 and 2: "))
column = int(input("Please enter a number between 0 and 2: "))
while grid[row][column] != "":
print("Invalid move.")
row = int(input("Please enter a number between 0 and 2: "))
column = int(input("Please enter a number between 0 and 2: "))
return row, column

def mainturn(row, column):

global countmove
countmove = countmove + 1
global symbol
grid[row][column] = symbol

for y in range(0,(len(grid))):
print(grid[y])
if symbol == 'X':
symbol = 'O'
elif symbol == 'O':
symbol = 'X'
return countmove

def check_win(row, column, symbol):

if (grid[0][0] and grid[0][1] and grid[0][2] == symbol) or (grid[1][0] and grid[1][1] and grid[1][2] == symbol) or (grid[2][0] and grid[2][1] and grid[2][2] == symbol) or (grid[0][0] and grid[1][0] and grid[2][0] == symbol) or (grid[0][1] and grid[1][1] and grid[2][1] == symbol)or (grid[0][2] and grid[1][2] and grid[2][2] == symbol)or (grid[0][0] and grid[1][1] and grid[2][2] == symbol) or (grid[2][0] and grid[1][1] and grid[0][2] == symbol):
print("Well done!",symbol," won the game.")
return true
elif countmove == 9:
print("Board Full. Game over.")

#main program
grid = [["","",""],["","",""],["","",""]]

countmove = 0
win = 'false'

for y in range(0,(len(grid))):

print(grid[y])

symbol = start_player()

while countmove != 9 or win == 'false':

countmove = 0
row, column = getmove()
mainturn(row,column)
win = check_win(row,column, symbol)


Подробнее здесь: https://stackoverflow.com/questions/416 ... nd-crosses
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»