@@ -0,0 +1,842 @@
+package com.byronlai.nickel.logic.strategies;%0A%0Aimport com.byronlai.nickel.logic.Shape;%0Aimport java.util.Random;%0A%0A/*%0A * This strategy predicts the opponent's next move by randomly choosing a shape.%0A * When combining with SwapStrategy, this strategy can prevent us from having a%0A * devastating loss because there is no way to guess our next move if we choose%0A * at random.%0A */%0Apublic class RandomStrategy extends Strategy %7B%0A    private Shape%5B%5D shapes;%0A    private Random random;%0A%0A    public RandomStrategy() %7B%0A        shapes = Shape.values();%0A        random = new Random();%0A    %7D%0A%0A    /* This strategy does not use the history. */%0A    @Override%0A    public void addHistory(Shape me, Shape opponent) %7B%7D%0A%0A    /* Return a move randomly. */%0A    @Override%0A    protected Shape predict() %7B%0A        return shapes%5Brandom.nextInt(shapes.length)%5D;%0A    %7D%0A%7D%0A

Implement the random strategy