RoomManager 微変更 TestRest roomtestの追加 TurnTest 微変更とGETメソッドを追加しようとして挫折 #155

Merged t-okazaki merged 1 commit into nitta-lab-2022:master from nitta-lab-2022:RoomsRest on 15 Jul 2022
Showing 3 changed files
View
9
src/main/java/com/ntlab/irisserver/models/RoomManager.java
 
//--------------------------------テスト用--------------------------------------
 
public void createTestRoom() {
//テストルーム作成
Room tr = new Room("roomtest", "test");
rooms.put("roomtest", tr);
tr.addMember("test");
 
//お絵描きテスト用
Room dr = new Room("drawtest", "draw");
rooms.put("drawtest", dr);
dr.addMember("draw");
 
//ゲームテスト用
Room gr = new Room("gametest", "game");
rooms.put("gametest", gr);
gr.addMember("game");
 
}
 
 
}
View
91
src/main/java/com/ntlab/irisserver/resources/TestRest.java
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
 
public void shafflem(Room room){
List<Member> mem = room.getMembers();
Collections.shuffle(mem);
for(int i=0; i < 8; i++){
if(i >= mem.size())break;
Member info = mem.get(i);
if(i==0){
info.setMaster(true);
room.changeTeamAndMaster(info.getNickname(), "r", true);
}else if(i==1){
info.setMaster(true);
room.changeTeamAndMaster(info.getNickname(), "b", true);
}else{
info.setMaster(false);
}
if(i % 2 == 0){
info.setBelongs("r");
}else{
info.setBelongs("b");
}
}
}
 
@PUT
@Path("/test")
public void putTestRoom(){
KeywordManager km = KeywordManager.getInstance();
RoomManager rm = RoomManager.getInstance();
rm.createTestRoom();
 
Room tr = rm.getRoom("roomtest");
Room dr = rm.getRoom("drawtest");
Room gr = rm.getRoom("gametest");
dr.addMember("draw");
gr.addMember("game");
 
//メンバー設定()
int length = 0;
char[] rch;
rch = new char[3];
String rname;
while(length < 10){
for(int i = 0; i<3; i++){
while(length < 8){
for(int i = 0; i<4; i++){
Random random = new Random();
rch[i] = (char)(random.nextInt(26) + 'a');
}
rname = new String(rch);
tr.addMember(rname);
dr.addMember(rname);
gr.addMember(rname);
List<Member> members = dr.getMembers();
length = members.size();
}
 
//チームシャッフル
List<Member> dm = dr.getMembers();
List<Member> gm = gr.getMembers();
Collections.shuffle(dm);
Collections.shuffle(gm);
for(int i=0; i < 10; i++){
if(i >= dm.size())break;
Member infod = dm.get(i);
Member infog = gm.get(i);
if(i==0){
infod.setMaster(true);
infog.setMaster(true);
dr.changeTeamAndMaster(infod.getNickname(), "r", true);
gr.changeTeamAndMaster(infog.getNickname(), "r", true);
}else if(i==1){
infod.setMaster(true);
infog.setMaster(true);
dr.changeTeamAndMaster(infod.getNickname(), "b", true);
gr.changeTeamAndMaster(infog.getNickname(), "b", true);
}else{
infod.setMaster(false);
infog.setMaster(false);
}
if(i % 2 == 0){
infod.setBelongs("r");
infog.setBelongs("r");
}else{
infod.setBelongs("b");
infog.setBelongs("b");
}
}
 
shafflem(tr);
shafflem(dr);
shafflem(gr);
 
//両部屋:gameインスタンス作成,stateの初期化
String path = null;
dr.setState(2);
View
36
src/main/java/com/ntlab/irisserver/resources/TurnsRest.java
// rooms/{rid}/game/turns:
 
@GET //現在のターンの取得
@Path("/{rid}/game/turns")
public int getTurnNumber(@PathParam("rid") String rid) {
 
int tn = 0;
public Integer getTurnNumber(@PathParam("rid") String rid) {
RoomManager rm = RoomManager.getInstance();
Room room = rm.getRoom(rid);
Game game = room.getGame();
Integer tn = game.getNowTurn();
 
return tn;
}
 
 
//------------------------------------------------------------------------
// rooms/{rid}/game/turns/{tno}/questions:
 
// @GET //カードごとの疑っている人のリストを取得...は動かなくて糞
// @Path("/{rid}/game/turns/{tno}/questions")
// @Produces(MediaType.APPLICATION_JSON)
// public List<Member> getqmember(@PathParam("rid") String rid, @PathParam("tno") int tno, @FormParam("cno") int cno){
//
// RoomManager rm = RoomManager.getInstance();
// Room room = rm.getRoom(rid);
// Game game = room.getGame();
// Turn t = game.getTurn(tno);
//
// if (t == null) {
// //部屋がなければエラー
// var response = Response.status(Response.Status.NO_CONTENT);
// response.status(404).entity("部屋が存在しません");
// throw new WebApplicationException(response.build());
// }
//
// return t.getQuestions(cno);
// }
 
@POST //怪しいの切り替え
@Path("/{rid}/game/turns/{tno}/questions")
public void putMax(@PathParam("rid") String rid, @PathParam("tno") int tno, @FormParam("cno") int cno, @FormParam("nickname") String nickname){
public void changeq(@PathParam("rid") String rid, @PathParam("tno") int tno, @FormParam("cno") int cno, @FormParam("nickname") String nickname){
 
boolean on = true;
 
RoomManager rm = RoomManager.getInstance();
}
 
@PUT //オープンリストの追加
@Path("/{rid}/game/turns/{tno}/openlist")
public void setOpenList(@PathParam("rid") String rid, @PathParam("tno") int tno, @FormParam("cno")int cno){
public void setOpenList(@PathParam("rid") String rid, @PathParam("tno") Integer tno, @FormParam("cno")Integer cno){
 
RoomManager rm = RoomManager.getInstance();
Room room = rm.getRoom(rid);
Game game = room.getGame();
Turn t = game.getTurn(tno);
Cell card = game.getCell(cno);
 
card.setIsOpen(true);
}
 
}