/
AlexStone
/
Java25sep
Обзор
Документация
Войти
/
AlexStone
/
Java25sep
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Spring/src/main/java/org/example/Puzzle.java
230 строк
10 KB
unknown
ClassWork
28 мар 2026, 10:14
28 мар 2026, 10:14
bc6b92e
Код
Авторство
О чём код?
package org.example; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.view.RedirectView; import java.util.ArrayList; import java.util.List; import java.util.Objects; @RestController public class Puzzle { @GetMapping("/Puzzle") public String Puzzle(@CookieValue(value = "Left", defaultValue = "") String Left, @CookieValue(value = "Boat", defaultValue = "") String Boat, @CookieValue(value = "Right", defaultValue = "") String Right, HttpServletResponse response) { if (Boat.isEmpty() && Right.isEmpty()) { response.addCookie(new Cookie("Left", "Волк<br>Коза<br>Капуста")); } String[] L = Left.split("<br>"); String[] B = Boat.split("<br>"); String[] R = Right.split("<br>"); String page = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<link rel ='stylesheet' href='styles.css'/>" + "<meta charset=\"utf-8\"/>\n" + "</head>\n" + "<body>\n"; if (!Boat.isEmpty()){ if (Left.contains("Волк")&&Left.contains("Коза")){ page+= "<h1>Провал</h1>"+ "<p><strong>Нельзя оставлять на одном берегу Волка с Козой. Попробуйте снова</strong></p>"+ formPost("/Restart", "<input type='submit' value='Начать заново'>") + "</body>" + "</html>"; return page; } if (Left.contains("Капуста")&&Left.contains("Коза")){ page+= "<h1>Провал</h1>"+ "<p><strong>Нельзя оставлять на одном берегу Козу с Капустой. Попробуйте снова</strong></p>"+ formPost("/Restart", "<input type='submit' value='Начать заново'>") + "</body>" + "</html>"; return page; } if (Right.contains("Волк")&&Right.contains("Коза")){ page+= "<h1>Провал</h1>"+ "<p><strong>Нельзя оставлять на одном берегу Волка с Козой. Попробуйте снова</strong></p>"+ formPost("/Restart", "<input type='submit' value='Начать заново'>") + "</body>" + "</html>"; return page; } if (Right.contains("Капуста")&&Right.contains("Коза")){ page+= "<h1>Провал</h1>"+ "<p><strong>Нельзя оставлять на одном берегу Козу с Капустой. Попробуйте снова</strong></p>"+ formPost("/Restart", "<input type='submit' value='Начать заново'>") + "</body>" + "</html>"; return page; } } if (Right.contains("Капуста")&&Right.contains("Коза")&&Right.contains("Волк")) { page+= "<p><strong>ПОЗДРАВЛЯЕМ</strong></p>"+ "<p>задание успешно выполнено!</p>"+ formPost("/Restart", "<input type='submit' value='Начать заново'>") + "</body>" + "</html>"; return page; } page += "<p><strong>Левый Берег</strong></p>"; for (int i = 0; i < L.length; i++) { if (!Left.isEmpty()) { page += "<li>" + L[i] + "</li>"; if (Boat.isEmpty()) { page += "<form method='POST' action='/LonB'>" + "<input name='name' value='" + L[i] + "' type='hidden'>" + "<input type='submit' value='Переместить в лодку'><br><br>" + "</form>"; } } } page += "<p><strong>Лодка</strong></p>"; for (int i = 0; i < B.length; i++) { if (!Boat.isEmpty()) { page += "<li>" + B[i] + "</li>"; page += formPost("/BonL", "<input name='name' value='" + B[i] + "' type='hidden'> <input type='submit' value='Переместить на левый берег'>"); page += formPost("/BonR", "<input name='name' value='" + B[i] + "' type='hidden'> <input type='submit' value='Переместить на правый берег'>"); } } page += "<p><strong>Правый Берег</strong></p>"; for (int i = 0; i < R.length; i++) { if (!Right.isEmpty()) { page += "<li>" + R[i] + "</li>"; if (Boat.isEmpty()) { page += formPost("/RonB", "<input name='name' value='" + R[i] + "' type='hidden'> <input type='submit' value='Переместить в лодку'>"); } } } page += "<br><br>"; page += formPost("/Restart", "<input type='submit' value='Начать заново'>") + "</body>" + "</html>"; return page; } public static String formPost(String action, String content) { return "<form action='" + action + "' method='POST'>" + content + "</form>"; } @PostMapping("/LonB") public RedirectView LonB(@CookieValue(value = "Left", defaultValue = "") String Left, @CookieValue(value = "Boat", defaultValue = "") String Boat, @RequestParam("name") String name, HttpServletResponse response) { response.addCookie(new Cookie("Boat", name)); String[] arr = Left.split("<br>"); List<String> Bank = new ArrayList<>(); for (int i = 0; i < arr.length; i++) { if (!name.equals(arr[i])) { Bank.add(arr[i]); } } response.addCookie(new Cookie("Left", String.join("<br>", Bank))); return new RedirectView("/Puzzle"); } @PostMapping("/BonL") public RedirectView BonL(@CookieValue(value = "Left", defaultValue = "") String Left, @CookieValue(value = "Boat", defaultValue = "") String Boat, @RequestParam("name") String name, HttpServletResponse response) { List<String> ListLeft = new ArrayList<>(); if (!Left.isEmpty()) { String[] arr2 = Left.split("<br>"); for (int i = 0; i < arr2.length; i++) { ListLeft.add(arr2[i]); } } ListLeft.add(name); response.addCookie(new Cookie("Left", String.join("<br>", ListLeft))); List<String> Bank = new ArrayList<>(); if (!Left.isEmpty()) { String[] arr = Boat.split("<br>"); for (int i = 0; i < arr.length; i++) { if (!name.equals(arr[i])) { Bank.add(arr[i]); } } } response.addCookie(new Cookie("Boat", String.join("<br>", Bank))); return new RedirectView("/Puzzle"); } @PostMapping("/BonR") public RedirectView BonR(@CookieValue(value = "Right", defaultValue = "") String Right, @CookieValue(value = "Boat", defaultValue = "") String Boat, @RequestParam("name") String name, HttpServletResponse response) { String[] arr1 = Boat.split("<br>"); List<String> ListBoat = new ArrayList<>(); for (int i = 0; i < arr1.length; i++) { if (!name.equals(arr1[i])) { ListBoat.add(arr1[i]); } } response.addCookie(new Cookie("Boat", String.join("<br>", ListBoat))); List<String> ListRight = new ArrayList<>(); if (!Right.isEmpty()) { String[] arr2 = Right.split("<br>"); for (int i = 0; i < arr2.length; i++) { ListRight.add(arr2[i]); } } ListRight.add(name); response.addCookie(new Cookie("Right", String.join("<br>", ListRight))); return new RedirectView("/Puzzle"); } @PostMapping("/RonB") public RedirectView RonB(@CookieValue(value = "Right", defaultValue = "") String Right, @CookieValue(value = "Boat", defaultValue = "") String Boat, @RequestParam("name") String name, HttpServletResponse response) { response.addCookie(new Cookie("Boat", name)); String[] arr = Right.split("<br>"); List<String> Bank = new ArrayList<>(); for (int i = 0; i < arr.length; i++) { if (!name.equals(arr[i])) { Bank.add(arr[i]); } } response.addCookie(new Cookie("Right", String.join("<br>", Bank))); return new RedirectView("/Puzzle"); } @PostMapping("/Restart") public RedirectView Restart(@CookieValue(value = "Left", defaultValue = "") String Left, @CookieValue(value = "Boat", defaultValue = "") String Boat, @CookieValue(value = "Right", defaultValue = "") String Right, HttpServletResponse response) { response.addCookie(new Cookie("Left", "Волк<br>Коза<br>Капуста")); response.addCookie(new Cookie("Boat", "")); response.addCookie(new Cookie("Right", "")); return new RedirectView("/Puzzle"); } }