//============================================================= // // VCF check // 2004/09/15~12/29 // 2005/06/23~ // 2006/07/09~ // 2007/01/13 // 2007/03/18~04/23 // // 2008/02/24~ add [@X ^X] //============================================================= /*  */ var HAS_LOGIN = false; var STAMP_SERIAL = 0; /*====================================== check ======================================*/ function VCFcheck( RDFAnum ){ var GemLine = "" + document.applets[ RDFAnum ].getGemLine(); //------------------- Problem's Gem var QuestionGemLine = ''; var FirstTurn = !GemLine.match( />>a1/ ); for( var Gnum=0; Gnum X 1: attack move is FIVE? 2: FIVE --> O 3: attack move is foul? 4: foul --> X 3: attack move is FOURxFOUR or OPEN-FOUR? 4: FOURxFOUR or OPEN-FOUR --> O 5: attack move is FOUR? 6: not FOUR --> X 7: If it is FOUR, get stop point from the FOUR. 8: stop point is foul? 9: If it is foul --> O 10: deffense move stop the FOUR? 11: not stop --> X 12: deffense move is foul? 13: foul --> O 14: deffense move is FOURxFOUR or OPEN-FOUR? 15: FOURxFOUR --> X 16: deffense move is FOUR? 17: If it is FOUR, next attack move will be limited. 18: go ot -1. ===========================================================================*/ var ShowGemLine = QuestionGemLine; var ShowMessage = 'ここまでの珠順は、四追いとして正しく打たれています。
(※ただし、枝道かどうかは不明) '; // var RightAnswer = false; var RightAnswer = 0; var ASnum = '-1'; var Anum; for( ASnum in AnswerSet ){ var Axp = AnswerSet[ASnum][0]; // Attack xp var Ayp = AnswerSet[ASnum][1]; var Bxp = AnswerSet[ASnum][3]; // Break xp var Byp = AnswerSet[ASnum][4]; var AttackGem = AnswerSet[ASnum][2]; var BreakGem = AnswerSet[ASnum][5]; //-------------- put Attack Gem putGem( FirstTurn,Axp,Ayp ); ShowGemLine += AttackGem; //-------------- strike back if( forcePos.length ){ if( forcePos[0]!=Axp || forcePos[1]!=Ayp ){ // strick back ShowMessage = 'ノリ返していません'; break; }else{ forcePos = []; } } //-------------- FIVE for( Anum=0; Anum<4; Anum++ ){ var pos = pileAxis2Pos( Anum, Axp, Ayp ); if( is5( PileMemo[Anum][pos[0]],pos[1], FirstTurn ) ){ RightAnswer = 1; break; } } if( RightAnswer ){ ShowMessage = '五連です'; break; } //-------------- Black FOUL if( FirstTurn && isFoul( Axp,Ayp ) ){ ShowMessage = '黒が禁手を打ってます。'; break; } //-------------- OPEN FOUR or 4x4 var BreakForce = []; if( FirstTurn ){ // black for( Anum=0; Anum<4; Anum++ ){ var pos = pileAxis2Pos( Anum, Axp, Ayp ); var get4 = is4( PileMemo[Anum][pos[0]],pos[1], FirstTurn ); if( 100 X 12: deffense move is foul? 13: foul --> O 14: deffense move is FOURxFOUR or OPEN-FOUR? 15: FOURxFOUR --> X 16: deffense move is FOUR? 17: If it is FOUR, next attack move will be limited. 18: go ot -1. */ //-------------- for White if( !FirstTurn ){ putGem( true, BreakForce[0], BreakForce[1] ); if( isFoul( BreakForce[0], BreakForce[1] ) ){ ShowMessage = '極め手の勝ち。正解です 8^-^8'; RightAnswer = 3; break; } cutGem( BreakForce[0], BreakForce[1] ); } //-------------- rigal cut FOUR if( BreakForce.length ){ if( BreakForce[0]!=Bxp || BreakForce[1]!=Byp ){ ShowMessage = '防ぎ側が四を止めていません'; break; } } //-------------- put Breaker's gem putGem( !FirstTurn, Bxp, Byp ); ShowGemLine += BreakGem; //-------------- Breaker's FOUR var getOut = 0; if( FirstTurn ){ // black var pile4 = false; for( Anum=0; Anum<4; Anum++ ){ var pos = pileAxis2Pos( Anum, Bxp, Byp ); var get4 = is4( PileMemo[Anum][pos[0]], pos[1], !FirstTurn ); if( 100" + ( moveNumber ? ('['+moveNumber+']
'+ShowMessage) : "四追いを打ってから押して下さい。" ) + "" ); document.applets[ RDFAnum ].setGemLineString( (FirstTurn?"":">>a1")+ShowGemLine ); if( RightAnswer ){ getRightAnswer( RDFAnum, RightAnswer ); } } //================================================ // show check message //================================================ function setVCFcheckMessage( RDFAnum, message ){ document.getElementById( 'RDFA_MESSAGE_BOX' + RDFAnum ).innerHTML = message; } //================================================ // show right answer //================================================ function getRightAnswer ( RDFAnum, answer ){ alert( { 1 : "棒四の勝ち", 2 : "四々の勝ち", 3 : "極め手の勝ち" }[ answer ] + "\n正解でやんす☆" ); setCleared2RDFAselecter( RDFAnum ); }