gameをStateRestで作成するように変更 #139

Merged t-okazaki merged 2 commits into nitta-lab-2022:master from nitta-lab-2022:Game on 1 Jul 2022
Showing 3 changed files
View
12
src/main/java/com/ntlab/irisserver/entities/Game.java
package com.ntlab.irisserver.entities;
 
import com.ntlab.irisserver.models.KeywordManager;
 
import java.util.*;
 
public class Game {
private Turn nowTurn = null;//現在のターン
private DrawingController drawingController = null;
private Settings settings = null;
 
public Game(Room room) {
public Game(Room room, String[] keywords) {
 
room.setGame(this);
 
List<Member> memberList = room.getMembers();
int num = 16/memberList.size();//一人あたりが確実に採用されるイラスト枚数
int cnt = 0;
for(int i=0; i<memberList.size(); i++){
}
 
for(int i=0; i<16; i++) map.add(i);
Collections.shuffle(map);//0~15のdnoをランダムにマップに割り振る
System.out.println(map);
//r:6 b:5 g:4 d:1
for(int i=0; i<6; i++) color.add("r");
for(int i=0; i<5; i++) color.add("b");
for(int i=0; i<4; i++) color.add("g");
c.setCno(i);
c.setColor(color.get(i));
c.setDno(map.get(i));
}
 
}
 
public DrawingController getDrawingController() {
return drawingController;
View
9
src/main/java/com/ntlab/irisserver/entities/Room.java
@JsonProperty("settings")
Settings settings = new Settings();
 
@JsonProperty("game")
Game game =null;
Game game = null;
 
private Member redMaster;
private Member blueMaster;
 
}
 
}
 
public void setGame(Game game) {
this.game = game;
}
 
public Game getGame() {
return game;
}
public void deleteMember(String nick) {
members.remove(nick);
}
 
 
public int getState() {
return state;
}
 
public void setState(int state){
this.state=state;
if(state==2) {
game = new Game(this);
}
}
 
public void changeState(){
state += 1;
View
24
src/main/java/com/ntlab/irisserver/resources/StateRest.java
package com.ntlab.irisserver.resources;
 
import com.ntlab.irisserver.entities.Game;
import com.ntlab.irisserver.models.KeywordManager;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import com.ntlab.irisserver.entities.Room;
import com.ntlab.irisserver.models.RoomManager;
 
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.IOException;
 
 
@Component
@Path("/rooms")
 
public class StateRest {
public class StateRest implements ApplicationContextAware {
private ApplicationContext applicationContext;
 
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@GET//部屋の情報を入手
 
@Path("/{rid}/state")
 
 
@Path("/{rid}/state")
 
//rid,nickname,stateを引数として持ってくる
public void putState(@PathParam("rid") String rid,@FormParam("nickname") String nickname,@FormParam("state") Integer state) {
public void putState(@PathParam("rid") String rid,@FormParam("nickname") String nickname,@FormParam("state") Integer state) throws IOException {
 
RoomManager rm = RoomManager.getInstance();
Room room = rm.getRoom(rid);
 
 
if(nickname.equals(room.ownerName)){ //nicknameがownerだった場合
room.setState(state); //部屋の情報を変更
if (state == 2) {
String path;
path = applicationContext.getResource("file:").getFile().getAbsolutePath()+"/apache-tomcat-9.0.10/webapps/irisdata/keywords.txt";
//path = "C:\\Users\\student\\IdeaProjects\\IrisServer\\src\\main\\java\\com\\ntlab\\irisserver\\tmp\\keywords.txt";
KeywordManager km = KeywordManager.getInstance();
String[] keywords = km.getKeywords(path);
Game game = new Game(room, keywords);
}
}
}