Tick Tack Toe
From a course I bought in Udemy
I think I covered any possible type error that the user could make, please tell me if I´m missing something!!
What it does?
-Ask the user to choose between X or O as a marker
-Random to choose who is first
-Verifies it´s an empty space
-Then places the marker in a place that the player chooses
-Verifies is someone has won
-So on, so on
-At the end ask if they want to play again
I first try it without any help for 4 days,
then finished whit some kind of walkthrough they give and then I mixed what I like and what they used to optimize my project! Whit a total of 7 days and approx. 800 written lines of code!!
Pro tip:
To upload code just go to the programs you use, select all the code + tab + control c
Then just paste it here!
code
import randomdef final_display(display1,numepad): #Yei! すき!好き!スキ!1-9rprint(''*3)print(display1[:3],'°-°',numepad[:3])print('---------------',' + ','---------')print(display1[3:6],'°_°',numepad[3:6])print('---------------',' + ','---------')print(display1[6:],'°_°',numepad[6:])print('---------------',' + ','---------')def choice_xy():print("Welcome to my tic tac toe game!~")choice = input("Do you want X or O?: ")while choice.lower() not in ['x','o']:choice = input("I said X or O?... ")if choice.lower() == 'x':return 'X','O'else:return 'O','X'def place_symbol(display2,symbol,where): #just places the correct symboldisplay2[where] = symboldef win_check(board,mark):#Checks for all the Rows#then all the Columns#at least if the diagonals are equial to each other and the Markerif board[0] == mark and board[1] == mark and board[2] == mark:return Trueelif board[3] == mark and board[4] == mark and board[5] == mark:return Trueelif board[6] == mark and board[7] == mark and board[8] == mark:return Trueelif board[0] == mark and board[3] == mark and board[6] == mark:return Trueelif board[1] == mark and board[4] == mark and board[7] == mark:return Trueelif board[2] == mark and board[5] == mark and board[8] == mark:return Trueelif board[6] == mark and board[4] == mark and board[2] == mark:return Trueelif board[0] == mark and board[4] == mark and board[8] == mark:return Trueelse:return Falsedef random_turn():turn = random.randint(1,2)if turn == 1:#print('Player 1')return turnelse:#print('Player 2')return turndef available_check(display3,position3):#Returns bool to check is the space is availablereturn not display3[position3-1].isupper()#True == Occupied, False == Emptydef full_display(display7):#Checks if the display is full == Truecounter = 0for i in [1,2,3,4,5,6,7,8,9]:if display7[i-1] in 'X' or display7[i-1] in 'O':counter += 1return counter == 9def where_put_it(): #Ask where to put the marker and verifies is in 1-9where = input('Where do you want to make your move?(1-9) ')while where not in ('1','2','3','4','5','6','7','8','9'):where = input('違う Invalid move, try again .... ')where2 = int(where)return where2def play_again_ask(): #If wanna play again, returns Truechoice = input('Wanna play again?(Yes or No): ')while choice.lower() not in ['yes', 'no']:choice = input('あのさ。。Yes or No: ')if choice.lower() == 'yes':return 'yes'else: #Just can be 'yes' or 'no'return 'no'def pc_gaming():display0_0 = [' ',' ',' ',' ',' ',' ',' ',' ',' ']numepad = [1, 2, 3,4, 5, 6,7, 8, 9]player1S,player2S = choice_xy()if random_turn() == 1:turnCast = 1print('Player 1 goose first~')else:turnCast = 2print('Player 2 goose first~')while not full_display(display0_0):if turnCast % 2 == 0:print('Player 2´s turn~')final_display(display0_0, numepad)castPosition = where_put_it()-1 # Checks is in 1-9##################while display0_0[castPosition].isupper():print('-Occupied field-')castPosition = where_put_it()-1place_symbol(display0_0,player2S,castPosition)if win_check(display0_0,player2S):final_display(display0_0, numepad)print('Player 2 WINS!')breakelif turnCast % 2 != 0:print('Player 1´s turn~')final_display(display0_0,numepad)castPosition = where_put_it()-1 # Checks is in 1-9##############while display0_0[castPosition].isupper():print('-Occupied field-')castPosition = where_put_it()-1place_symbol(display0_0,player1S,castPosition)if win_check(display0_0,player1S):final_display(display0_0, numepad)print('Player 1 WINS!')breakturnCast += 1if not(win_check(display0_0,player1S) and win_check(display0_0,player1S)) and full_display(display0_0):print('Nobody wins...')pc_gaming()response = play_again_ask()if response.lower == 'yes':pc_gaming()else:print('Thanks for playing!')import random def final_display(display1,numepad): #Yei! すき!好き!スキ!1-9r print(''*3) print(display1[:3],'°-°',numepad[:3]) print('---------------',' + ','---------') print(display1[3:6],'°_°',numepad[3:6]) print('---------------',' + ','---------') print(display1[6:],'°_°',numepad[6:]) print('---------------',' + ','---------') def choice_xy(): print("Welcome to my tic tac toe game!~") choice = input("Do you want X or O?: ") while choice.lower() not in ['x','o']: choice = input("I said X or O?... ") if choice.lower() == 'x': return 'X','O' else: return 'O','X' def place_symbol(display2,symbol,where): #just places the correct symbol display2[where] = symbol def win_check(board,mark): #Checks for all the Rows #then all the Columns #at least if the diagonals are equial to each other and the Marker if board[0] == mark and board[1] == mark and board[2] == mark: return True elif board[3] == mark and board[4] == mark and board[5] == mark: return True elif board[6] == mark and board[7] == mark and board[8] == mark: return True elif board[0] == mark and board[3] == mark and board[6] == mark: return True elif board[1] == mark and board[4] == mark and board[7] == mark: return True elif board[2] == mark and board[5] == mark and board[8] == mark: return True elif board[6] == mark and board[4] == mark and board[2] == mark: return True elif board[0] == mark and board[4] == mark and board[8] == mark: return True else: return False def random_turn(): turn = random.randint(1,2) if turn == 1: #print('Player 1') return turn else: #print('Player 2') return turn def available_check(display3,position3): #Returns bool to check is the space is available return not display3[position3-1].isupper() #True == Occupied, False == Empty def full_display(display7): #Checks if the display is full == True counter = 0 for i in [1,2,3,4,5,6,7,8,9]: if display7[i-1] in 'X' or display7[i-1] in 'O': counter += 1 return counter == 9 def where_put_it(): #Ask where to put the marker and verifies is in 1-9 where = input('Where do you want to make your move?(1-9) ') while where not in ('1','2','3','4','5','6','7','8','9'): where = input('違う Invalid move, try again .... ') where2 = int(where) return where2 def play_again_ask(): #If wanna play again, returns True choice = input('Wanna play again?(Yes or No): ') while choice.lower() not in ['yes', 'no']: choice = input('あのさ。。Yes or No: ') if choice.lower() == 'yes': return 'yes' else: #Just can be 'yes' or 'no' return 'no' def pc_gaming(): display0_0 = [' ',' ',' ', ' ',' ',' ', ' ',' ',' '] numepad = [1, 2, 3, 4, 5, 6, 7, 8, 9] player1S,player2S = choice_xy() if random_turn() == 1: turnCast = 1 print('Player 1 goose first~') else: turnCast = 2 print('Player 2 goose first~') while not full_display(display0_0): if turnCast % 2 == 0: print('Player 2´s turn~') final_display(display0_0, numepad) castPosition = where_put_it()-1 # Checks is in 1-9 ################## while display0_0[castPosition].isupper(): print('-Occupied field-') castPosition = where_put_it()-1 place_symbol(display0_0,player2S,castPosition) if win_check(display0_0,player2S): final_display(display0_0, numepad) print('Player 2 WINS!') break elif turnCast % 2 != 0: print('Player 1´s turn~') final_display(display0_0,numepad) castPosition = where_put_it()-1 # Checks is in 1-9 ############## while display0_0[castPosition].isupper(): print('-Occupied field-') castPosition = where_put_it()-1 place_symbol(display0_0,player1S,castPosition) if win_check(display0_0,player1S): final_display(display0_0, numepad) print('Player 1 WINS!') break turnCast += 1 if not(win_check(display0_0,player1S) and win_check(display0_0,player1S)) and full_display(display0_0): print('Nobody wins...') pc_gaming() response = play_again_ask() if response.lower == 'yes': pc_gaming() else: print('Thanks for playing!')import random def final_display(display1,numepad): #Yei! すき!好き!スキ!1-9r print(''*3) print(display1[:3],'°-°',numepad[:3]) print('---------------',' + ','---------') print(display1[3:6],'°_°',numepad[3:6]) print('---------------',' + ','---------') print(display1[6:],'°_°',numepad[6:]) print('---------------',' + ','---------') def choice_xy(): print("Welcome to my tic tac toe game!~") choice = input("Do you want X or O?: ") while choice.lower() not in ['x','o']: choice = input("I said X or O?... ") if choice.lower() == 'x': return 'X','O' else: return 'O','X' def place_symbol(display2,symbol,where): #just places the correct symbol display2[where] = symbol def win_check(board,mark): #Checks for all the Rows #then all the Columns #at least if the diagonals are equial to each other and the Marker if board[0] == mark and board[1] == mark and board[2] == mark: return True elif board[3] == mark and board[4] == mark and board[5] == mark: return True elif board[6] == mark and board[7] == mark and board[8] == mark: return True elif board[0] == mark and board[3] == mark and board[6] == mark: return True elif board[1] == mark and board[4] == mark and board[7] == mark: return True elif board[2] == mark and board[5] == mark and board[8] == mark: return True elif board[6] == mark and board[4] == mark and board[2] == mark: return True elif board[0] == mark and board[4] == mark and board[8] == mark: return True else: return False def random_turn(): turn = random.randint(1,2) if turn == 1: #print('Player 1') return turn else: #print('Player 2') return turn def available_check(display3,position3): #Returns bool to check is the space is available return not display3[position3-1].isupper() #True == Occupied, False == Empty def full_display(display7): #Checks if the display is full == True counter = 0 for i in [1,2,3,4,5,6,7,8,9]: if display7[i-1] in 'X' or display7[i-1] in 'O': counter += 1 return counter == 9 def where_put_it(): #Ask where to put the marker and verifies is in 1-9 where = input('Where do you want to make your move?(1-9) ') while where not in ('1','2','3','4','5','6','7','8','9'): where = input('違う Invalid move, try again .... ') where2 = int(where) return where2 def play_again_ask(): #If wanna play again, returns True choice = input('Wanna play again?(Yes or No): ') while choice.lower() not in ['yes', 'no']: choice = input('あのさ。。Yes or No: ') if choice.lower() == 'yes': return 'yes' else: #Just can be 'yes' or 'no' return 'no' def pc_gaming(): display0_0 = [' ',' ',' ', ' ',' ',' ', ' ',' ',' '] numepad = [1, 2, 3, 4, 5, 6, 7, 8, 9] player1S,player2S = choice_xy() if random_turn() == 1: turnCast = 1 print('Player 1 goose first~') else: turnCast = 2 print('Player 2 goose first~') while not full_display(display0_0): if turnCast % 2 == 0: print('Player 2´s turn~') final_display(display0_0, numepad) castPosition = where_put_it()-1 # Checks is in 1-9 ################## while display0_0[castPosition].isupper(): print('-Occupied field-') castPosition = where_put_it()-1 place_symbol(display0_0,player2S,castPosition) if win_check(display0_0,player2S): final_display(display0_0, numepad) print('Player 2 WINS!') break elif turnCast % 2 != 0: print('Player 1´s turn~') final_display(display0_0,numepad) castPosition = where_put_it()-1 # Checks is in 1-9 ############## while display0_0[castPosition].isupper(): print('-Occupied field-') castPosition = where_put_it()-1 place_symbol(display0_0,player1S,castPosition) if win_check(display0_0,player1S): final_display(display0_0, numepad) print('Player 1 WINS!') break turnCast += 1 if not(win_check(display0_0,player1S) and win_check(display0_0,player1S)) and full_display(display0_0): print('Nobody wins...') pc_gaming() response = play_again_ask() if response.lower == 'yes': pc_gaming() else: print('Thanks for playing!')
Enter fullscreen mode Exit fullscreen mode
暂无评论内容