From 1db6542dda1dd6c08801dc90f4ab3a8ecc294c1d Mon Sep 17 00:00:00 2001 From: Nupura Date: Sat, 24 Jul 2021 23:20:04 +0530 Subject: [PATCH 1/7] Version 1 --- Project_01_Tic-Tac-Toe.ipynb | 130 +++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 Project_01_Tic-Tac-Toe.ipynb diff --git a/Project_01_Tic-Tac-Toe.ipynb b/Project_01_Tic-Tac-Toe.ipynb new file mode 100644 index 0000000..1c923f7 --- /dev/null +++ b/Project_01_Tic-Tac-Toe.ipynb @@ -0,0 +1,130 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 6, + "id": "suburban-marijuana", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1|2|3\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Select option (X,O):\n", + "Player 1: X\n", + "Player 2: O\n", + "Enter position: 1\n", + "Enter option (X,O): O\n", + "O|2|3\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position: 2\n", + "Enter option (X,O): O\n", + "O|O|3\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position: 3\n", + "Enter option (X,O): O\n", + "O|O|O\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Game over! Winner is Player 1!\n" + ] + } + ], + "source": [ + "board=[1,2,3,4,5,6,7,8,9]\n", + "player1=''\n", + "player2=''\n", + "\n", + "#Display the Tic-Tac-Toe board\n", + "def board_display():\n", + " print(str(board[0])+'|'+str(board[1])+'|'+str(board[2]))\n", + " print('-----')\n", + " print(str(board[3])+'|'+str(board[4])+'|'+str(board[5]))\n", + " print('-----')\n", + " print(str(board[6])+'|'+str(board[7])+'|'+str(board[8]))\n", + "\n", + "#Players to select options(X,O)\n", + "def player_select():\n", + " print('Select option (X,O):')\n", + " player1=input('Player 1: ')\n", + " if player1=='X':\n", + " player2='O'\n", + " else:\n", + " player2='X'\n", + " print('Player 2: {}'.format(player2))\n", + "\n", + "#Enter options on the positions\n", + "def enter_option():\n", + " position=input('Enter position: ')\n", + " option=input('Enter option (X,O): ')\n", + " board[int(position)-1]=option\n", + " board_display()\n", + "\n", + "#Update options on the board\n", + "def board_update():\n", + " length=9\n", + " while length>0:\n", + " enter_option()\n", + " if (board[0]==board[1]==board[2]=='X') or (board[0]==board[3]==board[6]=='X') or (board[0]==board[4]==board[8]=='X') or (board[3]==board[4]==board[5]=='X') or (board[6]==board[7]==board[8]=='X') or (board[1]==board[4]==board[7]=='X') or (board[2]==board[5]==board[8]=='X') or (board[6]==board[4]==board[2]=='X'):\n", + " if player1=='X':\n", + " print('Game over! Winner is Player 1!')\n", + " else:\n", + " print('Game over! Winner is Player 2!')\n", + " length=0\n", + " elif (board[0]==board[1]==board[2]=='O') or (board[0]==board[3]==board[6]=='O') or (board[0]==board[4]==board[8]=='O') or (board[3]==board[4]==board[5]=='O') or (board[6]==board[7]==board[8]=='O') or (board[1]==board[4]==board[7]=='O') or (board[2]==board[5]==board[8]=='O') or (board[6]==board[4]==board[2]=='O'):\n", + " if player1=='O':\n", + " print('Game over! Winner is Player 1!')\n", + " else:\n", + " print('Game over! Winner is Player 2!')\n", + " length=0\n", + " length=length-1\n", + "\n", + "board_display()\n", + "player_select()\n", + "board_update()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bigger-apparatus", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 75d582edbd06472c0e91b352f98430e30e43aecd Mon Sep 17 00:00:00 2001 From: Nupura Date: Sat, 7 Aug 2021 20:42:00 +0530 Subject: [PATCH 2/7] Version 2 --- Project_01_Tic-Tac-Toe.ipynb | 114 +++++++++++++++++++++++++---------- 1 file changed, 81 insertions(+), 33 deletions(-) diff --git a/Project_01_Tic-Tac-Toe.ipynb b/Project_01_Tic-Tac-Toe.ipynb index 1c923f7..fea245d 100644 --- a/Project_01_Tic-Tac-Toe.ipynb +++ b/Project_01_Tic-Tac-Toe.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "id": "suburban-marijuana", "metadata": {}, "outputs": [ @@ -16,30 +16,35 @@ "-----\n", "7|8|9\n", "Select option (X,O):\n", - "Player 1: X\n", - "Player 2: O\n", - "Enter position: 1\n", - "Enter option (X,O): O\n", - "O|2|3\n", + "Player 1: O\n", + "Player 2: X\n", + "Enter position (Player 1): 2\n", + "1||3\n", "-----\n", "4|5|6\n", "-----\n", "7|8|9\n", - "Enter position: 2\n", - "Enter option (X,O): O\n", - "O|O|3\n", + "Enter position (Player 1): 1\n", + "||3\n", "-----\n", "4|5|6\n", "-----\n", "7|8|9\n", - "Enter position: 3\n", - "Enter option (X,O): O\n", - "O|O|O\n", - "-----\n", - "4|5|6\n", - "-----\n", - "7|8|9\n", - "Game over! Winner is Player 1!\n" + "Enter position (Player 1): 33\n" + ] + }, + { + "ename": "IndexError", + "evalue": "list assignment index out of range", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 84\u001b[0m \u001b[0mboard_update\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 85\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 86\u001b[1;33m \u001b[0mplay_game_start\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m\u001b[0m in \u001b[0;36mplay_game_start\u001b[1;34m()\u001b[0m\n\u001b[0;32m 82\u001b[0m \u001b[0mboard_display\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 83\u001b[0m \u001b[0mplayer_select\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 84\u001b[1;33m \u001b[0mboard_update\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 85\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 86\u001b[0m \u001b[0mplay_game_start\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m\u001b[0m in \u001b[0;36mboard_update\u001b[1;34m()\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m''\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 46\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[0mlength\u001b[0m\u001b[1;33m>\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 47\u001b[1;33m \u001b[0menter_option\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 48\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcheck_game_over\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 49\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;34m'O'\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;34m'X'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m\u001b[0m in \u001b[0;36menter_option\u001b[1;34m()\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mplayer_flag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 30\u001b[0m \u001b[0mposition\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter position (Player 1): '\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 31\u001b[1;33m \u001b[0mboard\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mposition\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mplayer1\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 32\u001b[0m \u001b[0mplayer_flag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 33\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mIndexError\u001b[0m: list assignment index out of range" ] } ], @@ -47,6 +52,8 @@ "board=[1,2,3,4,5,6,7,8,9]\n", "player1=''\n", "player2=''\n", + "player_flag=True\n", + "position=1\n", "\n", "#Display the Tic-Tac-Toe board\n", "def board_display():\n", @@ -68,33 +75,66 @@ "\n", "#Enter options on the positions\n", "def enter_option():\n", - " position=input('Enter position: ')\n", - " option=input('Enter option (X,O): ')\n", - " board[int(position)-1]=option\n", - " board_display()\n", + " position=1\n", + " if position in range(1,10):\n", + " if player_flag==True:\n", + " position=int(input('Enter position (Player 1): '))\n", + " board[int(position)-1]=player1\n", + " player_flag==False\n", + " else:\n", + " position=int(input('Enter position (Player 2): ')) \n", + " board[int(position)-1]=player2\n", + " player_flag==True\n", + " board_display()\n", + " else:\n", + " print('Incorrect Input. Re-enter position.')\n", + " \n", "\n", "#Update options on the board\n", "def board_update():\n", " length=9\n", + " flag=''\n", " while length>0:\n", " enter_option()\n", - " if (board[0]==board[1]==board[2]=='X') or (board[0]==board[3]==board[6]=='X') or (board[0]==board[4]==board[8]=='X') or (board[3]==board[4]==board[5]=='X') or (board[6]==board[7]==board[8]=='X') or (board[1]==board[4]==board[7]=='X') or (board[2]==board[5]==board[8]=='X') or (board[6]==board[4]==board[2]=='X'):\n", - " if player1=='X':\n", - " print('Game over! Winner is Player 1!')\n", - " else:\n", - " print('Game over! Winner is Player 2!')\n", - " length=0\n", - " elif (board[0]==board[1]==board[2]=='O') or (board[0]==board[3]==board[6]=='O') or (board[0]==board[4]==board[8]=='O') or (board[3]==board[4]==board[5]=='O') or (board[6]==board[7]==board[8]=='O') or (board[1]==board[4]==board[7]=='O') or (board[2]==board[5]==board[8]=='O') or (board[6]==board[4]==board[2]=='O'):\n", - " if player1=='O':\n", + " flag=check_game_over()\n", + " if flag=='O' or flag=='X':\n", + " if player1=='O' or player1=='X':\n", " print('Game over! Winner is Player 1!')\n", " else:\n", " print('Game over! Winner is Player 2!')\n", " length=0\n", - " length=length-1\n", + " else:\n", + " length=length-1\n", + " if flag==False:\n", + " print('Game draw!')\n", + " play_again()\n", "\n", - "board_display()\n", - "player_select()\n", - "board_update()" + "\n", + "def check_game_over():\n", + " if (board[0]==board[1]==board[2]=='O') or (board[0]==board[3]==board[6]=='O') or (board[0]==board[4]==board[8]=='O') or (board[3]==board[4]==board[5]=='O') or (board[6]==board[7]==board[8]=='O') or (board[1]==board[4]==board[7]=='O') or (board[2]==board[5]==board[8]=='O') or (board[6]==board[4]==board[2]=='O'):\n", + " return 'O'\n", + " elif (board[0]==board[1]==board[2]=='X') or (board[0]==board[3]==board[6]=='X') or (board[0]==board[4]==board[8]=='X') or (board[3]==board[4]==board[5]=='X') or (board[6]==board[7]==board[8]=='X') or (board[1]==board[4]==board[7]=='X') or (board[2]==board[5]==board[8]=='X') or (board[6]==board[4]==board[2]=='X'):\n", + " return 'X'\n", + " else:\n", + " return False\n", + " \n", + "def play_again():\n", + " replay=input('Would you like to play again? (Yes/No): ')\n", + " if replay=='Yes':\n", + " board=[1,2,3,4,5,6,7,8,9]\n", + " player1=''\n", + " player2=''\n", + " player=''\n", + " play_game_start()\n", + " else:\n", + " print('Game stopped as per you request')\n", + " \n", + "def play_game_start():\n", + " board_display()\n", + " player_select()\n", + " board_update()\n", + "\n", + "play_game_start()" ] }, { @@ -104,6 +144,14 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "legal-massachusetts", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From 8d2d83c2b073b754c05689fe6463e04d0cbdb357 Mon Sep 17 00:00:00 2001 From: Nupura Date: Sat, 7 Aug 2021 23:25:50 +0530 Subject: [PATCH 3/7] Version 3 --- Project_01_Tic-Tac-Toe.ipynb | 131 +++++++++++++++++++++-------------- 1 file changed, 78 insertions(+), 53 deletions(-) diff --git a/Project_01_Tic-Tac-Toe.ipynb b/Project_01_Tic-Tac-Toe.ipynb index fea245d..f73369e 100644 --- a/Project_01_Tic-Tac-Toe.ipynb +++ b/Project_01_Tic-Tac-Toe.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "id": "suburban-marijuana", "metadata": {}, "outputs": [ @@ -16,35 +16,51 @@ "-----\n", "7|8|9\n", "Select option (X,O):\n", - "Player 1: O\n", - "Player 2: X\n", - "Enter position (Player 1): 2\n", - "1||3\n", + "Player 1: X\n", + "Player 2: O\n", + "Enter position (Player 1): 1\n", + "X|2|3\n", "-----\n", "4|5|6\n", "-----\n", "7|8|9\n", - "Enter position (Player 1): 1\n", - "||3\n", + "Enter position (Player 2): 2\n", + "X|O|3\n", "-----\n", "4|5|6\n", "-----\n", "7|8|9\n", - "Enter position (Player 1): 33\n" - ] - }, - { - "ename": "IndexError", - "evalue": "list assignment index out of range", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 84\u001b[0m \u001b[0mboard_update\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 85\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 86\u001b[1;33m \u001b[0mplay_game_start\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32m\u001b[0m in \u001b[0;36mplay_game_start\u001b[1;34m()\u001b[0m\n\u001b[0;32m 82\u001b[0m \u001b[0mboard_display\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 83\u001b[0m \u001b[0mplayer_select\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 84\u001b[1;33m \u001b[0mboard_update\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 85\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 86\u001b[0m \u001b[0mplay_game_start\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m\u001b[0m in \u001b[0;36mboard_update\u001b[1;34m()\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m''\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 46\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[0mlength\u001b[0m\u001b[1;33m>\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 47\u001b[1;33m \u001b[0menter_option\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 48\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcheck_game_over\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 49\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;34m'O'\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mflag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;34m'X'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m\u001b[0m in \u001b[0;36menter_option\u001b[1;34m()\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mplayer_flag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 30\u001b[0m \u001b[0mposition\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter position (Player 1): '\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 31\u001b[1;33m \u001b[0mboard\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mposition\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mplayer1\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 32\u001b[0m \u001b[0mplayer_flag\u001b[0m\u001b[1;33m==\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 33\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mIndexError\u001b[0m: list assignment index out of range" + "Enter position (Player 1): 4\n", + "X|O|3\n", + "-----\n", + "X|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position (Player 2): 7\n", + "X|O|3\n", + "-----\n", + "X|5|6\n", + "-----\n", + "O|8|9\n", + "Enter position (Player 1): 5\n", + "X|O|3\n", + "-----\n", + "X|X|6\n", + "-----\n", + "O|8|9\n", + "Enter position (Player 2): 3\n", + "X|O|O\n", + "-----\n", + "X|X|6\n", + "-----\n", + "O|8|9\n", + "Enter position (Player 1): 9\n", + "X|O|O\n", + "-----\n", + "X|X|6\n", + "-----\n", + "O|8|X\n", + "Game over! Winner is Player 1!\n" ] } ], @@ -65,6 +81,8 @@ "\n", "#Players to select options(X,O)\n", "def player_select():\n", + " global player1\n", + " global player2\n", " print('Select option (X,O):')\n", " player1=input('Player 1: ')\n", " if player1=='X':\n", @@ -75,59 +93,66 @@ "\n", "#Enter options on the positions\n", "def enter_option():\n", - " position=1\n", - " if position in range(1,10):\n", - " if player_flag==True:\n", - " position=int(input('Enter position (Player 1): '))\n", - " board[int(position)-1]=player1\n", - " player_flag==False\n", + " global player_flag\n", + "# try:\n", + " if player_flag==True:\n", + " position=int(input('Enter position (Player 1): '))\n", + " if position<10 and position>0:\n", + " board[position-1]=player1\n", + " player_flag=False\n", " else:\n", - " position=int(input('Enter position (Player 2): ')) \n", - " board[int(position)-1]=player2\n", - " player_flag==True\n", - " board_display()\n", + " print('Incorrect Input. Re-enter position.')\n", " else:\n", - " print('Incorrect Input. Re-enter position.')\n", - " \n", + " position=int(input('Enter position (Player 2): ')) \n", + " if position<10 and position>0:\n", + " board[position-1]=player2\n", + " player_flag=True\n", + " else:\n", + " print('Incorrect Input. Re-enter position.')\n", + "# except:\n", + "# print('Incorrect Input. Re-enter position.')\n", + " board_display()\n", "\n", "#Update options on the board\n", "def board_update():\n", " length=9\n", - " flag=''\n", + " winner_found=False\n", " while length>0:\n", " enter_option()\n", - " flag=check_game_over()\n", - " if flag=='O' or flag=='X':\n", - " if player1=='O' or player1=='X':\n", - " print('Game over! Winner is Player 1!')\n", - " else:\n", - " print('Game over! Winner is Player 2!')\n", + " if game_winner(player1):\n", + " print('Game over! Winner is Player 1!')\n", + " length=0\n", + " winner_found=True\n", + " elif game_winner(player2):\n", + " print('Game over! Winner is Player 2!')\n", " length=0\n", + " winner_found=True\n", " else:\n", " length=length-1\n", - " if flag==False:\n", + "\n", + " if winner_found==False:\n", " print('Game draw!')\n", - " play_again()\n", + "# play_again()\n", "\n", "\n", - "def check_game_over():\n", - " if (board[0]==board[1]==board[2]=='O') or (board[0]==board[3]==board[6]=='O') or (board[0]==board[4]==board[8]=='O') or (board[3]==board[4]==board[5]=='O') or (board[6]==board[7]==board[8]=='O') or (board[1]==board[4]==board[7]=='O') or (board[2]==board[5]==board[8]=='O') or (board[6]==board[4]==board[2]=='O'):\n", - " return 'O'\n", - " elif (board[0]==board[1]==board[2]=='X') or (board[0]==board[3]==board[6]=='X') or (board[0]==board[4]==board[8]=='X') or (board[3]==board[4]==board[5]=='X') or (board[6]==board[7]==board[8]=='X') or (board[1]==board[4]==board[7]=='X') or (board[2]==board[5]==board[8]=='X') or (board[6]==board[4]==board[2]=='X'):\n", - " return 'X'\n", - " else:\n", - " return False\n", + "def game_winner(player):\n", + " return ((board[0]==board[1]==board[2]==player) or (board[0]==board[3]==board[6]==player) or \n", + " (board[0]==board[4]==board[8]==player) or (board[3]==board[4]==board[5]==player) or \n", + " (board[6]==board[7]==board[8]==player) or (board[1]==board[4]==board[7]==player) or \n", + " (board[2]==board[5]==board[8]==player) or (board[6]==board[4]==board[2]==player))\n", " \n", "def play_again():\n", " replay=input('Would you like to play again? (Yes/No): ')\n", " if replay=='Yes':\n", + " global board\n", " board=[1,2,3,4,5,6,7,8,9]\n", + " global player1\n", " player1=''\n", + " global player2\n", " player2=''\n", - " player=''\n", " play_game_start()\n", " else:\n", - " print('Game stopped as per you request')\n", + " print('Game stopped as per you request!')\n", " \n", "def play_game_start():\n", " board_display()\n", @@ -148,7 +173,7 @@ { "cell_type": "code", "execution_count": null, - "id": "legal-massachusetts", + "id": "municipal-tourism", "metadata": {}, "outputs": [], "source": [] From 1df14ddf26d17b3281531a194f95ebec1cc0e6be Mon Sep 17 00:00:00 2001 From: Nupura Date: Sat, 7 Aug 2021 23:47:31 +0530 Subject: [PATCH 4/7] Version 4 --- Project_01_Tic-Tac-Toe.ipynb | 89 ++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 29 deletions(-) diff --git a/Project_01_Tic-Tac-Toe.ipynb b/Project_01_Tic-Tac-Toe.ipynb index f73369e..c3d238b 100644 --- a/Project_01_Tic-Tac-Toe.ipynb +++ b/Project_01_Tic-Tac-Toe.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "suburban-marijuana", "metadata": {}, "outputs": [ @@ -16,51 +16,81 @@ "-----\n", "7|8|9\n", "Select option (X,O):\n", - "Player 1: X\n", - "Player 2: O\n", - "Enter position (Player 1): 1\n", - "X|2|3\n", + "Player 1: O\n", + "Player 2: X\n", + "Enter position (Player 1): 3\n", + "1|2|O\n", "-----\n", "4|5|6\n", "-----\n", "7|8|9\n", "Enter position (Player 2): 2\n", - "X|O|3\n", + "1|X|O\n", "-----\n", "4|5|6\n", "-----\n", "7|8|9\n", - "Enter position (Player 1): 4\n", - "X|O|3\n", + "Enter position (Player 1): 6\n", + "1|X|O\n", "-----\n", - "X|5|6\n", + "4|5|O\n", "-----\n", "7|8|9\n", - "Enter position (Player 2): 7\n", - "X|O|3\n", + "Enter position (Player 2): 1\n", + "X|X|O\n", "-----\n", - "X|5|6\n", + "4|5|O\n", "-----\n", - "O|8|9\n", - "Enter position (Player 1): 5\n", - "X|O|3\n", + "7|8|9\n", + "Enter position (Player 1): 9\n", + "X|X|O\n", "-----\n", - "X|X|6\n", + "4|5|O\n", "-----\n", - "O|8|9\n", - "Enter position (Player 2): 3\n", - "X|O|O\n", + "7|8|O\n", + "Game over! Winner is Player 1!\n", + "Would you like to play again? (Yes/No): Yes\n", + "1|2|3\n", "-----\n", - "X|X|6\n", + "4|5|6\n", "-----\n", - "O|8|9\n", - "Enter position (Player 1): 9\n", - "X|O|O\n", + "7|8|9\n", + "Select option (X,O):\n", + "Player 1: X\n", + "Player 2: O\n", + "Enter position (Player 2): 1\n", + "O|2|3\n", "-----\n", - "X|X|6\n", + "4|5|6\n", "-----\n", - "O|8|X\n", - "Game over! Winner is Player 1!\n" + "7|8|9\n", + "Enter position (Player 1): 2\n", + "O|X|3\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position (Player 2): 4\n", + "O|X|3\n", + "-----\n", + "O|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position (Player 1): 5\n", + "O|X|3\n", + "-----\n", + "O|X|6\n", + "-----\n", + "7|8|9\n", + "Enter position (Player 2): 7\n", + "O|X|3\n", + "-----\n", + "O|X|6\n", + "-----\n", + "O|8|9\n", + "Game over! Winner is Player 2!\n", + "Would you like to play again? (Yes/No): No\n", + "Game stopped as per you request!\n" ] } ], @@ -69,7 +99,6 @@ "player1=''\n", "player2=''\n", "player_flag=True\n", - "position=1\n", "\n", "#Display the Tic-Tac-Toe board\n", "def board_display():\n", @@ -132,7 +161,7 @@ "\n", " if winner_found==False:\n", " print('Game draw!')\n", - "# play_again()\n", + " play_again()\n", "\n", "\n", "def game_winner(player):\n", @@ -150,6 +179,8 @@ " player1=''\n", " global player2\n", " player2=''\n", + " global player_flag\n", + " player_flag=True\n", " play_game_start()\n", " else:\n", " print('Game stopped as per you request!')\n", @@ -173,7 +204,7 @@ { "cell_type": "code", "execution_count": null, - "id": "municipal-tourism", + "id": "mental-pattern", "metadata": {}, "outputs": [], "source": [] From 10bf0f8ebc3cee9b2ee61a70febaa8654414cbcb Mon Sep 17 00:00:00 2001 From: Nupura Date: Thu, 12 Aug 2021 21:38:28 +0530 Subject: [PATCH 5/7] Version 3 --- Project_01_Tic-Tac-Toe.ipynb | 132 +++++++---------------------------- 1 file changed, 25 insertions(+), 107 deletions(-) diff --git a/Project_01_Tic-Tac-Toe.ipynb b/Project_01_Tic-Tac-Toe.ipynb index c3d238b..981a6ac 100644 --- a/Project_01_Tic-Tac-Toe.ipynb +++ b/Project_01_Tic-Tac-Toe.ipynb @@ -2,98 +2,10 @@ "cells": [ { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "suburban-marijuana", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1|2|3\n", - "-----\n", - "4|5|6\n", - "-----\n", - "7|8|9\n", - "Select option (X,O):\n", - "Player 1: O\n", - "Player 2: X\n", - "Enter position (Player 1): 3\n", - "1|2|O\n", - "-----\n", - "4|5|6\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 2): 2\n", - "1|X|O\n", - "-----\n", - "4|5|6\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 1): 6\n", - "1|X|O\n", - "-----\n", - "4|5|O\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 2): 1\n", - "X|X|O\n", - "-----\n", - "4|5|O\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 1): 9\n", - "X|X|O\n", - "-----\n", - "4|5|O\n", - "-----\n", - "7|8|O\n", - "Game over! Winner is Player 1!\n", - "Would you like to play again? (Yes/No): Yes\n", - "1|2|3\n", - "-----\n", - "4|5|6\n", - "-----\n", - "7|8|9\n", - "Select option (X,O):\n", - "Player 1: X\n", - "Player 2: O\n", - "Enter position (Player 2): 1\n", - "O|2|3\n", - "-----\n", - "4|5|6\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 1): 2\n", - "O|X|3\n", - "-----\n", - "4|5|6\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 2): 4\n", - "O|X|3\n", - "-----\n", - "O|5|6\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 1): 5\n", - "O|X|3\n", - "-----\n", - "O|X|6\n", - "-----\n", - "7|8|9\n", - "Enter position (Player 2): 7\n", - "O|X|3\n", - "-----\n", - "O|X|6\n", - "-----\n", - "O|8|9\n", - "Game over! Winner is Player 2!\n", - "Would you like to play again? (Yes/No): No\n", - "Game stopped as per you request!\n" - ] - } - ], + "outputs": [], "source": [ "board=[1,2,3,4,5,6,7,8,9]\n", "player1=''\n", @@ -123,23 +35,29 @@ "#Enter options on the positions\n", "def enter_option():\n", " global player_flag\n", - "# try:\n", - " if player_flag==True:\n", - " position=int(input('Enter position (Player 1): '))\n", - " if position<10 and position>0:\n", - " board[position-1]=player1\n", - " player_flag=False\n", - " else:\n", - " print('Incorrect Input. Re-enter position.')\n", - " else:\n", - " position=int(input('Enter position (Player 2): ')) \n", - " if position<10 and position>0:\n", - " board[position-1]=player2\n", - " player_flag=True\n", - " else:\n", - " print('Incorrect Input. Re-enter position.')\n", - "# except:\n", - "# print('Incorrect Input. Re-enter position.')\n", + " check_position=True\n", + " while check_position:\n", + " try:\n", + " if player_flag==True:\n", + " position=int(input('Enter position (Player 1): '))\n", + " if position<10 and position>0:\n", + " if board[position-1]!='X' or board[position-1]!='O':\n", + " board[position-1]=player1\n", + " player_flag=False\n", + " check_position=False\n", + " else:\n", + " print('Position already occupied. Re-enter position.')\n", + " else:\n", + " position=int(input('Enter position (Player 2): ')) \n", + " if position<10 and position>0:\n", + " if board[position-1]!='X' or board[position-1]!='O':\n", + " board[position-1]=player2\n", + " player_flag=True\n", + " check_position=False\n", + " else:\n", + " print('Position already occupied. Re-enter position.')\n", + " except:\n", + " print('Incorrect Input. Re-enter position.')\n", " board_display()\n", "\n", "#Update options on the board\n", From 4fadce868acb9f87488ef2c497c795a2d195822a Mon Sep 17 00:00:00 2001 From: Nupura Date: Fri, 13 Aug 2021 08:05:40 +0530 Subject: [PATCH 6/7] Version 4 --- Project_01_Tic-Tac-Toe.ipynb | 82 +++++++++++++++++++++++++++++------- 1 file changed, 67 insertions(+), 15 deletions(-) diff --git a/Project_01_Tic-Tac-Toe.ipynb b/Project_01_Tic-Tac-Toe.ipynb index 981a6ac..dc43154 100644 --- a/Project_01_Tic-Tac-Toe.ipynb +++ b/Project_01_Tic-Tac-Toe.ipynb @@ -5,7 +5,54 @@ "execution_count": null, "id": "suburban-marijuana", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1|2|3\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Select option (X,O):\n", + "Player 1: X\n", + "Player 2: O\n", + "Enter position (Player 1): 1\n", + "X|2|3\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position (Player 2): 2\n", + "X|O|3\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position (Player 1): 11\n", + "Incorrect Input. Re-enter position.\n", + "Enter position (Player 1): 23\n", + "Incorrect Input. Re-enter position.\n", + "Enter position (Player 1): ad\n", + "Incorrect Input. Re-enter position.\n", + "Enter position (Player 1): 3\n", + "X|O|X\n", + "-----\n", + "4|5|6\n", + "-----\n", + "7|8|9\n", + "Enter position (Player 2): 2\n", + "Position already occupied. Re-enter position.\n", + "Enter position (Player 2): 4\n", + "X|O|X\n", + "-----\n", + "O|5|6\n", + "-----\n", + "7|8|9\n" + ] + } + ], "source": [ "board=[1,2,3,4,5,6,7,8,9]\n", "player1=''\n", @@ -40,26 +87,31 @@ " try:\n", " if player_flag==True:\n", " position=int(input('Enter position (Player 1): '))\n", - " if position<10 and position>0:\n", - " if board[position-1]!='X' or board[position-1]!='O':\n", - " board[position-1]=player1\n", - " player_flag=False\n", - " check_position=False\n", - " else:\n", - " print('Position already occupied. Re-enter position.')\n", + " check_position=position_check(position)\n", + " if not check_position:\n", + " board[position-1]=player1\n", + " player_flag=not player_flag \n", " else:\n", " position=int(input('Enter position (Player 2): ')) \n", - " if position<10 and position>0:\n", - " if board[position-1]!='X' or board[position-1]!='O':\n", - " board[position-1]=player2\n", - " player_flag=True\n", - " check_position=False\n", - " else:\n", - " print('Position already occupied. Re-enter position.')\n", + " check_position=position_check(position)\n", + " if not check_position:\n", + " board[position-1]=player2\n", + " player_flag=not player_flag\n", " except:\n", " print('Incorrect Input. Re-enter position.')\n", " board_display()\n", "\n", + "def position_check(position):\n", + " if position>=10 and position<0:\n", + " print('Incorrect position. It should be within 1 and 9. Re-enter position.')\n", + " return True\n", + " \n", + " if board[position-1] in ['X','O']:\n", + " print('Position already occupied. Re-enter position.')\n", + " return True\n", + "\n", + " return False \n", + " \n", "#Update options on the board\n", "def board_update():\n", " length=9\n", From 2aa9e3470b5afeff857e563158ee7802409ae8b4 Mon Sep 17 00:00:00 2001 From: Nupura Date: Wed, 25 Aug 2021 18:18:41 +0530 Subject: [PATCH 7/7] Version 5 --- Project_01_Result_File.txt | 2 + Project_01_Tic-Tac-Toe.ipynb | 142 ++++++++++++++++++++++------------- 2 files changed, 91 insertions(+), 53 deletions(-) create mode 100644 Project_01_Result_File.txt diff --git a/Project_01_Result_File.txt b/Project_01_Result_File.txt new file mode 100644 index 0000000..a4fa7f7 --- /dev/null +++ b/Project_01_Result_File.txt @@ -0,0 +1,2 @@ +RESULT CHART: +Game over! Winner is Player 1! \ No newline at end of file diff --git a/Project_01_Tic-Tac-Toe.ipynb b/Project_01_Tic-Tac-Toe.ipynb index dc43154..c89b8a6 100644 --- a/Project_01_Tic-Tac-Toe.ipynb +++ b/Project_01_Tic-Tac-Toe.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "suburban-marijuana", "metadata": {}, "outputs": [ @@ -16,6 +16,9 @@ "-----\n", "7|8|9\n", "Select option (X,O):\n", + "Player 1: A\n", + "Please enter valid input: (X,O)\n", + "Select option (X,O):\n", "Player 1: X\n", "Player 2: O\n", "Enter position (Player 1): 1\n", @@ -30,26 +33,30 @@ "4|5|6\n", "-----\n", "7|8|9\n", - "Enter position (Player 1): 11\n", - "Incorrect Input. Re-enter position.\n", - "Enter position (Player 1): 23\n", - "Incorrect Input. Re-enter position.\n", - "Enter position (Player 1): ad\n", - "Incorrect Input. Re-enter position.\n", - "Enter position (Player 1): 3\n", - "X|O|X\n", + "Enter position (Player 1): 4\n", + "X|O|3\n", "-----\n", - "4|5|6\n", + "X|5|6\n", "-----\n", "7|8|9\n", - "Enter position (Player 2): 2\n", - "Position already occupied. Re-enter position.\n", - "Enter position (Player 2): 4\n", - "X|O|X\n", + "Enter position (Player 2): 5\n", + "X|O|3\n", "-----\n", - "O|5|6\n", + "X|O|6\n", "-----\n", - "7|8|9\n" + "7|8|9\n", + "Enter position (Player 1): 7\n", + "X|O|3\n", + "-----\n", + "X|O|6\n", + "-----\n", + "X|8|9\n", + "Game over! Winner is Player 1!\n", + "RESULT CHART:\n", + "\n", + "Game over! Winner is Player 1!\n", + "Would you like to play again? (Yes/No): No\n", + "Game stopped as per you request!\n" ] } ], @@ -71,13 +78,21 @@ "def player_select():\n", " global player1\n", " global player2\n", - " print('Select option (X,O):')\n", - " player1=input('Player 1: ')\n", - " if player1=='X':\n", - " player2='O'\n", - " else:\n", - " player2='X'\n", - " print('Player 2: {}'.format(player2))\n", + " check_player_input=True\n", + " while check_player_input: \n", + " print('Select option (X,O):')\n", + " player1=input('Player 1: ')\n", + " if player1=='X':\n", + " player2='O'\n", + " print('Player 2: {}'.format(player2))\n", + " check_player_input=False\n", + " elif player1=='O':\n", + " player2='X'\n", + " print('Player 2: {}'.format(player2))\n", + " check_player_input=False\n", + " else: \n", + " print('Please enter valid input: (X,O)')\n", + " \n", "\n", "#Enter options on the positions\n", "def enter_option():\n", @@ -87,74 +102,95 @@ " try:\n", " if player_flag==True:\n", " position=int(input('Enter position (Player 1): '))\n", - " check_position=position_check(position)\n", - " if not check_position:\n", - " board[position-1]=player1\n", - " player_flag=not player_flag \n", + " check_position=position_check(position,player1) \n", " else:\n", " position=int(input('Enter position (Player 2): ')) \n", - " check_position=position_check(position)\n", - " if not check_position:\n", - " board[position-1]=player2\n", - " player_flag=not player_flag\n", + " check_position=position_check(position,player2)\n", " except:\n", " print('Incorrect Input. Re-enter position.')\n", " board_display()\n", "\n", - "def position_check(position):\n", + "#Checks for - the position on the board is occupied or not, incorrect position entered. Also,update position if all is ok.\n", + "def position_check(position,player):\n", + " global player_flag\n", " if position>=10 and position<0:\n", " print('Incorrect position. It should be within 1 and 9. Re-enter position.')\n", " return True\n", - " \n", - " if board[position-1] in ['X','O']:\n", + " elif board[position-1] in ['X','O']:\n", " print('Position already occupied. Re-enter position.')\n", " return True\n", + " else:\n", + " board[position-1]=player\n", + " player_flag=not player_flag \n", + " return False \n", "\n", - " return False \n", " \n", "#Update options on the board\n", "def board_update():\n", " length=9\n", " winner_found=False\n", + " result=''\n", " while length>0:\n", " enter_option()\n", " if game_winner(player1):\n", - " print('Game over! Winner is Player 1!')\n", + " result='Game over! Winner is Player 1!'\n", + " print(result)\n", " length=0\n", " winner_found=True\n", " elif game_winner(player2):\n", - " print('Game over! Winner is Player 2!')\n", + " result='Game over! Winner is Player 2!'\n", + " print(result)\n", " length=0\n", " winner_found=True\n", " else:\n", " length=length-1\n", - "\n", " if winner_found==False:\n", - " print('Game draw!')\n", + " result='Game draw!'\n", + " print(result)\n", + " \n", + " result_file(result) \n", " play_again()\n", "\n", - "\n", + "#Returns result if game is over and there is a winner\n", "def game_winner(player):\n", " return ((board[0]==board[1]==board[2]==player) or (board[0]==board[3]==board[6]==player) or \n", " (board[0]==board[4]==board[8]==player) or (board[3]==board[4]==board[5]==player) or \n", " (board[6]==board[7]==board[8]==player) or (board[1]==board[4]==board[7]==player) or \n", " (board[2]==board[5]==board[8]==player) or (board[6]==board[4]==board[2]==player))\n", " \n", + "#Ask users if they wish to continue the game or stop.\n", "def play_again():\n", - " replay=input('Would you like to play again? (Yes/No): ')\n", - " if replay=='Yes':\n", - " global board\n", - " board=[1,2,3,4,5,6,7,8,9]\n", - " global player1\n", - " player1=''\n", - " global player2\n", - " player2=''\n", - " global player_flag\n", - " player_flag=True\n", - " play_game_start()\n", - " else:\n", - " print('Game stopped as per you request!')\n", + " play_again_input=True\n", + " while play_again_input: \n", + " replay=input('Would you like to play again? (Yes/No): ')\n", + " if replay=='Yes':\n", + " global board\n", + " board=[1,2,3,4,5,6,7,8,9]\n", + " global player1\n", + " player1=''\n", + " global player2\n", + " player2=''\n", + " global player_flag\n", + " player_flag=True\n", + " play_game_start()\n", + " play_again_input=False\n", + " elif replay=='No':\n", + " print('Game stopped as per you request!')\n", + " play_again_input=False\n", + " else:\n", + " print('Unable to understand the input. Please re-enter.')\n", + "\n", + "#Save the result of the game in a file\n", + "def result_file(result):\n", + " game_result_file=open('Project_01_Result_File.txt',mode='a')\n", + " game_result_file.write('\\n'+result)\n", + " game_result_file.close()\n", + " \n", + " game_result_file=open('Project_01_Result_File.txt',mode='r')\n", + " print(game_result_file.read())\n", + " game_result_file.close()\n", " \n", + "#Start game \n", "def play_game_start():\n", " board_display()\n", " player_select()\n",