/
Gnomik61
/
StrangeProject
Обзор
Документация
Войти
/
Gnomik61
/
StrangeProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/Main.java
179 строк
7 KB
unknown
first_commit
05 ноя 2025, 10:49
05 ноя 2025, 10:49
b316a5e
Код
Авторство
О чём код?
import java.util.*; public class Main { public static void main(String[] ground) { String castle = "\uD83E\uDD69"; int sizeBoard = 5; Person person = new Person(sizeBoard); int step = 0; String[][] board = new String[sizeBoard][sizeBoard]; for (int y = 0; y < sizeBoard; y++) { for (int x = 0; x < sizeBoard; x++) { board[y][x] = " "; } } int countMonster = sizeBoard * sizeBoard - sizeBoard - 5; Random r = new Random(); // для работы с большим количеством монстров воспользуемся массивом Monster[] arrMonster = new Monster[countMonster + 1]; int count = 0; Monster test; while (count <= countMonster){ switch (Monster.getRandomNumberUsingNextInt(1,3)){ case 1: test = new Monster(sizeBoard); break; case 2: test = new BigMonster(sizeBoard); break; case 3: // For keys List<String> keys = new ArrayList<>(RiddleMonster.getRiddleMap().keySet()); // For values List<String> values = new ArrayList<>(RiddleMonster.getRiddleMap().values()); int randomIndex = Monster.getRandomNumberUsingNextInt(0, RiddleMonster.getRiddleMap().size()-1); String randomKey = keys.get(randomIndex); String randomValue = values.get(randomIndex); test = new RiddleMonster(sizeBoard, randomKey, randomValue ); break; default: test = new Monster(sizeBoard); break; } if (board[test.getY()][test.getX()].equals(" ")){ board[test.getY()][test.getX()] = test.getImage(); arrMonster[count] = test; count++; } } int castleX = r.nextInt(sizeBoard); int castleY = 0; board[castleY][castleX] = castle; System.out.println("Привет! Ты готов начать играть в игру? (Напиши: ДА или ОТСТАНЬ)"); Scanner sc = new Scanner(System.in); String answer = sc.nextLine(); System.out.println("Ваш ответ:\t" + answer); switch (answer) { case "ДА" -> { boolean isActive =true; System.out.println("Выбери сложность игры(от 1 до 5):"); int difficultGame = sc.nextInt(); System.out.println("Выбранная сложность:\t" + difficultGame); while (isActive) { board[person.getY() - 1][person.getX() - 1] = person.getImage(); outputBoard(board, person.getLive()); System.out.println("Введите куда будет ходить персонаж(ход возможен только по вертикали и горизонтали на одну клетку;" + "\nКоординаты персонажа - (x: " + person.getX() + ", y: " + person.getY() + "))"); int x = sc.nextInt(); int y = sc.nextInt(); // проверка if (person.moveCorrect(x, y)) { String next = board[y - 1][x - 1]; if (next.equals(" ")) { board[person.getY() - 1][person.getX() - 1] = " "; person.move(x, y); step++; System.out.println("Ход корректный; Новые координаты: " + person.getX() + ", " + person.getY() + "\nХод номер: " + step); } else if (next.equals(castle)) { System.out.println("Вы прошли игру!"); break; }else { for (Monster monster : arrMonster) { if (monster.conflictPerson(x, y)) { //Big Mponster if (monster instanceof BigMonster){ BigMonster bm = (BigMonster) monster; if (bm.taskMonster(difficultGame)) { board[person.getY() - 1][person.getX() - 1] = " "; person.move(x, y); } else { if (person.getLive()>1) person.downLive(); else isActive = false; } break; } //Riddle Monster if (monster instanceof RiddleMonster){ RiddleMonster bm = (RiddleMonster) monster; if (bm.taskMonster(difficultGame)) { board[person.getY() - 1][person.getX() - 1] = " "; person.move(x, y); } else { if (person.getLive()>1) person.downLive(); else isActive = false; } break; } //Monster if (monster.taskMonster(difficultGame)) { board[person.getY() - 1][person.getX() - 1] = " "; person.move(x, y); } else { if (person.getLive()>1) person.downLive(); else isActive = false; } break; } } } } else { System.out.println("Неккоректный ход"); } } } case "ОТСТАНЬ" -> System.out.println("Жаль, приходи еще!"); default -> System.out.println("Данные введены неккоректно"); } } static void outputBoard(String[][] board, int live) { String leftBlock = "| "; String rightBlock = "|"; String wall = "+ —— + —— + —— + —— + —— +"; for (String[] raw : board) { System.out.println(wall); for (String col : raw) { System.out.print(leftBlock + col + " "); } System.out.println(rightBlock); } System.out.println(wall); System.out.println("Количество жизней:\t" + live + "\n"); } }