私はテキストベースのJavaボードゲーム(非常に基本的)を完成しようとしています。そして、私はこの最後のことに固執しています。 -これを解決できない、Javaで配列を更新する
基本的には、ユーザーが仮想ダイスをロールするタイプの「ロール」を持っている場合です。結果に応じて、配列が更新されて 'o'の位置が変更されます(これにより、カウンタが移動されたように見えます)。私は最初のロールのためにこれを作る方法を考え出しました。
しかし、私が理解できないことは、2番目のロールと1番目のロールを追加する方法です(3番目と4番目のロールで追加するなど)。
(例 -
ロール1:プレイヤーはダイスを振り - ボード上の第三位置に移動する(解決)
ロール2から3を取得:ゲームは最後のロールが3だったことを記憶し - プレーヤーは4ロール - ボードを更新し、数7にカウンタを動かす)ここ
は、関連するコードの抜粋である:
public void play(String p1Name2, String p2Name2){
Scanner user_input = new Scanner(System.in);
Random rn = new Random();
String p1Roll = null,p2Roll;
int[] p1r = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30};
int b= 0,c= 0,d = 0,e = 0,g = 0;
while(array1[10] != 'o'){
c++;
if(b==0) {
int i =1;
System.out.println("Player 1, type roll to roll the die. ");
p1Roll = user_input.next();
if(p1Roll.equalsIgnoreCase("roll")){
p1r[c] = rn.nextInt(6);
p1r[c] += 1;
System.out.println("You rolled a: " + p1r[c]);
for(int f = 0; f< 10; f++){
if(array1[f] == 'o'){
array1[f] = 'x';
array1[p1r[c]] = 'o';
if(i ==1){
this.board();
i = 0;
}
}
}
}
if(b==1) {
}
}
}
}
と
public void board(){
System.out.println(" 1 2 3 4 (5) 6 7 8 9 10 11");
System.out.println("Player 1: " + array1[0]+ " " + array1[1] + " " + array1[2]+ " " + array1[3] + " " + array1[4]+ " " + array1[5] + " " + array1[6]+ " " + array1[7] + " " + array1[8]+ " " + array1[9] + " " + array1[10]);
System.out.println("Player 2: " + array2[0]+ " " + array2[1] + " " + array2[2]+ " " + array2[3] + " " + array2[4]+ " " + array2[5] + " " + array2[6]+ " " + array2[7] + " " + array2[8]+ " " + array2[9] + " " + array2[10]);
}
最後に、ここでコンソール出力は次のとおりです。
配列を使用する必要がありますか、オブジェクトを自由に使用できますか?オブジェクトを使用する場合は、より簡単で洗練されたものになります。 – Tschallacka
@engineer私は、1つのロールの後にカウンタが最後に終わった。 – jordan
@MichaelDibbets私はオブジェクトを使うことができました。私はJavaにはまったく新しく、オブジェクトには慣れていません - 私はそれらをどのようにすることができるか提案できますか? – jordan