Member 13560090 Ответов: 1

Случайным образом поместите несколько препятствий внутри одного 2d массива


моя программа запрашивает у пользователя уровень сложности и на основе его выбора случайным образом создает "перегородки" для размещения внутри массива. Моя программа создает правильное количество перегородок в зависимости от того, что выбирает пользователь. Однако он помещает их в разные лотки, и мне нужно, чтобы они все были в одном массиве.


вот мой вывод:


Please choose a level of difficulty
1. Beginner: four baffles
2. Intermediate: seven baffles
3. Advanced: ten baffles 
1
BAFFLE1:
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][R]
BAFFLE2:
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][R][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
BAFFLE3:
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][R][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
BAFFLE4:
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][L][ ][ ][ ][ ]


Что я уже пробовал:

public class PlayBaffleGame {
	public static void main (String [] args) {
		/*ask the user which level of difficulty they would like 
		to play and then display the game chosen board*/
	
		initializeBoard(null);

		int difficulty;
		Scanner input= new Scanner(System.in);
		 
		 System.out.println("Please choose a level of difficulty");
		 System.out.println("1. Beginner: four baffles");
		 System.out.println("2. Intermediate: seven baffles");
		 System.out.println("3. Advanced: ten baffles ");
		 
		 difficulty= input.nextInt();
		 int BaffleCount=0;
		 
		 
		 switch(difficulty) {
		 case 1:
			 //while loop to crate four baffles
				while(BaffleCount<4) {
					System.out.println("BAFFLE"+ (BaffleCount+1)+":");


					getBaffles();
					BaffleCount++;
				}
			 break;
		 case 2:
			 //while loop to create seven baffles
				while(BaffleCount<7) {
					System.out.println("BAFFLE"+ (BaffleCount+1)+":");

					getBaffles();
					BaffleCount++;
				}
			
			 break;
		 case 3:
			 //while loop to create ten baffles
				while(BaffleCount<10) {
					System.out.println("BAFFLE"+ (BaffleCount+1)+":");

					getBaffles();
					BaffleCount++;
				}
			 break;
		 } //end switch for difficulty 
		 
		 
	
		 
		
			
			
		
	}//end main method 

	
	
	
	//create method that uses random generated numbers to assign baffles a space
	public static void getBaffles() {
		
	 		int row= (int) (Math.random()*9+1);
			int col=(int) (Math.random()*9+1);
			int direction=(int)(Math.random()*2+1);
	 	
		for (int i = 0; i < 10; i++){
		 	
					    for (int j = 0; j < 	10; j++){
					     	
					    	  if(i==row&&j==col) {
						        	if(direction==1)
						        		System.out.print("[R]");
						        	else if(direction==2)
						        			System.out.print("[L]");
					      
					    }
					        else
					             System.out.print("[ ]");
					    } 
					    System.out.println();
					 
		}
		}//end getBaffles

1 Ответов

Рейтинг:
1

Peter Leow

Не говоря уже о других вещах, просто посмотрите на свой метод getBaffles (): у вас есть цикл for для 10 итераций, на каждой итерации значения row, col и direction остаются такими же, как они инициализируются перед циклом, что означает, что 10 перегородок рисуются на одном и том же месте, понятно? Вы можете двигаться дальше...