powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите как убрать дубляж кода
7 сообщений из 7, страница 1 из 1
Подскажите как убрать дубляж кода
    #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
Подскажите как убрать дубляж кода
    #40058415
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu
как

Переделай код для n игроков (n > 10). Или само получится или пойдешь в продажи.
...
Рейтинг: 0 / 0
Подскажите как убрать дубляж кода
    #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
Подскажите как убрать дубляж кода
    #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
Подскажите как убрать дубляж кода
    #40058438
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu
Как в методе в while передать field противоположного игрока по которому я стреляю ?

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

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

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


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