Мне нужна помощь с кодом для школьного проекта. Я сделал простую игру на Java, она на доске 5х5, корабли расположены в случайном порядке.
Я застрял в чем-то, с чем я не могу справиться в одиночку, мне нужно больше мозгов, чтобы помочь я с этим. Мне нужно создать корабль, который должен располагаться в двух местах на борту, поэтому, если вы играете против ПК, вам понадобится два выстрела, чтобы потопить этот корабль.
Код приведен ниже:
public static void main(String[] args) {
int[][] board = new int[5][5];
int[][] ships = new int[3][2];
int[] shoot = new int[2];
int attempts=0,
shotHit=0;
initBoard(board);
initShips(ships);
System.out.println();
do{
showBoard(board);
shoot(shoot);
attempts++;
if(hit(shoot,ships)){
hint(shoot,ships,attempts);
shotHit++;
}
else
hint(shoot,ships,attempts);
changeboard(shoot,ships,board);
}while(shotHit!=3);
System.out.println("\n\n\nBattleship Java game finished! You hit 3 ships in "+attempts+" attempts");
showBoard(board);
}
public static void initBoard(int[][] board){
for(int row=0 ; row < 5 ; row++ )
for(int column=0 ; column < 5 ; column++ )
board[row][column]=-1;
}
public static void showBoard(int[][] board){
System.out.println("\t1 \t2 \t3 \t4 \t5");
System.out.println();
for(int row=0 ; row < 5 ; row++ ){
System.out.print((row+1)+"");
for(int column=0 ; column < 5 ; column++ ){
if(board[row][column]==-1){
System.out.print("\t"+"~");
}else if(board[row][column]==0){
System.out.print("\t"+"*");
}else if(board[row][column]==1){
System.out.print("\t"+"X");
}
}
System.out.println();
}
}
public static void initShips(int[][] ships){
Random random = new Random();
for(int ship=0 ; ship < 3 ; ship++){
ships[ship][0]=random.nextInt(5);
ships[ship][1]=random.nextInt(5);
//let's check if that shot was already tried
//if it was, just finish the do...while when a new pair was randomly selected
for(int last=0 ; last < ship ; last++){
if( (ships[ship][0] == ships[last][0])&&(ships[ship][1] == ships[last][1]) )
do{
ships[ship][0]=random.nextInt(5);
ships[ship][1]=random.nextInt(5);
}while( (ships[ship][0] == ships[last][0])&&(ships[ship][1] == ships[last][1]) );
}
}
}
public static void shoot(int[] shoot){
Scanner input = new Scanner(System.in);
System.out.print("Row: ");
shoot[0] = input.nextInt();
shoot[0]--;
System.out.print("Column: ");
shoot[1] = input.nextInt();
shoot[1]--;
}
public static boolean hit(int[] shoot, int[][] ships){
for(int ship=0 ; ship
Подробнее здесь: https://stackoverflow.com/questions/549 ... a-language
Игра «Морской бой» на языке Java ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Даты месяцев на тамильском языке и календарь на тамильском языке React Native
Anonymous » » в форуме Android - 0 Ответы
- 86 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Даты месяцев на тамильском языке и календарь на тамильском языке React Native
Anonymous » » в форуме IOS - 0 Ответы
- 108 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Даты месяцев на тамильском языке и календарь на тамильском языке React Native
Anonymous » » в форуме Android - 0 Ответы
- 82 Просмотры
-
Последнее сообщение Anonymous
-