Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите как убрать дубляж кода / 7 сообщений из 7, страница 1 из 1
31.03.2021, 09:02
    #40058400
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как убрать дубляж кода
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
   private static String Cd_in;
    private final static int PLAYERS_SIZE=2;

    public static void main(String[] args) {


        Field field = new Field();
        Field field2 = new Field();

        Scanner in = new Scanner(System.in);

        System.out.println("Первый игрок заполните поле");
        fillField(field, in);
        System.out.println("Второй игрок заполните поле");
        fillField(field2, in);

        System.out.println("Поле 1-го игрока");
        field.printField();
        System.out.println("Поле 2-го игрока");
        field2.printField();
        
        boolean shFlag = true;

        while (field2.areShipsAlive() && field.areShipsAlive()) {
            do {
                System.out.println("Ход первого игрока");
                String shCell = in.nextLine();
                String[] string_sh = shCell.split(",");
                int x = Integer.parseInt(string_sh[0]);
                int y = Integer.parseInt(string_sh[1]);
                shFlag = field2.shoot(new Coordinate(x,y));
            } while (shFlag && field2.areShipsAlive());
            if ( !field2.areShipsAlive()) {
                break;
            }
            do {
                System.out.println("Ход второго игрока");
                String shCell = in.nextLine();
                String[] string_sh = shCell.split(",");
                int x = Integer.parseInt(string_sh[0]);
                int y = Integer.parseInt(string_sh[1]);
                shFlag = field.shoot(new Coordinate(x, y));
            } while (shFlag && field.areShipsAlive());
        }

        if (field2.areShipsAlive() ) {
            System.out.println("Второй игрок победил ");
        } else {
            System.out.println("Первый игрок победил ");
        }

    }
...
Рейтинг: 0 / 0
31.03.2021, 09:49
    #40058415
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как убрать дубляж кода
x17.mstu
как

Переделай код для n игроков (n > 10). Или само получится или пойдешь в продажи.
...
Рейтинг: 0 / 0
31.03.2021, 10:37
    #40058425
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как убрать дубляж кода
crutchmaster,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
static void stepPlayer(Player player, Field field, Scanner in){
        boolean shFlag = true;
        do {
            System.out.println("Ход " + player.toString()+  "игрока");
            String shCell = in.nextLine();
            String[] string_sh = shCell.split(",");
            int x = Integer.parseInt(string_sh[0]);
            int y = Integer.parseInt(string_sh[1]);
            shFlag = field.shoot(new Coordinate(x,y));
        } while (shFlag && field.areShipsAlive());


Как в методе в while передать field противоположного игрока по которому я стреляю ?
...
Рейтинг: 0 / 0
31.03.2021, 10:45
    #40058429
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как убрать дубляж кода
x17.mstu,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        while (field2.areShipsAlive() && field.areShipsAlive()) {
            stepPlayer(player, field2, in);
            if ( !field2.areShipsAlive()) {
                break;
            }
            stepPlayer(player2, field, in);

            if (field2.areShipsAlive() ) {
                System.out.println("Второй игрок победил ");
            } else {
                System.out.println("Первый игрок победил ");
            }
        }
...
Рейтинг: 0 / 0
31.03.2021, 11:16
    #40058438
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как убрать дубляж кода
x17.mstu
Как в методе в while передать field противоположного игрока по которому я стреляю ?

Также, как ты передал field первого игрока. В чём проблема?
...
Рейтинг: 0 / 0
04.04.2021, 15:22
    #40059565
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как убрать дубляж кода
crutchmaster,

так и сделал а можно ли сделать чтобы было без break ?
...
Рейтинг: 0 / 0
05.04.2021, 04:31
    #40059609
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как убрать дубляж кода
x17.mstu
а можно ли сделать чтобы было без break ?

Можно. Убрать в условие отрицание, засунуть туда вызов хода второго игрока. Или в коде stepPlayer сразу выходить, если нет живых судов.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите как убрать дубляж кода / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]