Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a function named tttDrawGrid() using turtle graphics that draws the grid f

ID: 3637548 • Letter: W

Question

Write a function named tttDrawGrid() using turtle graphics that draws the grid for a TicTacToe game. A TicTacToe grid consists of two sets of two
parallel lines, creating nine cells in which the players can move.
Upon exiting, tttDrawGrid should leave the turtle in the
original position and orientation.
tttDrawGrid() should take two parameters:
i. a turtle that is used for drawing and
ii. the size of TicTacToe square
You may optionally change the width of the grid lines
from the default value to improve the appearance of the
game.
Hint: the documentation for turtle graphics can be found

Explanation / Answer

import random
board_list = [" ", " ", " ", " ", " ", " ", " ", " ", " "]
def update_board(l):
    board_list = l
    board = """
   %s   |   %s   |   %s
-----------------------
   %s   |   %s   |   %s
-----------------------
   %s   |   %s   |   %s""" % (board_list[0], board_list[1], board_list[2], board_list[3], board_list[4], board_list[5], board_list[6], board_list[7], board_list[8])
    return board
board = update_board(board_list)

def player_turn(marker):
    temp_list = []
    num = 1
    for item in board_list:
        if item == " ":
            temp_list.append(num)
        else:
            temp_list.append(item)
        num = num + 1
    temp_board = update_board(temp_list)
    print temp_board
    while 1:
        try:
            spot = raw_input("Where would you like to place your marker? ")
            while temp_list[int(spot)-1] in ["X","O"] or spot not in ["1","2","3","4","5","6","7","8","9"]:
                spot = raw_input("Where would you like to place your marker? ")
        except IndexError:
            continue
        break
    spot = int(spot) - 1
    board_list[spot] = marker
    return update_board(board_list)

def comp_turn():
    possible_comp_moves = []
    blah = see_if_win("computer_turn")
    if blah == None: # No way for the computer to win
        for index in range(len(board_list)):
            if board_list[index] == " ":
                possible_comp_moves.append(index) # adds the index for each possible move
        move_index = random.choice(possible_comp_moves) # randomly chooses a possible move
        board_list[move_index] = comp_marker
        return update_board(board_list)
    else:
        return update_board(blah)
        
   


def see_if_win(mode="normal"):
    a = 0
    b = 1
    c = 2
    d = 3
    e = 4
    f = 5
    g = 6
    h = 7
    i = 8
    winlist = [(a,b,c), (d,e,f), (g,h,i), (a,d,g,), (b,e,h), (c,f,i), (a,e,i), (g,e,c)]
    if mode == "normal":
        for win_type in winlist:
            if board_list[win_type[0]] == board_list[win_type[1]] == board_list[win_type[2]]:
                if board_list[win_type[0]] in ["X","O"]:
                    return board_list[win_type[0]]
    elif mode == "computer_turn":
        for win_type in winlist:
            if (board_list[win_type[0]] == board_list[win_type[1]]) and board_list[win_type[2]] == " " and board_list[win_type[0]] == comp_marker:
                board_list[win_type[2]] = comp_marker
                return board_list
            elif (board_list[win_type[0]] == board_list[win_type[2]]) and board_list[win_type[1]] == " " and board_list[win_type[0]] == comp_marker:
                board_list[win_type[1]] = comp_marker
                return board_list
            elif (board_list[win_type[1]] == board_list[win_type[2]]) and board_list[win_type[0]] == " " and board_list[win_type[1]] == comp_marker:
                board_list[win_type[0]] = comp_marker
                return board_list
        for win_type in winlist:
            if (board_list[win_type[0]] == board_list[win_type[1]]) and board_list[win_type[2]] == " " and board_list[win_type[0]] == marker:
                board_list[win_type[2]] = comp_marker
                return board_list
            elif (board_list[win_type[0]] == board_list[win_type[2]]) and board_list[win_type[1]] == " " and board_list[win_type[0]] == marker:
                board_list[win_type[1]] = comp_marker
                return board_list
            elif (board_list[win_type[1]] == board_list[win_type[2]]) and board_list[win_type[0]] == " " and board_list[win_type[1]] == marker:
                board_list[win_type[0]] = comp_marker
                return board_list

        return None

# PLAYER TURN
#board = player_turn("X")

def get_marker():
    marker=raw_input("Would you like to be X's or O's?: ")
    while marker not in ["X","O","x","o"]:
       marker=raw_input("Would you like to be X's or O's?: ")
    print "You are", marker.upper()
    if marker == "O":
        comp_marker = "X"
    else:
        comp_marker = "O"
    return marker,comp_marker

# Create an empty board
board = update_board(board_list)
# Menu to choose game type:
# PVP = player vs player
# PVC = player vs computer
menu =
'''Game modes
(1) - Player vs. Player
(2) - Player vs. Computer'''
print menu
game = raw_input("Choose a menu item number: ")
if game == "1":
    game = "PVP"
elif game == "2":
    game = "PVC"
# Part of the loops; keep playing while no one has won
win = None
if game == "PVP":
    again = 1
    while again == 1:
        marker,comp_marker = get_marker()
        turn = "player"
        while win == None:
            if " " not in board_list:
                break
            if turn == "player":
                board = player_turn(marker)
                turn = "computer"
            elif turn == "computer":
                board = player_turn(comp_marker)
                turn = "player"
            win = see_if_win()
        print board
        if win != None:
            print "%s won!" % (win)
        else:
            print "There are no more moves. DRAW!"
        while again not in ["y","n"]:
            again = raw_input("Would you like to play again? (y/n) ").lower()
        if again == "y":
            again = 1
            board_list = [" ", " ", " ", " ", " ", " ", " ", " ", " "]
            board = update_board(board_list)

elif game == "PVC":
    again = 1
    while again == 1:
        marker,comp_marker = get_marker()
        turn = "player"
        while win == None:
            if " " not in board_list:
                break
            if turn == "player":
                board = player_turn(marker)
                turn = "computer"
            elif turn == "computer":
                board = comp_turn()
                turn = "player"
            win = see_if_win()
        print board
        if win != None:
            print "%s won!" % (win)
        else:
            print "There are no more moves. DRAW!"
        while again not in ["y","n"]:
            again = raw_input("Would you like to play again? (y/n) ").lower()
        if again == "y":
            again = 1
            board_list = [" ", " ", " ", " ", " ", " ", " ", " ", " "]
            board = update_board(board_list)

print "I hope you enjoyed playing Tic-Tac-Toe."

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote