|Android Project: making a fully working Go application|
|description:||The Go game must implement|
most of the rules of go but not all of them. I will also ask you to implement a couple of extra
features or sets of features to your game.
The game of Go is a centuries old game that is still popular today. It requires much
strategy and thinking ahead in order to win. The objective of the game is to surround more
territory than your opponent.
The game is traditionally played on a 19x19 board however, for our purposes we will
restrict this to 9x9 the recommended size of beginners. There are two players black and
white. The game proceeds until both players are not capable of making another move or
unless both players agree to make no further moves. Each players score is calculated by
totalling up the amount of territory the player has captured added to the number of pieces
that player has captured. You will not be required to implement the komi rule.
The general placement of pieces should not pose an issue. Where things will get
interesting is the capture of pieces or groups of pieces. A piece or group is considered to
be captured when there are no liberties left. In the case of a single piece this is a capture
on all 4 sides. In the case of a group this is where the perimiter of the group has no
liberties remaining. In the case of groups however, it is possible for a group to have eyes
(an empty space surrounded on all four sides by opposion pieces. Any group of stones
that has two or more of these eyes cannot be captured and removed. Player’s are
permitted to place there pieces anywhere.
You will also be required to implement the “ko” rule which states that “the stones on
the board must never repeat a previous position of stones” This is to prevent cyclical
neverending play and ensures the game will reach a conclusion. You will be required to submit an
archive file to the moodle (in one of these formats zip/rar/7z/tar.gz/tar.bz2/tar.xz).You are using android studio.
01) generate a custom view that is forced to be square in size. It should display a full 9x9
go board with the initial state of the game. It should accept user input for making moves
02) implement capturing rules for single pieces.
03) implement capturing rules for multiple pieces
04) alter your capture rules to prevent capture of multiple pieces where there are two or
05) implement the ko rule
06) build a UI around your custom view that shows the current state of the game and
provides options for resetting the game and finishing the game. It should indicate who's
turn it is and how many pieces and territory each player has.
07) add in timers and clocks for both players to implement speed go. Both players should
have 15 minutes to make moves the clock will start counting down when it is a players
move and will stop when the player finishes their move. If a player runs out of time then
the game finishes and scoring is made on the current state of the board
01) Document why you designed the project the way you did. This must include details on
the design decisions made and also the datastructures used to implement the game
02) Document all methods in your java code, what algorithms you used and why.
|budget:||$75 - $125|