Skip to content

Instantly share code, notes, and snippets.

@fee1good
Created June 25, 2019 13:43
Show Gist options
  • Save fee1good/a8573780ce6a9945823c988b2436833d to your computer and use it in GitHub Desktop.
Save fee1good/a8573780ce6a9945823c988b2436833d to your computer and use it in GitHub Desktop.
netology_mentor
import java.util.*;
public class Main {
public static void main(String[] args) {
// Константы лучше сделать final
int SIZE = 10;
int warField[][]= new int[SIZE][SIZE];
int EMPTY = 0;
int SHIP = 1;
int DEAD = 2;
int MISS = 3;
int MAX_COUNT = 10;
Random random = new Random();
for (int i = 0; i< MAX_COUNT; i++) {
int shipPlace1 = random.nextInt(SIZE);
int shipPlace2 = random.nextInt(SIZE);
if (warField[shipPlace1][shipPlace2] == SHIP){
i--;
}
warField[shipPlace1][shipPlace2] = SHIP;
}
// можно вынести в отдельный метод, т.к. код ниже практически дублирует
// эту логику
for (int i = 0; i< SIZE; i++) {
for (int j = 0; j< SIZE; j++) {
System.out.print(warField[i][j]);
}
System.out.println();
}
int currentField[][]= new int[SIZE][SIZE];
int hitsNumber = 0;
for (int k=0; k<30; k++) {
Scanner scanner = new Scanner(System.in);
// правильнее будет использовать System.out.println для переноса вводимого значения на следующую строчку
// Опять про форматирование — после Х надо поставить ": "
System.out.print("Введите координату X");
int x = scanner.nextInt();
// в задании предполагался формат "x:y"
// можно попробовать не просить пользователя вводить 2 координаты, а
// распарсить строку выше :)
// не выводится подсчет кол-ва ходов
System.out.print("Введите координату Y");
int y = scanner.nextInt();
// если ввести число > 10, то получим ошибку java.lang.ArrayIndexOutOfBoundsException
// надо добавить проветку на это дело
// если ввести НЕ число, то получим ошибку InputMismatchException
// надо добавить проверку на вводимый символ (должен быть Integer)
if (warField[x-1][y-1] == SHIP) {
System.out.print("Попадание!");
hitsNumber++;
currentField[x-1][y-1] = DEAD;
if (hitsNumber==10) {
break;
}
} else {
System.out.print("Мимо!");
currentField[x-1][y-1] = MISS;
}
System.out.println();
for (int i = 0; i< SIZE; i++) {
for (int j = 0; j< SIZE; j++) {
System.out.print(currentField[i][j]);
}
System.out.println();
}
}
System.out.println();
if (hitsNumber<10) {
System.out.println("Игрок проиграл!");}
else {
System.out.println("Игрок выиграл!");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment