mikhail_dvorkin icon

NimModel

mikhail_dvorkin | PRO | 02/27/17 05:46:54 AM UTC | 0 ⭐ | 915 👁️ | Never ⏰ | []
Java |

840 B

|

None

|

0 👍

/

0 👎

package me.dvorkin;
 
import java.util.Random;
 
public class NimModel {
    private int[] piles;
    private boolean move;
    
    public NimModel() {
        move = true;
        Random random = new Random();
        piles = new int[5];
        for (int i = 0; i < piles.length; i++) {
            piles[i] = random.nextInt(10) + 1;
        }
    }
    
    public int[] getField() {
        return piles.clone();
    }
    
    /**
     * @return true if first player is to move
     */
    public boolean whoMoves() {
        return move;
    }
    
    public boolean isOver() {
        for (int i : piles) {
            if (i != 0) {
                return false;
            }
        }
        return true;
    }
    
    public boolean update(int index, int amount) {
        if (index < 0 || index >= piles.length) {
            return false;
        }
        if (amount <= 0 || amount > piles[index]) {
            return false;
        }
        piles[index] -= amount;
        move ^= true;
        return true;
    }
}

Comments