. widthSet = False heightSet = False while not widthSet: try: 1 width = int(input("Enter the width of your game boar if width >= 4 and width <= 10: widthSet = True else: print("The width must be an integer from 4-10. P

EBK JAVA PROGRAMMING
8th Edition
ISBN:9781305480537
Author:FARRELL
Publisher:FARRELL
Chapter2: Using Data
Section: Chapter Questions
Problem 12PE
icon
Related questions
Question

Can you please complete the code I've been trying for hours but no luck

def main ():
widthSet = False
heightSet = False
while not widthSet:
try:
again.")
again.")
again.")
width = int(input("Enter the width of your game board (4-10):" ) )
if width >= 4 and width <= 10:
widthSet = True
else:
except:
while not heightSet:
try:
print("The width must be an integer from 4-10. Please try
print("The width must be an integer from 4-10. Please try again.")
height = int(input("Enter the height of your game board (4-10): "))
if height >= 4 and height <= 10:
heightSet = True
print("The height must be an integer from 4-10. Please try
except:
else:
print("The height must be an integer from 4-10. Please try
board Board (width, height)
allPlayersAdded = False
players = []
while not allPlayersAdded:
validName = False
while not validName:
name = input("Enter this player's name:")
validName = True
for player in players:
if player.getName() name:
Please try again.")
if name
main ()
validName = False
print("There is already a player called " + name +
if name == "Nobody":
validName = False
print("You cannot use the name \"Nobody\". Please try again.")
newPlayer = Player(name, len(players) + 1)
players.append(newPlayer)
print("Player " + str(newPlayer.getNumber()) + is:
if len (players) > 1 and len (players) < 4:
addMore = input("Keep adding players (y/n)")
elif len(players) == 4:
==
if addMore.lower() != "y" and addMore.lower() != "yes":
allPlayersAdded = True
allPlayersAdded = True
print ()
print("This game has " + str(len (players)) + players:")
for player in players:
print (player.getName())
game Over = False
winner = "Nobody"
while not gameOver:
for player in players:
print ()
print(player.getName() + "
board.display ( )
player.makeMove (board)
winner = player.checkWinner (board)
board.display()
input (winner + " wins the game!")
main ':
11
I it's your turn:")
if winner != "Nobody" or board.boardFull ():
game Over = True
break
+ name)
Transcribed Image Text:def main (): widthSet = False heightSet = False while not widthSet: try: again.") again.") again.") width = int(input("Enter the width of your game board (4-10):" ) ) if width >= 4 and width <= 10: widthSet = True else: except: while not heightSet: try: print("The width must be an integer from 4-10. Please try print("The width must be an integer from 4-10. Please try again.") height = int(input("Enter the height of your game board (4-10): ")) if height >= 4 and height <= 10: heightSet = True print("The height must be an integer from 4-10. Please try except: else: print("The height must be an integer from 4-10. Please try board Board (width, height) allPlayersAdded = False players = [] while not allPlayersAdded: validName = False while not validName: name = input("Enter this player's name:") validName = True for player in players: if player.getName() name: Please try again.") if name main () validName = False print("There is already a player called " + name + if name == "Nobody": validName = False print("You cannot use the name \"Nobody\". Please try again.") newPlayer = Player(name, len(players) + 1) players.append(newPlayer) print("Player " + str(newPlayer.getNumber()) + is: if len (players) > 1 and len (players) < 4: addMore = input("Keep adding players (y/n)") elif len(players) == 4: == if addMore.lower() != "y" and addMore.lower() != "yes": allPlayersAdded = True allPlayersAdded = True print () print("This game has " + str(len (players)) + players:") for player in players: print (player.getName()) game Over = False winner = "Nobody" while not gameOver: for player in players: print () print(player.getName() + " board.display ( ) player.makeMove (board) winner = player.checkWinner (board) board.display() input (winner + " wins the game!") main ': 11 I it's your turn:") if winner != "Nobody" or board.boardFull (): game Over = True break + name)
Player
Attribute/Method
playerName
player Number
Player()
getName()
getNumber()
makeMove()
checkWinner()
Board
Attribute/Method
columns
rows
board
Board()
display()
column Full()
boardFull()
getWidth()
addToken()
checkWinner()
checkVertical()
checkHorizontal()
Description
Specifies this player's name.
Specifies the number of this player's token.
Creates a new Player object.
Accessor for playerName.
Accessor for player Number.
Asks the player to pick a column to place their token in until a valid non-full column is
given, and adds their token to the given column.
Returns the player's name if they have won, or "Nobody" if they haven't.
Description
Specifies the number of columns on the game board.
Specifies the number of rows on the game board.
Keeps track of which player's token (if any) is stored at each location on the game board.
Creates a new Board object.
Displays the current state of the board.
Checks whether a given column is full.
Checks whether the entire board is full.
Accessor for columns.
Adds a given token to a given column.
Checks the board for a winner, returning the winner's playerNumber or O if there is no
winner.
Checks for vertical lines of four matching tokens, returning the player Number of the
player who made the line, or O if there are no vertical lines of four.
Checks for horizontal lines of four matching tokens, returning the player Number of the
player who made the line, or O if there are no horizontal lines of four.
Checks for left-to-right diagonal lines of four matching tokens, returning the
checkRightDiagonal() playerNumber of the player who made the line, or O if there are no high-left to low-right
diagonal lines of four.
Checks for right-to-left diagonal lines of four matching tokens, returning the
checkLeft Diagonal() player Number of the player who made the line, or O if there are no high-right to low-left
lines of four.
Transcribed Image Text:Player Attribute/Method playerName player Number Player() getName() getNumber() makeMove() checkWinner() Board Attribute/Method columns rows board Board() display() column Full() boardFull() getWidth() addToken() checkWinner() checkVertical() checkHorizontal() Description Specifies this player's name. Specifies the number of this player's token. Creates a new Player object. Accessor for playerName. Accessor for player Number. Asks the player to pick a column to place their token in until a valid non-full column is given, and adds their token to the given column. Returns the player's name if they have won, or "Nobody" if they haven't. Description Specifies the number of columns on the game board. Specifies the number of rows on the game board. Keeps track of which player's token (if any) is stored at each location on the game board. Creates a new Board object. Displays the current state of the board. Checks whether a given column is full. Checks whether the entire board is full. Accessor for columns. Adds a given token to a given column. Checks the board for a winner, returning the winner's playerNumber or O if there is no winner. Checks for vertical lines of four matching tokens, returning the player Number of the player who made the line, or O if there are no vertical lines of four. Checks for horizontal lines of four matching tokens, returning the player Number of the player who made the line, or O if there are no horizontal lines of four. Checks for left-to-right diagonal lines of four matching tokens, returning the checkRightDiagonal() playerNumber of the player who made the line, or O if there are no high-left to low-right diagonal lines of four. Checks for right-to-left diagonal lines of four matching tokens, returning the checkLeft Diagonal() player Number of the player who made the line, or O if there are no high-right to low-left lines of four.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Program on Numbers
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781305480537
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,