У меня есть H.W, и это крестики-нолики с цифрами. Отображается доска 3 x 3, и игрок 1 берет нечетные числа 1, 3, 5, 7, 9, а игрок 2 берет четные числа 0, 2, 4, 6, 8. Игроки по очереди записывают свои числа. Нечетные числа начинаются. Используйте каждое число только один раз. Победителем становится тот, кто первым заполнит линию, которая в сумме составляет 15. В строке могут быть как нечетные, так и четные числа.
и я добрался до сюда
board = [0,1,2,
3,4,5,
6,7,8]
def tic_tac_toe ():
print ('|' ,board[0],'|',board[1] ,'|', board[2],'|')
print ('--------------------')
print ('|' ,board[3],'|',board[4] ,'|', board[5],'|')
print ('--------------------')
print ('|' ,board[6],'|',board[7] ,'|', board[8],'|')
def move(x1,x2):
board[x2] = x1
tic_tac_toe()
def odd (x):
while (x%2==0):
x = int(input ('enter an odd number')
move(x,x2)
if (x%2!=0):
move (x ,x2)
def even (x) :
while (x%2!=0):
x = int(input ('enter an even number')
move(x,x2)
if (x%2==0):
move (x ,x2)
def winner ():
if (board[0]+board [1]+board[2]==15 or
board[0]+board [3]+board[6]==15 or
board[1]+board [4]+board[7]==15 or
board[3]+board [4]+board[5]==15 or
board[2]+board [5]+board[8]==15 or
board[6]+board [7]+board[8]==15):
print ('you are the winner')
def turn(s):
print ('its '+ s +' turn')
x = int (input ('enter the number: '))
x1 = int (input ('enter the places number: '))
print('Tic Tac Toe')
print ('player A should enter even numbers only'+' and player B should enter odd
numbers only')
print ('the player with the ood numbers start')
tic_tac_toe ()
while (true):
turn(B)
odd(x1)
break
теперь моя проблема заключается в том, что я хочу создать функцию, которая проверяет, есть ли победитель каждый раз, когда игрок вводит число, и я хочу, чтобы она знала разницу между введенными числами и числом, которое уже есть (числа позиции) и я действительно новичок в программировании, поэтому, пожалуйста, извините меня, если в коде много ошибок
in
. Например.if number in board: print "Number [{}] has already been used.".format(number)
- person Chuk Ultima   schedule 08.02.2018turn(s)
, вы должны поместить функциюwinner()
. Теперь у вас должна быть переменная типаplayer = 'a'
, которая после хода и проверки есть ли победитель, меняет местами на другой Кроме того, вodd()
иeven()
вы меняете доску, даже если введенное число неверно, потому что вы написали дополнительную функциюmove(x, x2)
до условийif(x%2 ...
. - person Shinra tensei   schedule 08.02.2018turn(s)
, не возвращаются, поэтому они неизвестны в функцияхodd()
иeven()
- person Shinra tensei   schedule 08.02.2018