<<設定画面モジュール>> <<>> *引数なし *操作 **現在のセレクトボックスの選択を配列で取得 *戻り値 **選択 <<>> *引数なし *操作 **選択した人数を取得し、その数におけるデフォルトの役職組み合わせを選択済みにする。 *戻り値なし <<>> *引数 ** obj :セレクトボックスのid ** i :選択済みにしたい選択肢番号 *操作 **id:objのセレクトボックスに選択肢を作成し、i番を選択肢を選択済みにする *戻り値なし <<>> *引数なし *操作 **役職とその人数を取得し、人数選択プルダウンの選択を変更 **人数が規定の値を逸脱したら警告 *戻り値 **合計人数 <<>> *引数 **配列 *操作 **配列を、格納されている数だけ添字を格納した配列に変換する(今はalluserを格納した添字0は除外) ***例 array1 = [7,2,1,1,3] ⇒ array2 = [1,1,2,3,4,4,4] *戻り値 **変換後の配列 <<>> *引数 **配列 *操作 **配列をランダムに入れ替える **配列をカンマ区切りの一つの文字列に変換 ***例  array = [0,0,1,2,3,3,3] ⇒ array = [1,0,3,2,3,3,0] ⇒ var = "1,0,3,2,3,3,0" *戻り値 **変換後の文字列 <<>> *引数 **var1 : 人数の合計値 **array : セレクトボックスの選択を格納した配列 *操作 **ゲームを開始できる設定状況かチェック **開始可能ならページ遷移 **不可能ならエラー表示 *戻り値 **部屋をつくる条件が満たされた ⇒1 **満たされない ⇒0 <<プログラム>> <<>>


  
    
    newroom
    

  
    
    
  
  
    
    
    






新しい部屋を作ります




参加人数は


1 赤ずきん
2 パンずきん
3 エスパーずきん
4 ゴーストずきん
5 スーパーずきん
6 サイコずきん
7 ウルフずきん




決定

 





<>
var NRcharaDef = [  //デフォルト数
                    //全体数 あか パン エスパー ゴースト スーパー サイコ ウルフ  
                     
	               [0, 0,0,0,0,0,0,0],
	               [4, 1,1,1,0,0,0,1],
	               [5, 2,1,1,0,0,0,1],
	               [6, 2,1,1,0,0,1,1],
	               [7, 3,1,1,0,0,1,1],
	               [8, 1,1,1,1,1,1,2],
	               [9, 2,1,1,1,1,1,2],
	               [10,3,1,1,1,1,1,2]
                  ];

var socketio = io.connect();

function main(){
  var NRchara = NRselectNUM();
  var NRsum = NRchange2();
  var NRprovarray = NRconversion1(NRchara);
  var NRvar = NRconversion2(NRprovarray);
  var check = NRdecide(NRsum , NRchara);
  if(check == 1){
    socketio.emit("shuffle", {value: NRvar});
  }
}

function NRselectNUM(){
  var NRchara = [ 
                        document.getElementById("NRselect1").selectedIndex,//alluser
                        document.getElementById("NRselect2").selectedIndex,//aka
                        document.getElementById("NRselect3").selectedIndex,//pan
                        document.getElementById("NRselect4").selectedIndex,//espa-
                        document.getElementById("NRselect5").selectedIndex,//go-suto
                        document.getElementById("NRselect6").selectedIndex,//su-pa-
                        document.getElementById("NRselect7").selectedIndex,//saiko
                        document.getElementById("NRselect8").selectedIndex//uruhu
                ];
  return NRchara;
}

function NRchange1(){
  var NRall = document.getElementById("NRselect1").selectedIndex;
  for(var i=0;i<8;i++){
    if(NRall == i){
      NRchara0 = NRcharaDef[i];
    }
  }
  
  NRcreatselect("NRselect2",1);
  NRcreatselect("NRselect3",2);
  NRcreatselect("NRselect4",3);
  NRcreatselect("NRselect5",4);
  NRcreatselect("NRselect6",5);
  NRcreatselect("NRselect7",6);
  NRcreatselect("NRselect8",7);

  document.getElementById("dec").innerHTML = "
"; } function NRcreatselect(obj,i){ var NRselect = document.getElementById(obj); for(var j=0;j<10;j++){ if(obj != "NRselect2" && obj != "NRselect8" && j==2){ break; } NRselect.options[j] = new Option(j); if(j == NRchara0[i]){ NRselect.options[j].selected = true; } } } function NRchange2(){ var NRchara = NRselectNUM(); var NRsum1 = 0,NRsum2 = 0; for(var i=1;i<8;i++){ NRsum1 += NRchara[i]; if(i<6){ NRsum2 += NRchara[i]; } } if(NRsum1 >= 4 && NRsum1 <= 10){ document.getElementById("NRselect1").selectedIndex = NRsum1 - 3; document.getElementById("dec").innerHTML = "
"; return NRsum2; } else{ document.getElementById("dec").innerHTML = "設定可能な参加人数は4~10人です"; return -1; } } function NRconversion1(NRchara){ var i=0; var JOchara=[]; for(var j=1;j0;i--){ var j = Math.floor( Math.random() * ( i+1 ) ); NRprovvalue = NRprovarray[j]; NRprovarray[j] = NRprovarray[i] NRprovarray[i] = NRprovvalue; } var NR=''; for(var i=0;i= NRsum){ message.innerHTML = "村人の半数以上をウルフが占めています"; return 0; } else{ message.innerHTML = "ユーザー登録に移行します"; window.location ="user.html"; return 1; } }