Answered step by step
Verified Expert Solution
Question
1 Approved Answer
In python 3 Problem: The Reversi Game Reversi is a 2-player game, played on an 8 x 8 board. Players take turns placing their disks
In python 3
Problem: The Reversi Game Reversi is a 2-player game, played on an 8 x 8 board. Players take turns placing their disks on the board with their assigned colour (Black and White). Black is the first player to move. A player may place their disk anywhere on the board, as long as it surrounds a group of the opponents disks (vertically, horizontally, or diagonally) on opposite sides. Any disks that you surround will become yours and will flip over to your coloun The game is over when the player to move has no possible legal move. Example: The board must always start off as such Example: The board must always start off as such 0 1 2 3 4 56 7 3..Wb.. BLACK is the first to move. BLACK must place a piece such that at least one straight (vertical, horizontal, or diagonal) line is made with another BLACK piece, with at least one White piece between and no empty spaces allowed. The available moves BLACK can make are denoted with " 3.wb.. 4..bW.. Suppose BLACK makes the move (2,3). Then the board is updated with BLACK capturing the white pieces between the line made 0 1 2 3 4 5 6 7 Now it is WHITE turn, and they are allowed to make the following moves 0 1 2 3 4 5 6 7 4bW.. If WHITE makes the move (4,2), then the board will look like 0 1 2 34 5 6 7 Your task will be to design a Reversi class, and use the class to play games. The class will store the state of the game, and have methods to allow the players to interact with the game. We require the following methods to be implemented: -newGame (): Create the game state so players can play again getScore (colour): return the current score for the player with colour colour - setPlayerColour (colour): set the colour for the human player to the designated colour 'colour', as well as the computer will have the other colour - displayBoard: print a visual representation of the board at the current state. The row and column index should be printed on the left and top side to make it easier to check moves. See the above output as an example. isPositionValid (position, colour): Check if the input position position' is valid for the given player colour to make. A position is defined as valid using the rules above. isGameover( return true if the game is over, false otherwise. The game is over when the current player cannot make any more legal moves. -makeMovePlayer (position) Make the move given by 'position' for the human player. This function should also handle the capturing of pieces makeMoveNaive ): This function should make a naive (no strategy involved) move for the computer. This can be the first valid move when scanning the board left to right, starting at the top makeMovesmart ): This function should make a smart (strategy involved) move for the computer. This is where you can try and make your game computer as smart as possiblel A good starting place can be to make the move which maximizes the computer's score
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started