/* クイズスクリプト */ /* このスクリプトは名前通り、クイズを行うスクリプトです。ただし、あかねに 搭載されているような時間制限つきやモード選択など複雑な部品は一切組み込まない 極めて単純なスクリプトになっています。 クイズは4択を5問出題するタイプになっており、問題数は簡単に変更できるように なっていますが、3択や5択への変更などの面倒なことは知りません(^^;。 ちなみに、このスクリプトはあかねのクイズをベースにかなりの部分を省略して 簡単に作ったものですので、バグが潜んでいる可能性が十分に考えられます(^^;。 バグを発見した場合、ご一報ください(^^;。 */ action Quiz@( 0 ) { int Mondai_Kazu = 10; //問題数 int Shutudai = 5; //出題数 int S_Ban; //出題番号変数 int Q_Rireki[10]; //クイズ出題履歴(宣言数は問題数と合わせること) int Temp_Check; //回答した番号 String Mondai_Data[10]; //問題文格納領域(宣言数は問題数と合わせること) String Kaitou_S; //正解回答格納領域 String Kaitou_Work; //回答用作業領域 String Kaitou[4]; //回答格納領域 String Mondai; //問題 int Quiz_Work; //作業変数 int Quiz_Temp; //作業変数 int Quiz_Temp2; //作業変数 Call( "Mondai_Load" ); for( Quiz_Temp = 0; Quiz_Temp != Mondai_Kazu; Quiz_Temp = Quiz_Temp + 1) { //問題番号を順番に格納 Q_Rireki[Quiz_Temp] = Quiz_Temp; } for( Quiz_Temp = 0; Quiz_Temp != Mondai_Kazu; Quiz_Temp = Quiz_Temp + 1) { //格納した番号をランダムに入れ替えるための乱数算出 Quiz_Temp2 = Random( Mondai_Kazu ); /* 変数を入れ替える */ Quiz_Work = Q_Rireki[Quiz_Temp]; Q_Rireki[Quiz_Temp] = Q_Rireki[Quiz_Temp2]; Q_Rireki[Quiz_Temp2] = Quiz_Work; } Talk( "クリックするとクイズを開始します。\c\e" ); for( S_Ban = 0; S_Ban != Shutudai; S_Ban = S_Ban + 1) { Mondai = GetToken( Mondai_Data[S_Ban], ",", 0); Kaitou[0] = GetToken( Mondai_Data[S_Ban], ",", 1); Kaitou[1] = GetToken( Mondai_Data[S_Ban], ",", 2); Kaitou[2] = GetToken( Mondai_Data[S_Ban], ",", 3); Kaitou[3] = GetToken( Mondai_Data[S_Ban], ",", 4); Kaitou_S = Kaitou[0]; //シャッフル前に正解選択肢を定義 Talk( "\e第"+ itoa( S_Ban + 1 ) + "問\w\n" ); Talk( Mondai + "\w" ); /* ここでシャッフル */ Call( "Quiz_Shuffle" ); /* 回答を選択させる */ Choice; if( Kaitou[Temp_Check] == Kaitou_S ) { Talk( "正解です。" ); } else { Talk( "不正解です。" ); } Talk( "\c\e" ); } } /* */ action Mondai_Load@( 0 ) { Mondai_Data[0] = "問題文1,正当,誤答1,誤答2,誤答3"; Mondai_Data[1] = "問題文2,正当,誤答1,誤答2,誤答3"; Mondai_Data[2] = "問題文3,正当,誤答1,誤答2,誤答3"; Mondai_Data[3] = "問題文4,正当,誤答1,誤答2,誤答3"; Mondai_Data[4] = "問題文5,正当,誤答1,誤答2,誤答3"; Mondai_Data[5] = "問題文6,正当,誤答1,誤答2,誤答3"; Mondai_Data[6] = "問題文7,正当,誤答1,誤答2,誤答3"; Mondai_Data[7] = "問題文8,正当,誤答1,誤答2,誤答3"; Mondai_Data[8] = "問題文9,正当,誤答1,誤答2,誤答3"; Mondai_Data[9] = "問題文10,正当,誤答1,誤答2,誤答3"; } /* */ action Quiz_Shuffle@( 0 ) { //クイズの選択肢シャッフル for( Quiz_Temp = 0; Quiz_Temp < 4; Quiz_Temp = Quiz_Temp + 1 ) { /* ランダムに選出 */ Quiz_Temp2 = Random( 4 ); /* 変数を入れ替える */ Kaitou_Work = Kaitou[Quiz_Temp]; Kaitou[Quiz_Temp] = Kaitou[Quiz_Temp2]; Kaitou[Quiz_Temp2] = Kaitou_Work; } AddItem( Kaitou[0] ) { Temp_Check = 0; } AddItem( Kaitou[1] ) { Temp_Check = 1; } AddItem( Kaitou[2] ) { Temp_Check = 2; } AddItem( Kaitou[3] ) { Temp_Check = 3; } }