Newer
Older
IrisServer / src / main / java / com / ntlab / irisserver / resources / TestRest.java
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[3];
        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);
        dr.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部屋:絵の格納

    }


}