package com.ntlab.irisserver.resources;
import com.ntlab.irisserver.entities.Game;
import com.ntlab.irisserver.entities.Member;
import com.ntlab.irisserver.entities.Room;
import com.ntlab.irisserver.models.KeywordManager;
import com.ntlab.irisserver.models.RoomManager;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.Random;
@Component
@Path("/rooms")
public class TestRest implements ApplicationContextAware {
private org.springframework.context.ApplicationContext applicationContext;
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");
//メンバー設定()
int length = 0;
char[] rch;
rch = new char[4];
String rname;
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();
}
//チームシャッフル
shafflem(tr);
shafflem(dr);
shafflem(gr);
//両部屋:gameインスタンス作成,stateの初期化
String path = null;
dr.setState(2);
gr.setState(3);
try {
path = applicationContext.getResource("file:").getFile().getAbsolutePath()+"/apache-tomcat-9.0.10/webapps/irisdata/keywords.txt";
} catch (IOException e) {
e.printStackTrace();
}
String[] keywords = km.getKeywords(path);
Game dgame = new Game(dr, keywords);
Game game = new Game(gr, keywords);
//gametest部屋:絵の格納
}
}