Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package encapsulation;
- import java.util.ArrayList;
- import java.util.List;
- public class Nim {
- private List<Integer> size = new ArrayList<Integer>();
- Nim(int pileSize) {
- size.add(pileSize);
- size.add(pileSize);
- size.add(pileSize);
- }
- Nim() {
- size.add(10);
- size.add(10);
- size.add(10);
- }
- void removePieces(int number, int targetPile) {
- //check that we use a valid target pile 0, 1, 2.
- if (targetPile >= 0 && targetPile < 3) {
- }
- else {
- throw new IllegalArgumentException("targetpile isnt between 0 and 2");
- }
- //cant remover less than 1 piece
- if (number < 1) {
- throw new IllegalArgumentException("number cant be less than 1");
- }
- //check if game is over
- if (isGameOver() == true) {
- throw new IllegalStateException("game is over");
- }
- //remove pieces if valid move
- if (isValidMove(number, targetPile) == true) {
- System.out.println("REMOVE BEFORE: number: " + number + " targetpile: " + targetPile + " pilesize: " + size.get(targetPile) + " " + ((size.get(targetPile) - number) >= 0));
- size.set(targetPile, size.get(targetPile) - number);
- System.out.println("REMOVE AFTER: number: " + number + " targetpile: " + targetPile + " pilesize: " + size.get(targetPile) + " " + ((size.get(targetPile) - number) == 0));
- }
- else {
- throw new IllegalArgumentException("cant remove more pieces than the object has");
- }
- }
- boolean isValidMove(int number, int targetPile) {
- System.out.println("number: " + number + " targetpile: " + targetPile + " pilesize: " + size.get(targetPile) + " " + ((size.get(targetPile) - number) >= 0));
- //test if valid move.
- if (number < 1) {
- return false;
- }
- if ((size.get(targetPile) - number) >= 0) {
- return true;
- }
- else {
- return false;
- }
- }
- boolean isGameOver() {
- if (size.get(0) == 0 || size.get(1) == 0 || size.get(2) == 0) {
- return true;
- }
- else {
- return false;
- }
- }
- int getPile(int targetPile) {
- return size.get(targetPile);
- }
- public String toString() {
- return "";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement