Giter Site home page Giter Site logo

tic-tac-toe's Introduction

Tic-Tac-Toe

Tic_tac_toe game using Python from IPython.display import clear_output

#1 def display_board(board): clear_output() # Remember, this only works in jupyter!

print('   |   |')
print(' ' + board[1] + ' | ' + board[2] + ' | ' + board[3])
print('   |   |')
print('-----------')
print('   |   |')
print(' ' + board[4] + ' | ' + board[5] + ' | ' + board[6])
print('   |   |')
print('-----------')
print('   |   |')
print(' ' + board[7] + ' | ' + board[8] + ' | ' + board[9])
print('   |   |')

#2 def player_input(): marker = ''

while not (marker == 'X' or marker == 'O'):
    marker = input('Player 1: Do you want to be X or O? ').upper()

if marker == 'X':
    return ('X', 'O')
else:
    return ('O', 'X')

#3 def place_marker(board, marker, position): board[position] = marker #4 def win_check(board,mark):

return ((board[7] == mark and board[8] == mark and board[9] == mark) or # across the top
(board[4] == mark and board[5] == mark and board[6] == mark) or # across the middle
(board[1] == mark and board[2] == mark and board[3] == mark) or # across the bottom
(board[7] == mark and board[4] == mark and board[1] == mark) or # down the middle
(board[8] == mark and board[5] == mark and board[2] == mark) or # down the middle
(board[9] == mark and board[6] == mark and board[3] == mark) or # down the right side
(board[7] == mark and board[5] == mark and board[3] == mark) or # diagonal
(board[9] == mark and board[5] == mark and board[1] == mark)) # diagonal

#5 def space_check(board, position): return board[position] == ' ' import random #6 def choose_first(): if random.randint(0, 1) == 0: return 'Player 2' else: return 'Player 1' #7 def full_board_check(board): for i in range(1,10): if space_check(board, i): return False return True #8 def player_choice(board): position = 0

while position not in [1,2,3,4,5,6,7,8,9] or not space_check(board, position):
    position = int(input('Choose your next position: (1-9) '))
    
return position

#9 def replay():

return input('Do you want to play again? Enter Yes or No: ').lower().startswith('y')

print('Welcome to Tic Tac Toe!') #START while True: # Reset the board theBoard = [' '] * 10 player1_marker, player2_marker = player_input() turn = choose_first() print(turn + ' will go first.')

play_game = input('Are you ready to play? Enter Yes or No.')

if play_game.lower()[0] == 'y':
    game_on = True
else:
    game_on = False

while game_on:
    if turn == 'Player 1':
        # Player1's turn.
        
        display_board(theBoard)
        position = player_choice(theBoard)
        place_marker(theBoard, player1_marker, position)

        if win_check(theBoard, player1_marker):
            display_board(theBoard)
            print('Congratulations! You have won the game!')
            game_on = False
        else:
            if full_board_check(theBoard):
                display_board(theBoard)
                print('The game is a draw!')
                break
            else:
                turn = 'Player 2'

    else:
        # Player2's turn.
        
        display_board(theBoard)
        position = player_choice(theBoard)
        place_marker(theBoard, player2_marker, position)

        if win_check(theBoard, player2_marker):
            display_board(theBoard)
            print('Player 2 has won!')
            game_on = False
        else:
            if full_board_check(theBoard):
                display_board(theBoard)
                print('The game is a draw!')
                break
            else:
                turn = 'Player 1'

if not replay():
    break

tic-tac-toe's People

Contributors

ayusinha avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.