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;
    }

    @PUT
    @Path("/test")
    public void putTestRoom(){
        KeywordManager km = KeywordManager.getInstance();
        RoomManager rm = RoomManager.getInstance();
        rm.createTestRoom();

        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++){
                Random random = new Random();
                rch[i] = (char)(random.nextInt(26) + 'a');
            }
            rname = new String(rch);
            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");
            }
        }

        //両部屋: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部屋:絵の格納

    }


}