• Как организовать приведенный кусок кода в метод?

    zolt85
    @zolt85
    Программист
    Глядя на исходники понятно, что игра длится ровно один цикл и если игрок не наткнулся на бомбу, нет возможности продолжить игру. Если я все правильно понял, то текущий код можно модифицировать так:
    int[] pole = {0,1,2,3,4};
            String[] poleOne = {"A","X","X","X","X"};
            int [] poleOneInt = {0, 0, 0, 0, 0};
            String[] poleTwo = {"B","X","X","X","X"};
            int [] poleTwoInt = {0, 0, 0, 0, 0};
            System.out.println(pole[0] + "  " + pole[1] + "  " + pole[2] + "  " + pole [3] + "  " + pole[4]);
            System.out.println(poleOne[0] + "  " + poleOne[1] + "  " + poleOne[2] + "  " + poleOne[3] + "  " + poleOne[4]);
            System.out.println(poleTwo[0] + "  " + poleTwo[1] + "  " + poleTwo[2] + "  " + poleTwo[3] + "  " + poleTwo[4]);
    
            Random rbombOne = new Random();
            int bombOne = rbombOne.nextInt(4)+1;
            poleOneInt [bombOne] = bombOne;
            //проверка где бомба, для отладки
            System.out.println("бомба в " + bombOne);
    
            Random rbombTwo = new Random();
            int bombTwo = rbombTwo.nextInt(4)+1;
            poleTwoInt [bombTwo] = bombTwo;
            //проверка где бомба, для отладки
            System.out.println("бомба в " + bombTwo);
    
            boolean runs = true;
            while(running) {
                System.out.println("Введите строку в формате А или B: ");
    
                Scanner sPole = new Scanner(System.in);
                String scanLetter = sPole.next();
    
                switch (scanLetter) {
                    case "A":
                        System.out.println("Введите номер столбца от 1 до 5: ");
                        Scanner sNum = new Scanner(System.in);
                        int scanNum = sNum.nextInt();
                        if (poleOneInt[scanNum] > 0 ){
                            System.out.println("Booooooom! You Lose");
                            runs = false;
                        }
                        poleOne[scanNum] = " ";
                        break;
                    case "B":
                        System.out.println("Введите номер столбца от 1 до 5: ");
                        Scanner s2Num = new Scanner(System.in);
                        int scan2Num = s2Num.nextInt();
                        if (poleTwoInt[scan2Num] > 0 ){
                            System.out.println("Booooooom! You Lose");
                            runs = false;
                        }
                        poleTwo[scan2Num] = " ";
                        break;
                    default: break;
                }
    
                System.out.println(pole[0] + "  " + pole[1] + "  " + pole[2] + "  " + pole [3] + "  " + pole[4]);
                System.out.println(poleOne[0] + "  " + poleOne[1] + "  " + poleOne[2] + "  " + poleOne[3] + "  " + poleOne[4]);
                System.out.println(poleTwo[0] + "  " + poleTwo[1] + "  " + poleTwo[2] + "  " + poleTwo[3] + "  " + poleTwo[4]);
    
            }

    Если присмотреться, то мы весь игровой процесс заворачиваем в цикл while, который прекратится после того, как переменная runs примет значение false. В данном конкретном случае runs примет значение false, если игрок введет координаты поля с бомбой. Этот код не оптимален, и не претендует на единственно возможный вариант решения. И в нем не предусмотрен вариант, когда игрок раскроет все поля без бомб, т.е. выиграет. Это уже оставлю на Ваше усмотрение.
    Ответ написан
    3 комментария