私の課題:
Stix のゲームは、少し前に "Survivor, Thailand" でプレイされたゲームに似ていますが、単純化されたバージョンでは、どういうわけか次のようになります。
それは 2 人のプレイヤーによってプレイされます (Survivor では 2 人以上でしたが、ここでは 2 人だけを扱います)。多数のスティック (マッチなど) がテーブルの上に置かれます。最初のプレーヤーは、テーブルに多くのスティックがある場合、1、2、または 3 つのスティックを取り除きます。次に、2 番目のプレーヤーが (可能であれば) 1 つ、2 つ、または 3 つのスティックを取り去ります。最後のスティックを取った人が負けです。
これは私のクラスです:
public class StixBoard
{
public int number;
public StixBoard(int number)
{
this.number = number;
}
public int getNumStix()
{
return number;
}
public boolean takeStix(int number)
{
int take = 0;
while(take != number && number <= 3 && number > 0)
{
number = this.number - take;
take++;
}
if(this.number >= 1 && this.number <= 3)
{
number = number - this.number;
System.out.println("Number of sticks on board:" + number);
return(true);
}
else
System.out.println("Illegeal Move");
return(false);
}
public boolean isGameOver()
{
if(number >=1)
{
return(true);
}
else
return false;
}
public String toString()
{
return(getNumStix() + " Stix Remaining.");
}
}
これは私のテスターです:
public class StixGame
{
public static void main(String[] args)
{
StixBoard game1 = new StixBoard(6);
System.out.println(game1.getNumStix());
System.out.println(game1.takeStix(1));
System.out.println(game1.getNumStix());
}
}
私はこの出力から遠ざかるようには思えません:
6
Illegeal Move
false
6