LAB06 Ai
LAB06 Ai
LAB # 06
Tasks 1:
import os
import time
board = [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']
player = 1
Win = 1
Draw = -1
Running = 0
Stop = 1
Game = Running
Mark = 'X'
def DrawBoard():
print(" %c | %c | %c " % (board[1],board[2],board[3]))
print("___|___|___")
print(" %c | %c | %c " % (board[4],board[5],board[6]))
print("___|___|___")
print(" %c | %c | %c " % (board[7],board[8],board[9]))
def CheckPosition(x):
if(board[x] == ' '):
return True
else:
return False
def CheckWin():
global Game
#Horizontal winning condition
if(board[1] == board[2] and board[2] == board[3] and board[1] != ' '):
Game = Win
elif(board[4] == board[5] and board[5] == board[6] and board[4] != ' '):
Game = Win
elif(board[7] == board[8] and board[8] == board[9] and board[7] != ' '):
Game = Win
#Vertical Winning Condition
elif(board[1] == board[4] and board[4] == board[7] and board[1] != ' '):
Game = Win
elif(board[2] == board[5] and board[5] == board[8] and board[2] != ' '):
Game = Win
elif(board[3] == board[6] and board[6] == board[9] and board[3] != ' '):
Game=Win
#Diagonal Winning Condition
elif(board[1] == board[5] and board[5] == board[9] and board[5] != ' '):
Game = Win
elif(board[3] == board[5] and board[5] == board[7] and board[5] != ' '):
Game=Win
#Match Tie or Draw Condition
elif(board[1]!=' ' and board[2]!=' ' and board[3]!=' ' and board[4]!=' ' and board[5]!=' ' and
board[6]!=' ' and board[7]!=' ' and board[8]!=' ' and board[9]!=' '):
Game=Draw
else:
Game=Running
print("Tic-Tac-Toe")
print("Abdul Rehman [X] --- Taha [O]\n")
print()
while(Game == Running):
os.system('cls')
DrawBoard()
if(player % 2 != 0):
print("AR's chance")
Mark = 'X'
else:
print("TAHA's chance")
Mark = 'O'
choice = int(input("Enter the position between [1-9] where you want to mark : "))
if(CheckPosition(choice)):
board[choice] = Mark
player+=1
CheckWin()
os.system('cls')
DrawBoard()
if(Game==Draw):
print("Game Draw")
elif(Game==Win):
player-=1
print("\n \t________________")
if(player%2!=0):
print("\t AR Won")
else:
print("\t TAHA Won")
print(" \t________________")
OUTPUT:
Tic-Tac-Toe
Abdul Rehman [X] --- Taha [O]
| |
___|___|___
| |
___|___|___
| |
AR's chance
Enter the position between [1-9] where you want to mark : 2
| X |
___|___|___
| |
___|___|___
| |
TAHA's chance
Enter the position between [1-9] where you want to mark : 1
O | X |
___|___|___
| |
___|___|___
| |
AR's chance
Enter the position between [1-9] where you want to mark : 3
O | X | X
___|___|___
| |
___|___|___
| |
TAHA's chance
Enter the position between [1-9] where you want to mark : 4
O | X | X
___|___|___
O | |
___|___|___
| |
AR's chance
Enter the position between [1-9] where you want to mark : 7
O | X | X
___|___|___
O | |
___|___|___
X | |
TAHA's chance
Enter the position between [1-9] where you want to mark : 9
O | X | X
___|___|___
O | |
___|___|___
X | | O
AR's chance
Enter the position between [1-9] where you want to mark : 8
O | X | X
___|___|___
O | |
___|___|___
X | X | O
TAHA's chance
Enter the position between [1-9] where you want to mark : 5
O | X | X
___|___|___
O | O |
___|___|___
X | X | O
________________
TAHA Won
________________
Tasks 2:
def print_tic_tac_toe(values):
print("\n")
print("\t | | |")
print("\t {} | {} | {} | {}".format(values[0], values[1],
values[2], values[3]))
print('\t_____|_____|_____|_____')
print("\t | | |")
print("\t {} | {} | {} | {}".format(values[4], values[5],
values[6], values[7]))
print('\t_____|_____|_____|_____')
print("\t | | |")
print("\t {} | {} | {} | {}".format(values[8], values[9],
values[10], values[11]))
print('\t_____|_____|_____|_____')
print("\t | | |")
print("\t | | |")
print("\n")
players = list(score_board.keys())
print("\t ", players[0], "\t ", score_board[players[0]])
print("\t ", players[1], "\t ", score_board[players[1]])
print("\t--------------------------------\n")
def single_game(cur_player):
print_tic_tac_toe(values)
print("Player ", cur_player, " has won the game!!")
print("\n")
return cur_player
if __name__ == "__main__":
print("Player 1")
player1 = input("Enter the name : ")
print("\n")
print("Player 2")
player2 = input("Enter the name : ")
print("\n")
elif choice == 2:
player_choice['O'] = cur_player
if cur_player == player1:
player_choice['X'] = player2
else:
player_choice['X'] = player1
elif choice == 3:
print("Final Scores")
print_scoreboard(score_board)
break
else:
print("Wrong Choice!!!! Try Again\n")
print_scoreboard(score_board)
# Switch player who chooses X or O
if cur_player == player1:
cur_player = player2
else:
cur_player = player1
OUTPUT:
Player 1
Enter the name : ABDUL REHMAN
Player 2
Enter the name : TAHA
--------------------------------
SCOREBOARD
--------------------------------
ABDUL REHMAN 0
TAHA 0
--------------------------------
| | |
| | |
_____|_____|_____|_____
| | |
| | |
_____|_____|_____|_____
| | |
| | |
_____|_____|_____|_____
| | |
| | |
| | |
| | |
| | |
_____|_____|_____|_____
| | |
| | |
_____|_____|_____|_____
| | |
X | | |
_____|_____|_____|_____
| | |
| | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| | |
_____|_____|_____|_____
| | |
X | | |
_____|_____|_____|_____
| | |
| | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| | |
_____|_____|_____|_____
| | |
X | X | |
_____|_____|_____|_____
| | |
| | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| O | |
_____|_____|_____|_____
| | |
X | X | |
_____|_____|_____|_____
| | |
| | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| O | |
_____|_____|_____|_____
| | |
X | X | X |
_____|_____|_____|_____
| | |
| | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| O | O |
_____|_____|_____|_____
| | |
X | X | X |
_____|_____|_____|_____
| | |
| | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| O | O |
_____|_____|_____|_____
| | |
X | X | X |
_____|_____|_____|_____
| | |
X | | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| O | O | O
_____|_____|_____|_____
| | |
X | X | X |
_____|_____|_____|_____
| | |
X | | |
| | |
| | |
| | | O
_____|_____|_____|_____
| | |
| O | O | O
_____|_____|_____|_____
| | |
X | X | X | X
_____|_____|_____|_____
| | |
X | | |
| | |
--------------------------------
SCOREBOARD
--------------------------------
ABDUL REHMAN 1
TAHA 0
--------------------------------