コンピュータからどのプレーヤーが先に進むかを決定し、乱数を選択して配列から削除するJavaプログラムがあります。プレイヤーが数字を削除すると、配列が減少します。これらのすべてはランダムを使用して行われます。しかし、自分のコードを実行すると、それは私が期待しているものではありません。どこが間違っていたのか分かりますか?乱数を使用したJavaゲーム
これは私のコードです:
[クラス]
public class StickBag {
private int numOfSticks;
public StickBag(int numOfSticks)
{
this.numOfSticks = numOfSticks;
}
public int getNumOfSticks() {
return numOfSticks;
}
public void setNumOfSticks(int numOfSticks) {
this.numOfSticks = numOfSticks;
}
public int remove(int n)
{
numOfSticks = numOfSticks - n;
return numOfSticks;
}
}
[メイン]
public class StickGameApp {
public static void main(String[] args) {
StickBag s1 = new StickBag(25);
System.out.println("Welcome to the game of sticks!");
System.out.println("There are initially " + s1.getNumOfSticks() + " sticks on the board.");
int minP = 1;
int maxP = 2;
int randP;
int minN = 1;
int maxN = 10;
int randNum;
randP = minP + (int)(Math.random()*(maxP));
randNum = minN + (int)(Math.random()*(maxN));
for (int i=0; i<10; i++)
{
if(s1.getNumOfSticks() > randNum)
{
System.out.println("Computer player " + randP + " choose " + randNum + " sticks ");
s1.remove(randNum);
}
else
{
System.out.println("Computer player " + randP + " wants to choose " + randNum + " sticks but is unable to.");
System.out.println("Computer player " + randP + " loses ");
}
}
}
}
私は、コードを実行すると、以下のように、それが表示されます
を
stのゲームへようこそick!
最初にボードに25個のスティックがあります。
コンピュータプレイヤー2は6スティック
コンピュータプレイヤー2を選択した6スティック
コンピュータプレイヤー2を選択した6スティック
コンピュータプレイヤー2を選択し
コンピュータプレイヤー2は、選択したい6本のスティックを選びます6スティックはできません。 コンピュータプレーヤー2が敗北
コンピュータプレーヤー2は6つのスティックを選択したいができません。 コンピュータプレーヤー2が敗北
コンピュータプレーヤー2は6つのスティックを選択したいができません。 コンピュータプレーヤー2が敗北
コンピュータプレーヤー2は6つのスティックを選択したいができません。 コンピュータプレーヤー2が敗北
コンピュータプレーヤー2は6つのスティックを選択したいができません。 コンピュータプレーヤー2が敗北
コンピュータプレーヤー2は6つのスティックを選択したいができません。 コンピュータプレイヤー2は
を失うしかし、私はそれがこのように表示したい:
は、スティックのゲームへようこそ!
最初にボードに25個のスティックがあります。
コンピュータプレーヤー1は5つのスティックを選択します。
コンピュータプレーヤー2は7つのスティックを選択します。
コンピュータプレーヤー1は7個のスティックを選択します。
コンピュータプレーヤー2は7つのスティックを選択したいができません。
コンピュータプレーヤー2、あなたは負けます。
どこが間違っていたのですか?一つには
1.プレイヤーがforループの外側で選択されています。したがって、一度選択されたプレイヤーは決して変更されません。 2.ゲームが終わったかどうかに関係なく、10の反復を定義します。ループの終わりは、私が推測するスティックの数で判断する必要があります。 3.あなたがランダムを使用する場合、結果(あなたが表示したいもの)を決定することはできません。 – kism3t
私の間違いを指摘していただきありがとうございます。私はかなりJavaに新しいですが、今私は理由を理解しています。それを感謝します –