こんにちは私は0と1の間の数字を選んでコンピュータがランダムに演奏するティックタックつま先ゲームのコーディングに問題があります。私はコードを試しましたが、ここに表現されているような非現実的な状況になります:Tic Tac Toe WinCheck Def
OOO
XXX
OOO
私はすべての動きで勝者があるかどうかを確認私のコードで何かを載せていきたいと思います。誰かが勝利したら、私はゲームを止めて誰が優勝者か誰に勝ってもらわないようにしたい。また、出力を下の写真のようにしたくありません。私はちょうどボードの1つのディスプレイを望む(可能ならば)。ここで
The output of this programme is that.
私のコードは次のようになります。それは暗黙のうちに関係なく、入力が何であるかFalse
を返し、デフォルトでよう
import random
board = []
line= 3
col = 3
for i in range (line) :
for j in range (col):
board.append(" ")
def show():
print(board[0],'|',board[1],'|',board[2])
print('--------------')
print(board[3],'|',board[4],'|',board[5])
print('--------------')
print(board[6],'|',board[7],'|',board[8])
print()
# Verify the possibility of position to take.
B=1
C=2
D=3
def check(A, B, C, D):
if board[B] == A and board[C] == A and board[D] == A :
return True
# Win conditions
def Winner(G):
if check(G, 0, 1, 2):
True
if check(G, 0, 3, 6):
True
if check(G, 0, 4, 8):
True
if check(G, 1, 4, 7):
True
if check(G, 2, 5, 8):
True
if check(G, 2, 4, 6):
True
if check(G, 3, 4, 5):
True
if check(G, 6, 7, 8):
True
player1 = "O"
player2 = "X"
play=random.randint(0,1)
if play == 1:
player1 = "X"
player2 = "O"
while True:
random.seed()
place=random.randint(0,8)
if board[place] != "O" and board[place] != "X" :
board[place] = player1
if Winner(player1)==True:
print("~~~~~~~ the player ",player1," wins~~~~~~~")
break;
while True:
random.seed()
place=random.randint(0,8)
if board[place] != "O" and board[place] != "X" :
board[place] = player2
if Winner(player2)==True:
print("~~~~~~~ the player ",player2," wins~~~~~~~")
break;
break;
else:
print("This position is already taken")
show()
"True"はステートメントとしては絶対に何もしません。実際に勝利を示すには、「Trueを返す」必要があります。 (また、ループ内で '' random.seed() ''を呼び出すのはひどく悪い考えです。プログラムの実行ごとに1回の呼び出しで十分です。これは既にあなたのために行われているので、0です) – jasonharper