Where is the 2d array or list in this python program Progr

Where is the 2d array or list in this python program??


#######################################################################
# Program Filename: assign9.py
# Author: Matthew Tong
# Date: 11/27/16
# Description: Tic Tac toe
# Input: Players choice on characters and location on the board
# Output: Characters on the board, player\'s choices, total wins
#######################################################################

import sys
#######################################################################
# Function: initialize_board
# Description: Method to initialize the baord to spaces
# Parameters: none
# Return values: This returns the board
# Pre-Conditions:
# Post-Conditions:
#######################################################################
def initialize_board():
   board = []
   for i in range(3):
       board.append([])
       for j in range(3):
           board[i].append(\' \') # adds its parameter as a single element to the list
   return board

#######################################################################
# Function: determine_player_choice
# Description: Method to pick the user choices
# Parameters: none
# Return values: The return value of from each usersw
# Pre-Conditions:
# Post-Conditions:
#######################################################################
def determine_player_choice():
   ch1 = input(\'Player 1: What character do you want? \')
   ch2 = input(\'Player 2: What character do you want? \')
   return ch1, ch2

#######################################################################
# Function: fill_board
# Description: Method to ifll the board with user choice
# Parameters: The player\'s characters
# Return values: The location: x and y on the board
# Pre-Conditions:
# Post-Conditions:
#######################################################################
def fill_board(board, ch1, ch2):
   while not is_full(board):
       print_board(board)
       while True:
           x, y = input(\'Player 1: Where would you like to put your \' + ch1 + \'? \').split(\' \')
           if board[int(x)][int(y)] == \' \':
               break
           else:
               sys.stdout.write(\'Invalid choice. Try again!!\ \') # print out whatever string you give it. What the print function really does; it adds a carraige return to the end of the string you\'re printing
       board[int(x)][int(y)] = ch1
       print_board(board)
       if check_for_winner(board, ch1) or check_for_winner(board, ch2):
           return
       while True:
           x, y = input(\'Player 2: Where would you like to put your \' + ch2 + \'? \').split(\' \')
           if board[int(x)][int(y)] == \' \':
               break
           else:
               sys.stdout.write(\'Invalid choice. Try again!!\ \')
       board[int(x)][int(y)] = ch2
       if check_for_winner(board, ch1) or check_for_winner(board, ch2):
           return

#######################################################################
# Function: print_board
# Description: Method to print the tic tac board
# Parameters: none
# Return values: Prints the board out
# Pre-Conditions:
# Post-Conditions:
#######################################################################
def print_board(board):
   for i, lst in enumerate(board): #starts counting at board but if you give it a second integer argument, itll start from that board
       for j, ch in enumerate(lst):
           sys.stdout.write(ch)
           if j != len(lst) - 1:
               sys.stdout.write(\' | \')
       if i != len(board) - 1:
           sys.stdout.write(\'\ ----------\')
           sys.stdout.write(\'\ \')
       sys.stdout.write(\'\ \')

#######################################################################
# Function: is_full
# Description: Method to check the winner of the board
# Parameters: none
# Return values: the winnder of the baord
# Pre-Conditions:
# Post-Conditions:
#######################################################################
def is_full(board):
   for lst in board:
       for ch in lst:
           if ch == \' \':
               return False
   return True

#######################################################################
# Function: check_for_winner
# Description: Method to check the winner of the board
# Parameters: player\'s input for the location: x and y
# Return values: User inputs their locations, place on the board
# Pre-Conditions:
# Post-Conditions:
#######################################################################
def check_for_winner(board, ch):
return (board[0][0] == ch and board[0][1] == ch and board[0][2] == ch) or \\
(board[1][0] == ch and board[1][1] == ch and board[1][2] == ch) or \\
(board[2][0] == ch and board[2][1] == ch and board[2][2] == ch) or \\
(board[0][0] == ch and board[1][0] == ch and board[2][0] == ch) or \\
(board[0][1] == ch and board[1][1] == ch and board[2][1] == ch) or \\
(board[0][2] == ch and board[1][2] == ch and board[2][2] == ch) or \\
(board[0][0] == ch and board[1][1] == ch and board[2][2] == ch) or \\
(board[0][2] == ch and board[1][1] == ch and board[2][0] == ch)

#######################################################################
# Function: print_winner_results
# Description: Method to print the result
# Parameters: Each matche to see who wins or ties
# Return values: Total wins for each players and ties
# Pre-Conditions:
# Post-Conditions:
#######################################################################
def print_winner_results(total, p1_wins, p2_wins):
   print(\'Total Wins:\')
   print(\'Player 1: \' + str(p1_wins))
   print(\'Player 2: \' + str(p2_wins))
   print(\'Ties: \' + str(total - p1_wins - p2_wins))

#######################################################################
# Function: main
# Description: Main method to invoke other method and play the game
# Parameters: After the users input their characters and see who wins the match.
# Return values: The winner.
# Pre-Conditions:
# Post-Conditions:
#######################################################################

def main():
   total = 0
   p1_wins = 0
   p2_wins = 0
   while True:
       board = initialize_board()
       ch1, ch2 = determine_player_choice()
       fill_board(board, ch1, ch2)
       total += 1
       if check_for_winner(board, ch1):
           p1_wins += 1
           print(\'Congratulations Player 1, you are a winner!!!\')
       elif check_for_winner(board, ch2):
           p2_wins += 1
           print(\'Congratulations Player 2, you are a winner!!!\')
       ch = input(\'Do you want to play again (y-yes, n-no): \')
       if ch == \'n\' or ch == \'N\':
           break
   print_winner_results(total, p1_wins, p2_wins)
main()

Solution

def initialize_board():
   board = []
   for i in range(3):
       board.append([])
       for j in range(3):
           board[i].append(\' \')
   return board

Here board is list

===============================================

def fill_board(board, ch1, ch2):
   while not is_full(board):
       print_board(board)
       while True:
           x, y = input(\'Player 1: Where would you like to put your \' + ch1 + \'? \').split(\' \')
           if board[int(x)][int(y)] == \' \':
               break
           else:
               sys.stdout.write(\'Invalid choice. Try again!!\ \') # print out whatever string you give it. What the print function really does; it adds a carraige return to the end of the string you\'re printing
       board[int(x)][int(y)] = ch1
       print_board(board)
       if check_for_winner(board, ch1) or check_for_winner(board, ch2):
           return
       while True:
           x, y = input(\'Player 2: Where would you like to put your \' + ch2 + \'? \').split(\' \')
           if board[int(x)][int(y)] == \' \':
               break
           else:
               sys.stdout.write(\'Invalid choice. Try again!!\ \')
       board[int(x)][int(y)] = ch2
       if check_for_winner(board, ch1) or check_for_winner(board, ch2):
           return

===========================================================

In above function board is 2D array

==========================================================

def is_full(board):
   for lst in board:
       for ch in lst:
           if ch == \' \':
               return False
   return True

In above function board is matrix

===================================================================

def check_for_winner(board, ch):
return (board[0][0] == ch and board[0][1] == ch and board[0][2] == ch) or \\
(board[1][0] == ch and board[1][1] == ch and board[1][2] == ch) or \\
(board[2][0] == ch and board[2][1] == ch and board[2][2] == ch) or \\
(board[0][0] == ch and board[1][0] == ch and board[2][0] == ch) or \\
(board[0][1] == ch and board[1][1] == ch and board[2][1] == ch) or \\
(board[0][2] == ch and board[1][2] == ch and board[2][2] == ch) or \\
(board[0][0] == ch and board[1][1] == ch and board[2][2] == ch) or \\
(board[0][2] == ch and board[1][1] == ch and board[2][0] == ch)

In above function board is 2D Array.As itt has 2 dimensions

===================================================================

Where is the 2d array or list in this python program?? ####################################################################### # Program Filename: assign9.py #
Where is the 2d array or list in this python program?? ####################################################################### # Program Filename: assign9.py #
Where is the 2d array or list in this python program?? ####################################################################### # Program Filename: assign9.py #
Where is the 2d array or list in this python program?? ####################################################################### # Program Filename: assign9.py #

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site