//=========================================================== // Web/Real-time Playing Board System for Renju // 2004/09/30~ // 2005/04/08~ // 2005/12/30~ //=========================================================== /*  */ //=========================================================== // openings name // 2006/01/10 // 2007/02/23 //=========================================================== var OPENINGs_LIST = { DIRECT : { 1 : { TITLE : '寒星', SHAPE : 'A1HHa2HGA3HF' }, 2 : { TITLE : '渓月', SHAPE : 'A1HHa2HGA3IF' }, 3 : { TITLE : '疎星', SHAPE : 'A1HHa2HGA3JF' }, 4 : { TITLE : '花月', SHAPE : 'A1HHa2HGA3IG' }, 5 : { TITLE : '残月', SHAPE : 'A1HHa2HGA3JG' }, 6 : { TITLE : '雨月', SHAPE : 'A1HHa2HGA3IH' }, 7 : { TITLE : '金星', SHAPE : 'A1HHa2HGA3JH' }, 8 : { TITLE : '松月', SHAPE : 'A1HHa2HGA3HI' }, 9 : { TITLE : '丘月', SHAPE : 'A1HHa2HGA3II' }, 10 : { TITLE : '新月', SHAPE : 'A1HHa2HGA3JI' }, 11 : { TITLE : '瑞星', SHAPE : 'A1HHa2HGA3HJ' }, 12 : { TITLE : '山月', SHAPE : 'A1HHa2HGA3IJ' }, 13 : { TITLE : '遊星', SHAPE : 'A1HHa2HGA3JJ' }, 14 : { TITLE : '大寒星', SHAPE : 'A1HHa2HGA3HE' }, 15 : { TITLE : '大渓月', SHAPE : 'A1HHa2HGA3IE' }, 16 : { TITLE : '外渓月', SHAPE : 'A1HHa2HGA3JE' }, 17 : { TITLE : '大疎星', SHAPE : 'A1HHa2HGA3KE' }, 18 : { TITLE : '外残月', SHAPE : 'A1HHa2HGA3KF' }, 19 : { TITLE : '大残月', SHAPE : 'A1HHa2HGA3KG' }, 20 : { TITLE : '大金星', SHAPE : 'A1HHa2HGA3KH' }, 21 : { TITLE : '大新月', SHAPE : 'A1HHa2HGA3KI' }, 22 : { TITLE : '外新月', SHAPE : 'A1HHa2HGA3KJ' }, 23 : { TITLE : '大瑞星', SHAPE : 'A1HHa2HGA3HK' }, 24 : { TITLE : '大山月', SHAPE : 'A1HHa2HGA3IK' }, 25 : { TITLE : '外山月', SHAPE : 'A1HHa2HGA3JK' }, 26 : { TITLE : '大遊星', SHAPE : 'A1HHa2HGA3KK' } }, INDIRECT : { 1 : { TITLE : '長星', SHAPE : 'A1HHa2IGA3JF' }, 2 : { TITLE : '峡月', SHAPE : 'A1HHa2IGA3JG' }, 3 : { TITLE : '恒星', SHAPE : 'A1HHa2IGA3JH' }, 4 : { TITLE : '水月', SHAPE : 'A1HHa2IGA3JI' }, 5 : { TITLE : '流星', SHAPE : 'A1HHa2IGA3JJ' }, 6 : { TITLE : '雲月', SHAPE : 'A1HHa2IGA3IH' }, 7 : { TITLE : '浦月', SHAPE : 'A1HHa2IGA3II' }, 8 : { TITLE : '嵐月', SHAPE : 'A1HHa2IGA3IJ' }, 9 : { TITLE : '銀月', SHAPE : 'A1HHa2IGA3HI' }, 10 : { TITLE : '明星', SHAPE : 'A1HHa2IGA3HJ' }, 11 : { TITLE : '斜月', SHAPE : 'A1HHa2IGA3GI' }, 12 : { TITLE : '名月', SHAPE : 'A1HHa2IGA3GJ' }, 13 : { TITLE : '彗星', SHAPE : 'A1HHa2IGA3FJ' }, 14 : { TITLE : '大長星', SHAPE : 'A1HHa2IGA3KE' }, 15 : { TITLE : '外峡月', SHAPE : 'A1HHa2IGA3KF' }, 16 : { TITLE : '大峡月', SHAPE : 'A1HHa2IGA3KG' }, 17 : { TITLE : '大恒星', SHAPE : 'A1HHa2IGA3KH' }, 18 : { TITLE : '大水月', SHAPE : 'A1HHa2IGA3KI' }, 19 : { TITLE : '外水月', SHAPE : 'A1HHa2IGA3KJ' }, 20 : { TITLE : '大流星', SHAPE : 'A1HHa2IGA3KK' }, 21 : { TITLE : '外嵐月', SHAPE : 'A1HHa2IGA3JK' }, 22 : { TITLE : '大嵐月', SHAPE : 'A1HHa2IGA3IK' }, 23 : { TITLE : '大明星', SHAPE : 'A1HHa2IGA3HK' }, 24 : { TITLE : '大名月', SHAPE : 'A1HHa2IGA3GK' }, 25 : { TITLE : '外名月', SHAPE : 'A1HHa2IGA3FK' }, 26 : { TITLE : '大彗星', SHAPE : 'A1HHa2IGA3EK' } } }; //======================================== // get Opening Name // return [ +-num, name ] //======================================== function getOpening( GemLine ){ with( OPENINGs_LIST ){ for( var Onum in DIRECT ){ if( GemLine.match( new RegExp( DIRECT[ Onum ].SHAPE ) ) ){ return { NUMBER : parseInt( Onum ), NAME : DIRECT[ Onum ].TITLE }; } } for( var Onum in INDIRECT ){ if( GemLine.match( new RegExp( INDIRECT[ Onum ].SHAPE ) ) ){ return { NUMBER : -parseInt( Onum ), NAME : INDIRECT[ Onum ].TITLE }; } } } return { NUMBER : 0, NAME : "" }; } function getOpeningNumber( GemLine ){ with( OPENINGs_LIST ){ for( var Onum in DIRECT ){ if( GemLine.match( new RegExp( DIRECT[ Onum ].SHAPE ) ) ){ return( parseInt( Onum ) ); } } for( var Onum in INDIRECT ){ if( GemLine.match( new RegExp( INDIRECT[ Onum ].SHAPE ) ) ){ return( -parseInt( Onum ) ); } } } return( 0 ); } function getOpeningName( GemLine ){ with( OPENINGs_LIST ){ for( var Onum in DIRECT ){ if( GemLine.match( new RegExp( DIRECT[ Onum ].SHAPE ) ) ){ return( DIRECT[ Onum ].TITLE ); } } for( var Onum in INDIRECT ){ if( GemLine.match( new RegExp( INDIRECT[ Onum ].SHAPE ) ) ){ return( INDIRECT[ Onum ].TITLE ); } } } return( "" ); var OpeningList = OPENING_NAME_LIST; OpeningList = OpeningList[0][0].concat( OpeningList[0][1] ).concat( OpeningList[1][0] ).concat( OpeningList[1][1] ); var OpeningShapeSet = ( OPENING_SHAPE_LIST[0][0].concat( OPENING_SHAPE_LIST[0][1] ) ).concat( OPENING_SHAPE_LIST[1][0].concat( OPENING_SHAPE_LIST[1][1] ) ); var Gnum; var TransString1 = "ABCDEFGHIJKLMNO"; var TransString2 = "ONMLKJIHGFEDCBA"; for(var Onum in OpeningShapeSet){ for(var Mnum=0;Mnum<8;Mnum++){ var Pat=OpeningShapeSet[Onum]; if(Mnum&1){ Pat = Pat.substr(0,6)+Pat.charAt(7)+Pat.charAt(6)+Pat.substr(8,2)+Pat.charAt(11)+Pat.charAt(10); } if(Mnum&2){ Pat = Pat.substr(0,6)+TransString2.charAt(TransString1.indexOf(Pat.charAt(6)))+Pat.charAt(7)+Pat.substr(8,2)+TransString2.charAt(TransString1.indexOf(Pat.charAt(10)))+Pat.charAt(11); } if(Mnum&4){ Pat = Pat.substr(0,6)+Pat.charAt(6)+TransString2.charAt(TransString1.indexOf(Pat.charAt(7)))+Pat.substr(8,2)+Pat.charAt(10)+TransString2.charAt(TransString1.indexOf(Pat.charAt(11))); } if( GemLine.indexOf(Pat)!=-1){ return([ parseInt(Onum)+1, OpeningList[Onum] ]); } } } return([0,"?"]); } //======================================== // change board size radio bottuns //======================================== function makeTagChangeRDFAsize( minSpan, maxSpan, useForm, RDFAobj ){ with( RDFAobj ){ var RDFAnumber = NUMBER; var mode = MODE; var hasAxis = AXIS; } var tagString = ""; if( useForm ){ tagString += "
"; }else{ tagString += "
"; } for( var Cnum = minSpan; Cnum <= maxSpan; Cnum += 2 ){ tagString += "" + ""; } if( useForm ){ tagString += ""; }else{ tagString += "
"; } return tagString; }