diff --git a/src/main/java/com/ntlab/irisserver/entities/Card.java b/src/main/java/com/ntlab/irisserver/entities/Card.java new file mode 100644 index 0000000..2ad0169 --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/entities/Card.java @@ -0,0 +1,16 @@ +package com.ntlab.irisserver.entities; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Card { + + @JsonProperty("isOpen") + public boolean isOpen; + + @JsonProperty("color") + public String color; + + @JsonProperty("dno") + public int dno; + +} diff --git a/src/main/java/com/ntlab/irisserver/entities/DrawingController.java b/src/main/java/com/ntlab/irisserver/entities/DrawingController.java index 14375da..6a3c689 100644 --- a/src/main/java/com/ntlab/irisserver/entities/DrawingController.java +++ b/src/main/java/com/ntlab/irisserver/entities/DrawingController.java @@ -1,18 +1,37 @@ package com.ntlab.irisserver.entities; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class DrawingController { private int stage = 0; - private Game game; + private Room room; + private Map> assignments; + private List members; + private IStateListener stateListener; - public DrawingController(Game game) { - this.game = game; + + public DrawingController(IStateListener stateListener, List members, Map> assignments) { + this.assignments = assignments; + this.members = members; + this.stateListener = stateListener; } - public void update(){} + //全員の絵がアップロードされたときに、ステージ情報を更新する + public void update(){ - public int getStage(){ - return stage; + //ニックネームからdnoが分かるので、全員 + + + //roomのstateを変更することになる。 + } + + //pathパラメーターを引数にするので、memberではなくてString + public int getDno(String nickname) { + int dno = 1; + return dno; } } diff --git a/src/main/java/com/ntlab/irisserver/entities/Game.java b/src/main/java/com/ntlab/irisserver/entities/Game.java index 23652da..9bbebb6 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Game.java +++ b/src/main/java/com/ntlab/irisserver/entities/Game.java @@ -10,11 +10,13 @@ private Map> assignments = new HashMap<>(); private Map drawingList = new HashMap<>(); private Map keywordList = new HashMap<>(); + private List map = new ArrayList<>(); + private List color = new ArrayList<>(); private DrawingController drawingController = null; - public Game() { - drawingController = new DrawingController(this); + public Game(Room room) { + drawingController = new DrawingController(room, room.getMembers(), assignments); } public DrawingController getDrawingController() { diff --git a/src/main/java/com/ntlab/irisserver/entities/IStateListener.java b/src/main/java/com/ntlab/irisserver/entities/IStateListener.java new file mode 100644 index 0000000..d9feefd --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/entities/IStateListener.java @@ -0,0 +1,12 @@ +package com.ntlab.irisserver.entities; + +public interface IStateListener { + + public static void changeState(){ + + + } + public static void resetState(){ + + } +} diff --git a/src/main/java/com/ntlab/irisserver/entities/Room.java b/src/main/java/com/ntlab/irisserver/entities/Room.java index 1deb1f7..cfaa6bf 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Room.java +++ b/src/main/java/com/ntlab/irisserver/entities/Room.java @@ -7,7 +7,7 @@ import java.util.*; -public class Room { +public class Room implements IStateListener { @JsonProperty("rid") public String rid; //String rid = null; @@ -138,7 +138,7 @@ } public Game createGame(String owner) { - game=new Game(); + game=new Game(this); return game; } @@ -165,4 +165,12 @@ return state; } + public void changeState(){ + state += 1; + } + + public void resetState(){ + state = 0; + } + } diff --git a/src/main/java/com/ntlab/irisserver/resources/AssignmentRest.java b/src/main/java/com/ntlab/irisserver/resources/AssignmentRest.java new file mode 100644 index 0000000..8a7c38f --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/resources/AssignmentRest.java @@ -0,0 +1,35 @@ +package com.ntlab.irisserver.resources; + +import com.ntlab.irisserver.entities.DrawingController; +import com.ntlab.irisserver.entities.Game; +import com.ntlab.irisserver.entities.Room; +import com.ntlab.irisserver.models.RoomManager; +import org.springframework.stereotype.Component; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import java.util.List; + +@Component +@Path("/rooms") +public class AssignmentRest { + //GETでニックネームを貰うと、いま書いてほしいdnoを返す + @GET + @Path("/{rid}/game/drawings/assignment/{nickname}") + @Produces(MediaType.APPLICATION_JSON) + public int getDno(@PathParam("rid") String rid,@PathParam("nickname") String nickname ) { + + RoomManager rm = RoomManager.getInstance(); + Room room = rm.getRoom(rid); + Game game = room.getGame(); + DrawingController drawingController = game.getDrawingController(); + + int dno = 0; + dno = drawingController.getDno(nickname); + + return dno; + } +} diff --git a/src/main/java/com/ntlab/irisserver/resources/GameRest.java b/src/main/java/com/ntlab/irisserver/resources/GameRest.java new file mode 100644 index 0000000..3603ee8 --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/resources/GameRest.java @@ -0,0 +1,19 @@ +package com.ntlab.irisserver.resources; + +import org.springframework.stereotype.Component; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import java.util.List; + +@Component +@Path("/rooms") +public class GameRest { + @Path("/{rid}/game/map") + @GET + public List getMap(@PathParam("rid") String rid){ + + return null; + } +} diff --git a/src/main/java/com/ntlab/irisserver/resources/GameStateRest.java b/src/main/java/com/ntlab/irisserver/resources/GameStateRest.java new file mode 100644 index 0000000..894bcc9 --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/resources/GameStateRest.java @@ -0,0 +1,12 @@ +package com.ntlab.irisserver.resources; + +import org.springframework.stereotype.Component; + +import javax.ws.rs.Path; + +@Component +@Path("/rooms") + +public class GameStateRest { + +}