1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
serg [7]
3 years ago
9

In this lab, you will develop a game, "Tic Tac Toe". Assume there are two players; the computer and theuser.Initially you will

create the board, a 3x3 matrix, and fill it out with zeros.Ask user to start first, and record the user’s input as 1You can ask the user to enter the row first than the column (for ex; the user can enter 2 and 1,then the code shouldupdate the value of second row first column)The computer should make random moves, and the computer input should be recorded as 2After each move, check if someone wins, and display the boardDisplay the result (who wins and the board)Create as much helper functions as needed.Divide and ConquerSampleRun:board = [[0,0, 0],[0,0, 0],[0,0,0]]enter the row;2enter the column;1board = [[0,0, 0],[1,0, 0],[0,0,0]]the computer playsboard = [[0,2, 0],[1,0,0],[0,0,0]]CS103-Lab9Page4of6enter the row;2enter the column;2board = [[0,2, 0],[1,1, 0],[0,0,0]]the computer playsboard = [[0,2, 0],[1,1, 0],[0,0,2]]enter the row;2enter the column;3board = [[0,2, 0],[1,1,1],[0,0,2]]Game Over !!!!Winner: The User

Computers and Technology
1 answer:
Aleonysh [2.5K]3 years ago
4 0

Answer:

Code:

# importing all necessary libraries

import numpy as np

import random

# Select a random place for the player

def play(board, player):

selection = availableSpots(board)

if player==1:

row=(int)(input("Enter the row :"))

column=(int)(input("Enter the column :"))

current_loc=(row-1,column-1)

while current_loc not in selection:

print("Invalid Input. Please give again")

row=(int)(input("Enter the row :"))

column=(int)(input("Enter the column :"))

current_loc=(row-1,column-1)

else:

current_loc = random.choice(selection)

board[current_loc] = player

return board

# Check for empty places on board

def availableSpots(board):

  l = []

  for i in range(len(board)):

      for j in range(len(board)):

          if board[i][j] == 0:

              l.append((i, j))

  return(l)

# Creates an empty board

def create_board():

  return(np.array([[0, 0, 0],

                  [0, 0, 0],

                  [0, 0, 0]]))

# Checks whether the player has three

# of their marks in a horizontal row

def row_win(board, player):

  for x in range(len(board)):

      win = True

      for y in range(len(board)):

          if board[x, y] != player:

              win = False

              continue

      if win == True:

          return(win)

  return(win)

# Checks whether the player has three

# of their marks in a vertical row

def col_win(board, player):

  for x in range(len(board)):

      win = True

      for y in range(len(board)):

          if board[y][x] != player:

              win = False

              continue

      if win == True:

          return(win)

  return(win)

# Checks whether the player has three

# of their marks in a diagonal row

def diag_win(board, player):

  win = True

  for x in range(len(board)):

      if board[x, x] != player:

          win = False

  return(win)

# Evaluates whether there is

# a winner or a tie

def evaluate(board):

  winner = 0

  for player in [1, 2]:

      if (row_win(board, player) or

          col_win(board,player) or

          diag_win(board,player)):

          winner = player

  if np.all(board != 0) and winner == 0:

      winner = -1

  return winner

def printWinner(winner):

print("Game Over !!!")

if winner==1:

print("Player Wins")

elif winner==2:

print("Computer Wins")

else:

print("Nobody Wins")

# Main function to start the game

def play_game():

board, winner = create_board(), 0

print(board)

while winner == 0:

for player in [1, 2]:

board = play(board, player)

print("Board")

print(board)

winner = evaluate(board)

if winner != 0:

break

printWinner(winner)

play_game()

Explanation:

See screen shot of code and see final output

You might be interested in
When an online company runs a special promotion on swimsuits during the summer, they are taking advantage of the concept of
LenaWriter [7]
<span>When an online company runs a special promotion on swimsuits during the summer, they are taking advantage of the concept of p</span>eople’s urge to go for swimming to beat the summer heat and keep themselves cool. As a result, they are very likely to buy more swimsuits to go swimming. 
With a special promotion on swimsuits, people are likely to buy the company’s merchandise. This is because they can get what they want by paying a lesser amount than usual. In turn, the company is able to benefit by making more sales than its online and retail competitors.

6 0
3 years ago
Read 2 more answers
How many performance steps are involved in the process of completing a detainee?
Reika [66]
It looks like you've posted your question in wrong topic. Anyway I can help you. Performance steps for Guard Detainees and Completing a detainee are almost the same. If my memory serves me well, there are 6 performance steps. But the main rule is to be patient and ready for action. Always prepare your weapons to use, check if they are functional.
6 0
3 years ago
What is the best way to move up and down on a computer screen
Misha Larkins [42]

Answer: 1. Using your mouse or laptop trackpad, move your cursor to the scroll bar.

2. Then click and hold your mouse; you can now move the scroll bar up and down.

3. Release the mouse button once you reach the place on your screen you would like to go.

4 0
3 years ago
A doorknob is an example of which simple machine?
Zarrin [17]
A doorknob is an example of a:
D. Wheel and Axle. 
I hope this helped ^_^
3 0
3 years ago
Read 2 more answers
I need this answer right away!
Degger [83]

Answer:

Foundation.

Bootstrap. 2.1 Resources.

Metro UI.

jQuery Mobile.

Sencha Touch.

Ionic.

HTML KickStart.

Semantic UI

Explanation:

5 0
3 years ago
Other questions:
  • A user has a PC with RAID configuration and reports slow computer performance. A technician uses the manufacture’s diagnostic so
    12·1 answer
  • By apply styles, _____________ formats are being applied each time.
    6·1 answer
  • Define a function PrintFeetInchShort, with int parameters numFeet and numInches, that prints using ' and " shorthand. Ex: PrintF
    7·1 answer
  • Why are rules required for a number system to be useful?
    10·2 answers
  • Nina wants to create a digital backup of her holiday videos to view later. What two of these devices could she use?
    11·2 answers
  • If the mine winch drum diameter is 6M, how far will the counterweight lift for each single rotation of the drum
    11·1 answer
  • Circular errors are caused by adding the cell name of a/an _______ cell to a formula.
    11·2 answers
  • A group of cells is called a<br><br> Excel
    5·1 answer
  • The _____ Tag surrounds all content that will be visible on your web page for all to users to see on that website.
    13·1 answer
  • Pls help me pls I’m struggling
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!