1
Je possède ce jeu de tic tac toe:Tic Tac Toe AI ne 2+ se déplace en même temps pour bloquer
import random
boardX = int(raw_input("How many X boards do you want? > "))
boardY = int(raw_input("How many Y boards do you want? > "))
Matrix = [[0-0 for x in range(boardX)] for y in range(boardY)]
Matrix_2 = [[" "for x in range(boardX)] for y in range(boardY)]
l = len(Matrix)
def turnX():
global Player1_row
global Player1_column
Player1_row = int(raw_input("P1 What row do you want?"))
Player1_row = Player1_row - 1
Player1_column = int(raw_input("P1 What column do you want?"))
Player1_column = Player1_column - 1
if Player1_row > boardX:
turnX()
if Player1_column > boardY:
turnX()
if (1 == Matrix[Player1_column][Player1_row] or 500 == Matrix[Player1_column][Player1_row]):
print "This is an invaild move!"
turnX()
else:
Matrix[Player1_column][Player1_row] = 1
Matrix_2[Player1_column][Player1_row] = "X"
def turnY():
Player2_row = random.randint(1, boardX)
Player2_column = random.randint(1, boardY)
Player2_column = Player2_column - 1
Player2_row = Player2_row - 1
if (1 == Matrix[Player2_column][Player2_row] or 500 == Matrix[Player2_column][Player2_row]):
turnY()
print "AI Turn:"
if result[e] == boardY - 1 * 500:
Matrix[Player1_column - 1][Player1_row] = 500
Matrix_2[Player1_column - 1][Player1_row] = "O"
if Player1_column == boardY - 1:
Matrix[Player1_column][Player1_row - 1] = 500
Matrix_2[Player1_column][Player1_row - 1] = "O"
if Player1_column != boardY - 1:
Matrix[Player2_column][Player2_row] = 500
Matrix_2[Player2_column][Player2_row] = "O"
def printArray(boardX, boardY):
for i in range(boardX):
print ""
print boardY * " _ "
for j in range(boardY):
print "|", Matrix_2[i][j],"| ",
print ""
print boardY * " _ "
win = False
def win_condition():
global Row
global result
global diagonal1
global diagonal2
global e
#Row
row = [sum(row) for row in Matrix]
#Column
result = [sum(row[i] for row in Matrix) for i in range(len(Matrix[0]))]
#Diagonal
diagonal1 = [sum(Matrix[i][i] for i in range(l))]
diagonal2 = [sum(Matrix[l-1-i][i] for i in range(l-1,-1,-1))]
#Column
result = [sum(row[i] for row in Matrix) for i in range(len(Matrix[0]))]
for h in range(0, boardX):
if row[h] == boardX * 500:
print "The AI won! Row!"
win = True
printArray(boardX, boardY)
quit()
if row[h] == boardX:
print "Player 1 won! Row!"
win = True
printArray(boardX, boardY)
quit()
for e in range(0, boardY):
if result[e] == boardY * 500:
print "The AI won! Column!"
win = True
printArray(boardX, boardY)
quit()
if result[e] == boardY:
print "Player 1 won! Column!"
win = True
printArray(boardX, boardY)
quit()
if diagonal1[0] == boardY:
print "Player 1 Won! Diagonal!"
win = True
printArray(boardX, boardY)
quit()
if diagonal1[0] == boardY * 500:
print "The AI won! Diagonal!"
win = True
printArray(boardX, boardY)
quit()
if diagonal2[0] == boardY:
print "Player 1 Won! Diagonal!"
win = True
printArray(boardX, boardY)
quit()
if diagonal2[0]== boardY * 500:
print "The AI won! Diagonal!"
win = True
printArray(boardX, boardY)
quit()
while win == False:
win_condition()
turnX()
win_condition()
printArray(boardX, boardY)
win_condition()
turnY()
win_condition()
printArray(boardX, boardY)
Mais quand mon entrée était this, il a fait 2 tour parce que l'AI a voulu bloquer tout de mes positions.
- Y a-t-il un moyen de le réparer?
- Y a-t-il un moyen de forcer l'IA à gagner, puis de le bloquer?