Игра «Морской бой» на языке JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Игра «Морской бой» на языке Java

Сообщение Anonymous »

Мне нужна помощь с кодом для школьного проекта. Я сделал простую игру на 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»