# 3/4pi*r^3 #import math # def up_low(s): # # lower = [s[sign].islower() for sign in range(len(s))] # print(lower.count(True)) # # upper = [s[sign].isupper() for sign in range(len(s))] # print(upper.count(True)) # # # up_low('Hello Mr. Rogers, how are you this fine Tuesday?') # # # def unique_list(l): # list = [] # for counter in range(len(l)): # if l[counter] not in list: # list.append(l[counter]) # print(list) # # print(unique_list([1,1,1,1,2,2,3,3,3,3,4,5])) # # def multiply(numbers): # total = 1 # for number in range(len(numbers)): # total *= numbers[number] # # print(total) # # multiply([1,2,3,-4]) # def palindrome(s): # if s == s[::-1]: # print(True) # else: # print(False) # # palindrome('helleh') # import string # # def ispanagram(str1, alphabet=string.ascii_lowercase): # counter = 0 # for sign in range(len(alphabet)): # alphabet_length = len(alphabet) # if alphabet[sign] in str1: # counter += 1 # continue # else: # break # # if alphabet_length == counter: # print('Word is panagram') # else: # print("Word is not panagram") # # ispanagram('The quick brown fox jumps over the lazy dog') # import string # # def ispanagram(str1, alphabet=string.ascii_lowercase): # alphaset = set(alphabet) # return alphaset <= set(str1.lower()) # # ispanagram('The quick brown fox jumps over the lazy dog') x = 0 gameboard = [1, 2, 3, 4, 5, 6, 7, 8, 9] def display_board(board): i = 0 for loop in range(int(len(board)/3)): print("{} | {} | {}".format(board[i], board[i+1], board[i+2])) i+=3 if loop != 2: print("---------") def player_input(): global x, gameboard if x%2==0: print("Plyer1 move(X):") else: print("Player2 move(O):") while True: try: position = int(input("Choose position(1-9):")) if position < 1 or position > 9: raise ValueError('You picked wrong number') if gameboard[position-1] == 'X' or gameboard[position-1] == 'O': print("Field occupied") else: if x%2==0: gameboard[position-1] = 'X' display_board(gameboard) x += 1 check_win('X') else: gameboard[position-1] = 'O' display_board(gameboard) x += 1 check_win('O') break except ValueError: print("You picked wrong number") def check_win(sign): global x global gameboard flag = 0 if len(set(gameboard)) == 2: print('Draw') flag = 1 if flag != 1: for row in range(0,9,3): list = [] for y in range(3): list.append(gameboard[row+y]) if len(list) == 3: set_list = set(list) if len(set_list) == 1: list_sign = set_list.pop() if list_sign == sign: flag = 1 print('Player with sign %s won' % sign) break for columns in range(0,3): list = [] for field in range(0,7,3): list.append(gameboard[columns+field]) if len(list) == 3: set_list = set(list) if len(set_list) == 1: list_sign = set_list.pop() if list_sign == sign: flag = 1 print('Player with sign %s won' % sign) break for diagonal in range(0,2): first_diagonal = [] first_diagonal.append(gameboard[0]) first_diagonal.append(gameboard[4]) first_diagonal.append(gameboard[8]) set_list = set(first_diagonal) if len(set_list) == 1: list_sign = set_list.pop() if list_sign == sign: flag = 1 print('Player with sign %s won' % sign) break second_diagonal = [] second_diagonal.append(gameboard[2]) second_diagonal.append(gameboard[4]) second_diagonal.append(gameboard[6]) set_list = set(second_diagonal) if len(set_list) == 1: list_sign = set_list.pop() if list_sign == sign: flag = 1 print('Player with sign %s won' % sign) break if flag == 1: decision = '' while decision != 'Y' or decision != 'N': decision = input('One more time Y/N?') if decision == 'Y': x = 0 gameboard = [1, 2, 3, 4, 5, 6, 7, 8, 9] display_board(gameboard) player_input() elif decision == 'N': print('---EXIT---') exit(0) else: print('Wrong decision') else: player_input() display_board(gameboard) player_input()