2012-02-09 4 views
0

私のプログラムは、入力したすべてのコマンドの後に新しいゲームボードを生成します。私は、ボードと障害物がゲームが終了するまで同じままになっている間だけ、 "P"が動きを更新したい。各コマンド入力後にストップボードのランダム化

import java.util.Scanner; 
import java.util.Random; 

public class Adventure { 

public static void main(String[] args) { 
    // Create 2D array for game board. 
    char grid[][]= new char[10][10]; 
    Scanner move = new Scanner(System.in); 
    System.out.println("Here is the current game board:"); 
    System.out.println("-------------------------------"); 

    do{ 
     for(int i=0; i<grid.length; i++) {   
      for(int j=0; j<grid.length; j++) { 
       double Random = Math.random(); 
       if(Random <=.05) { 
        grid[i][j]='*'; 
       } 
       else if(Random > .06 && Random <= .15) { 
        grid[i][j]='X'; 
       }   
       else { 
        grid[i][j]='.'; 
       }    
       grid[0][0]='P'; 
       grid[9][9]='T'; 
       System.out.print(grid[i][j]); 
      } 
      System.out.println(""); 
     }    
     System.out.print("Enter your move (U/D/L/R)>");  
     String movePlayer = move.next(); 

     int x=0, y=0; 

     if(movePlayer.equals("R")) { 
      grid[y][x]='.'; 
      x++; 
     } 
     else if(movePlayer.equals("L")) { 
      grid[y][x]='.'; 
      x--; 
     } 
     else if(movePlayer.equals("U")) { 
      grid[y][x]='.'; 
      y++; 
     } 
     else if(movePlayer.equals("D")) { 
      grid[y][x]='.'; 
      y--; 
     } 
     else if(grid[y][x]=='*') { 
      System.out.println("You fell in a pit. Game Over."); 
     } 
     else if(grid[y][x]=='X') { 
      System.out.println("That spot is blocked. Please enter another move."); 
     } 
     else if(grid[y][x]=='T') 
      System.out.println("Congratulations! You've found the treasure!"); 
     else { 

      System.out.print(grid[y][x]); 
     } 
    }while('P' != 'T'); 
} 

}

+0

してください、すべての愛のためのものクールで、小さな機能に分解してください。あなたはコードを読んでバグを見つけ出すのにもっと簡単な時間を取るでしょう。 –

+0

また、 '' P '!=' T''は常に真です。 –

+0

あなたのループ状態を見たいかもしれません。私は 'P'は決して 'T'になることはないと思います。私はアルファベットを書いていない、私はそれを強制するだけです。 – Shaded

答えて

0

移動do ... while()ループの外板を生成するコード:事前に助けをありがとうは、ここに私のコードです

// generate the board once at the beginning of the program. 
do 
{ 
    // update moves repeatedly until game is over 
} while (<game over perdicate>) 
+0

do whileループの外側にボードを生成するコードを入れてコマンドを入力すると、ボードは印刷されません。 –

+0

ループ内にボードを印刷するコードを置く... – yurib

関連する問題