diff --git a/backendcloud/backend/pom.xml b/backendcloud/backend/pom.xml index 8e279b2..cfdf104 100644 --- a/backendcloud/backend/pom.xml +++ b/backendcloud/backend/pom.xml @@ -10,6 +10,8 @@ 4.0.0 backend + + jar 8 @@ -129,5 +131,24 @@ - + + + + + org.springframework.boot + spring-boot-maven-plugin + + + com.kob.backend.BackendApplication + + + + + repackage + + + + + + \ No newline at end of file diff --git a/backendcloud/backend/src/main/java/com/kob/backend/config/SecurityConfig.java b/backendcloud/backend/src/main/java/com/kob/backend/config/SecurityConfig.java index 0199bcf..320d064 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/config/SecurityConfig.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/config/SecurityConfig.java @@ -40,7 +40,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers("/user/account/token/", "/user/account/register/").permitAll() + .antMatchers("/api/user/account/token/", "/api/user/account/register/").permitAll() .antMatchers("/pk/start/game/","/pk/receive/bot/move/").hasIpAddress("127.0.0.1") .antMatchers(HttpMethod.OPTIONS).permitAll() .anyRequest().authenticated(); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/ranklist/RankListController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/ranklist/RankListController.java index 2568bae..3abf5f2 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/ranklist/RankListController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/ranklist/RankListController.java @@ -14,7 +14,7 @@ public class RankListController { @Autowired private RankListService rankListService; - @GetMapping("/ranklist/getlist") + @GetMapping("/api/ranklist/getlist") public JSONObject getList(@RequestParam Map data){ Integer page = Integer.parseInt(data.get("page")); return rankListService.getList(page); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/record/GetRecordListController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/record/GetRecordListController.java index 9436691..c26cbc6 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/record/GetRecordListController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/record/GetRecordListController.java @@ -14,7 +14,7 @@ public class GetRecordListController { @Autowired private GetRecordListService getRecordListService; - @GetMapping("/record/getlist/") + @GetMapping("/api/record/getlist/") public JSONObject getList(@RequestParam Map data){ Integer page = Integer.parseInt(data.get("page")); return getRecordListService.getList(page); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/InfoController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/InfoController.java index 1723fa4..27233b9 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/InfoController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/InfoController.java @@ -12,7 +12,7 @@ public class InfoController { @Autowired private InfoService infoService; - @GetMapping("/user/account/info/") + @GetMapping("/api/user/account/info/") public Map getInfo() { return infoService.getInfo(); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/LoginController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/LoginController.java index b7f7f6d..cef9dec 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/LoginController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/LoginController.java @@ -19,7 +19,7 @@ public class LoginController { @Autowired private LoginService loginService;//接口实例调用接口方法==>调用实现类中的方法 - @PostMapping("/user/account/token/") + @PostMapping("/api/user/account/token/") public Map getToken(@RequestParam Map map) { String username = map.get("username"); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/RegisterController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/RegisterController.java index 87b6bbb..08bf579 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/RegisterController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/account/RegisterController.java @@ -14,7 +14,7 @@ public class RegisterController { @Autowired private RegisterService registerService; - @PostMapping("/user/account/register/") + @PostMapping("/api/user/account/register/") public Map register(@RequestParam Map map) { String username = map.get("username"); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/AddController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/AddController.java index 5ae6331..c00257b 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/AddController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/AddController.java @@ -14,7 +14,7 @@ public class AddController { @Autowired private AddService addService; - @PostMapping("/user/bot/add/") + @PostMapping("/api/user/bot/add/") public Map add(@RequestParam Map data) { return addService.add(data); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/GetListController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/GetListController.java index b44f5e8..e11ff4e 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/GetListController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/GetListController.java @@ -13,7 +13,7 @@ public class GetListController{ @Autowired private GetListService getListService; - @GetMapping("/user/bot/getlist/") + @GetMapping("/api/user/bot/getlist/") public List getList() { return getListService.getList(); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/RemoveController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/RemoveController.java index 78a13f4..5dc9936 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/RemoveController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/RemoveController.java @@ -13,7 +13,7 @@ public class RemoveController { @Autowired private RemoveService removeService; - @PostMapping("/user/bot/remove/") + @PostMapping("/api/user/bot/remove/") public Map remove(@RequestParam Map data) { return removeService.remove(data); diff --git a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/UpdateController.java b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/UpdateController.java index 65986c3..46ff909 100644 --- a/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/UpdateController.java +++ b/backendcloud/backend/src/main/java/com/kob/backend/controller/user/bot/UpdateController.java @@ -13,7 +13,7 @@ public class UpdateController { @Autowired private UpdateService updateService; - @PostMapping("/user/bot/update/") + @PostMapping("/api/user/bot/update/") public Map update(@RequestParam Map data){ return updateService.update(data); } diff --git a/backendcloud/backend/src/main/resources/application.properties b/backendcloud/backend/src/main/resources/application.properties index 9d8b7b4..39eee02 100644 --- a/backendcloud/backend/src/main/resources/application.properties +++ b/backendcloud/backend/src/main/resources/application.properties @@ -1,7 +1,7 @@ server.port=3000 spring.datasource.username=root -spring.datasource.password=dyh20011022 +spring.datasource.password=Dd20011022 spring.datasource.url=jdbc:mysql://localhost:3306/kob?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver diff --git a/backendcloud/botrunningsystem/pom.xml b/backendcloud/botrunningsystem/pom.xml index e4bb51a..2739bfd 100644 --- a/backendcloud/botrunningsystem/pom.xml +++ b/backendcloud/botrunningsystem/pom.xml @@ -10,7 +10,8 @@ 4.0.0 botrunningsystem - + + jar 8 8 @@ -68,5 +69,24 @@ - + + + + + org.springframework.boot + spring-boot-maven-plugin + + + com.kob.botrunningsystem.BotRunningSystemApplication + + + + + repackage + + + + + + \ No newline at end of file diff --git a/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/service/impl/utils/Consumer.java b/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/service/impl/utils/Consumer.java index bd111c1..6412fd4 100644 --- a/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/service/impl/utils/Consumer.java +++ b/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/service/impl/utils/Consumer.java @@ -10,7 +10,11 @@ import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintWriter; import java.util.UUID; +import java.util.function.Supplier; @Component public class Consumer extends Thread{ @@ -37,7 +41,7 @@ public class Consumer extends Thread{ } private String addUid(String code,String uid){ - int k = code.indexOf(" implements BotInterface"); + int k = code.indexOf(" implements java.util.function.Supplier"); return code.substring(0,k) + uid +code.substring(k); } @@ -46,12 +50,21 @@ public class Consumer extends Thread{ UUID uuid = UUID.randomUUID(); String uid = uuid.toString().substring(0,8); - BotInterface botInterface = Reflect.compile( + //更普遍的一个接口 + Supplier botInterface = Reflect.compile( "com.kob.botrunningsystem.utils.Bot" + uid, addUid(bot.getBotCode(),uid) ).create().get(); + //bot.getInput()写入文件 + File file = new File("input.txt"); + try(PrintWriter printWriter = new PrintWriter(file)){ + printWriter.println(bot.getInput()); + printWriter.flush(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } - Integer direction = botInterface.nextMove(bot.getInput()); + Integer direction = botInterface.get(); System.out.println("move-direction: " + bot.getUserId() + " " + direction); diff --git a/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/utils/Bot.java b/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/utils/Bot.java index d2a671c..9f10ea2 100644 --- a/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/utils/Bot.java +++ b/backendcloud/botrunningsystem/src/main/java/com/kob/botrunningsystem/utils/Bot.java @@ -1,8 +1,85 @@ package com.kob.botrunningsystem.utils; -public class Bot implements com.kob.botrunningsystem.utils.BotInterface { - @Override +import java.io.File; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Bot implements java.util.function.Supplier { + static class Cell { + public int x, y; + public Cell(int x, int y) { + this.x = x; + this.y = y; + } + } + + private boolean check_tail_increasing(int step) { // 检验当前回合,蛇的长度是否增加 + if (step <= 10) return true; + return step % 3 == 1; + } + + public List getCells(int sx, int sy, String steps) { + steps = steps.substring(1, steps.length() - 1); + List res = new ArrayList<>(); + + int[] dx = {-1, 0, 1, 0}, dy = {0, 1, 0, -1}; + int x = sx, y = sy; + int step = 0; + res.add(new Cell(x, y)); + for (int i = 0; i < steps.length(); i ++ ) { + int d = steps.charAt(i) - '0'; + x += dx[d]; + y += dy[d]; + res.add(new Cell(x, y)); + if (!check_tail_increasing( ++ step)) { + res.remove(0); + } + } + return res; + } + public Integer nextMove(String input) { + String[] strs = input.split("#"); + int[][] g = new int[13][14]; + for (int i = 0, k = 0; i < 13; i ++ ) { + for (int j = 0; j < 14; j ++, k ++ ) { + if (strs[0].charAt(k) == '1') { + g[i][j] = 1; + } + } + } + + int aSx = Integer.parseInt(strs[1]), aSy = Integer.parseInt(strs[2]); + int bSx = Integer.parseInt(strs[4]), bSy = Integer.parseInt(strs[5]); + + List aCells = getCells(aSx, aSy, strs[3]); + List bCells = getCells(bSx, bSy, strs[6]); + + for (Cell c: aCells) g[c.x][c.y] = 1; + for (Cell c: bCells) g[c.x][c.y] = 1; + + int[] dx = {-1, 0, 1, 0}, dy = {0, 1, 0, -1}; + for (int i = 0; i < 4; i ++ ) { + int x = aCells.get(aCells.size() - 1).x + dx[i]; + int y = aCells.get(aCells.size() - 1).y + dy[i]; + if (x >= 0 && x < 13 && y >= 0 && y < 14 && g[x][y] == 0) { + return i; + } + } + return 0; } + + @Override + public Integer get() { + File file = new File("input.txt"); + try { + Scanner sc = new Scanner(file); + return nextMove(sc.next()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + } } diff --git a/backendcloud/input.txt b/backendcloud/input.txt new file mode 100644 index 0000000..0e96c96 --- /dev/null +++ b/backendcloud/input.txt @@ -0,0 +1 @@ +11111111111111100100001100011000000000000110000000100001100001011100011000110000000110000000000001100000001100011000111010000110000100000001100000000000011000110000100111111111111111#1#12#(22222222223000000000012)#11#1#(00000000001211011121110) diff --git a/backendcloud/matchingsystem/Copy.txt b/backendcloud/matchingsystem/Copy.txt deleted file mode 100644 index 18ee3fd..0000000 --- a/backendcloud/matchingsystem/Copy.txt +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backendcloud/matchingsystem/pom.xml b/backendcloud/matchingsystem/pom.xml index d2a4379..33cc4a5 100644 --- a/backendcloud/matchingsystem/pom.xml +++ b/backendcloud/matchingsystem/pom.xml @@ -11,7 +11,7 @@ com.kob.matchingsystem matchingsystem - + jar 8 8 @@ -60,5 +60,24 @@ - + + + + + org.springframework.boot + spring-boot-maven-plugin + + + com.kob.matchingsystem.MatchingSystemApplication + + + + + repackage + + + + + + \ No newline at end of file diff --git a/backendcloud/matchingsystem/src/main/java/com/kob/matchingsystem/config/SecurityConfig.java b/backendcloud/matchingsystem/src/main/java/com/kob/matchingsystem/config/SecurityConfig.java index be39503..bc68445 100644 --- a/backendcloud/matchingsystem/src/main/java/com/kob/matchingsystem/config/SecurityConfig.java +++ b/backendcloud/matchingsystem/src/main/java/com/kob/matchingsystem/config/SecurityConfig.java @@ -16,7 +16,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers("/player/add/","/player/remove/").hasIpAddress("localhost")//新加 + .antMatchers("/player/add/","/player/remove/").hasIpAddress("127.0.0.1")//新加 .antMatchers(HttpMethod.OPTIONS).permitAll() .anyRequest().authenticated(); } diff --git a/web/src/components/MatchGround.vue b/web/src/components/MatchGround.vue index 3c7f036..9a3c1e7 100644 --- a/web/src/components/MatchGround.vue +++ b/web/src/components/MatchGround.vue @@ -69,7 +69,7 @@ export default { const refresh_bots = () => { $.ajax({ - url: "http://127.0.0.1:3000/user/bot/getlist/", + url: "https://snake.mycomputer.top/api/user/bot/getlist/", type: "get", headers: { 'Authorization': "Bearer " + store.state.user.token, diff --git a/web/src/components/NavBar.vue b/web/src/components/NavBar.vue index 7ad4342..5981336 100644 --- a/web/src/components/NavBar.vue +++ b/web/src/components/NavBar.vue @@ -2,7 +2,10 @@