diff --git a/src/main/java/com/ntlab/irisserver/entities/Game.java b/src/main/java/com/ntlab/irisserver/entities/Game.java index 3ed6f81..f6b0822 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Game.java +++ b/src/main/java/com/ntlab/irisserver/entities/Game.java @@ -10,7 +10,7 @@ private Map cellList = new HashMap<>();// private List map = new ArrayList<>();//cno順にdnoを管理 - private List colorList = new ArrayList<>();//cno順にr,g,b,dを管理 + private List colorList = new ArrayList<>();//cno順にr:赤,g:灰,b:青,d:黒を管理 private List turnList = new ArrayList<>(); private Turn nowTurn = null;//現在のターン diff --git a/src/main/java/com/ntlab/irisserver/entities/Turn.java b/src/main/java/com/ntlab/irisserver/entities/Turn.java index d6ec26b..9f15214 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Turn.java +++ b/src/main/java/com/ntlab/irisserver/entities/Turn.java @@ -20,6 +20,9 @@ @JsonProperty("turnstate") private int turnstate; + @JsonProperty("gamestate") + private int gamestate;//0:turn継続, 1:turn終了, 2:game終了 + private List questions[] = new ArrayList[16]; //> private List openlist = new ArrayList<>(); @@ -29,6 +32,7 @@ public Turn(){ max = -1; turnstate = 0; + gamestate = 0; } //--------------------------------------------------------- @@ -42,6 +46,8 @@ public void setTurnstate(int turnstate) {this.turnstate = turnstate;} + public void setGamestate(int gamestate) {this.gamestate = gamestate;} + //--------------------------------------------------------- //ゲッター @@ -57,6 +63,8 @@ public int getTurnstate() {return turnstate;} + public int getGamestate() {return gamestate;} + //--------------------------------------------------------- //questions操作 diff --git a/src/main/java/com/ntlab/irisserver/resources/TurnsRest.java b/src/main/java/com/ntlab/irisserver/resources/TurnsRest.java index 1a747dc..a3dbafa 100644 --- a/src/main/java/com/ntlab/irisserver/resources/TurnsRest.java +++ b/src/main/java/com/ntlab/irisserver/resources/TurnsRest.java @@ -10,6 +10,7 @@ import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import java.util.ArrayList; import java.util.List; import java.util.Iterator; @@ -166,9 +167,9 @@ return t.getOpenListAll(); } - @PUT //オープンリストの追加 + @PUT //オープンリストの追加 カードをめくったときの色ごとの処理() @Path("/{rid}/game/turns/{tno}/openlist") - public void setOpenList(@PathParam("rid") String rid, @PathParam("tno") Integer tno, @FormParam("cno")Integer cno){ + public Integer setOpenList(@PathParam("rid") String rid, @PathParam("tno") Integer tno, @FormParam("cno")Integer cno){ RoomManager rm = RoomManager.getInstance(); Room room = rm.getRoom(rid); @@ -178,6 +179,20 @@ t.addOpenList(cno); card.setIsOpen(true); + + //turnが続くかの判定 + if(card.color == "b"){ + t.setGamestate(2); + }else if(t.getMax() <= t.getOpenListAll().size()){ + t.setGamestate(1); + game.createTurn(); + }else if(card.color == "g"||(card.color != t.getTeam())){ + t.setGamestate(1); + game.createTurn(); + } + + return t.getGamestate(); + } }