javascriptをいじるのは初体験でしたが、ハマってしまいそうです^^
以下 リーバシする スプリクト^^(わざとですよ)
- var turn=0;//0黒 1 白 ターン
- var data = new Array(8*8);
- var data2 = new Array(8*8);
- var channel_g;
- var end=0;
- function event::onChannelText(prefix, channel, text){
- channel_g=channel;
- if(text.match(/^#/i)){
- cmd=""+text.match(/[a-z]+$/i);
- var ddd=text.match(/(\d)/g);
- if(ddd!=null){
- x=ddd[0];
- y=ddd[1];
- if(end==1){
- send(channel,"<color navy,silver><ゲームを再開してください>");
- return(0);
- }
- if(x>8||x==0||y>8||y==0){
- send(channel,"<color navy,silver><不正な入力です>");
- }else{
- if(putable(x-1,y-1)==0){
- send(channel,"<color navy,silver><そこには打てません>");
- }else{
- copyArr12();
- put(x-1,y-1);
- turnChange()
- if(numberOfPutable()==0){
- turnChange()
- if(numberOfPutable()==0){
- if(black_n()>white_n()){
- send(channel,"<color navy,silver><黒の勝ち>");
- }
- if(black_n()<white_n()){
- send(channel,"<color navy,silver><白の勝ち>");
- }
- if(black_n()==white_n()){
- send(channel,"<color navy,silver><引き分け>");
- }
- draw();
- end=1;
- return(0);
- }else{
- send(channel,"<color navy,silver><打つ手がないのでパス>");
- }
- }
- draw();
- }
- }
- }
- if(cmd!=null){
- if(cmd.search(/^new$/i)!=-1){
- send(channel,"<color navy,silver><ゲームを開始します>");
- newGame();
- draw();
- end=0;
- }
- if(cmd.search(/^matta$/i)!=-1){
- if(matta_ok==1){
- send(channel,"<color navy,silver><\"待った\"しました>");
- copyArr21();
- turnChange()
- draw();
- end=0;
- matta_ok=0;
- }else{
- send(channel,"<color navy,silver><\"待った\"できません>");
- }
- }
- }
- }
- }
- function newGame(){
- turn=0;
- for(ix=0;ix<8;ix++){
- for(iy=0;iy<8;iy++){
- data[(ix)*8+(iy)] = 0;
- }
- }
- data[(3)*8+(3)]=1; //1黒?
- data[(4)*8+(4)]=1; //2白
- data[(4)*8+(3)]=2;
- data[(3)*8+(4)]=2;
- }
- function draw(){
- send(channel_g,"<color white,white>,/<color gray,white>1<color white,white>,,<color gray,white>2<color white,white>,,<color gray,white>3<color white,white>,,<color gray,white>4<color white,white>,,<color gray,white>5<color white,white>,,<color gray,white>6<color white,white>,,<color gray,white>7<color white,white>,,<color gray,white>8");
- for(iy=0;iy<8;iy++){
- str="";
- str+="<color gray,white>"+(iy+1);
- for(ix=0;ix<8;ix++){
- if(data[(ix)*8+(iy)]==0){
- if(putable(ix,iy)==0){
- str+=""+"<color green,green>.<color black,green>・<color green,green>.";
- }else{
- str+=""+"<color green,green>.<color red,green>・<color green,green>."
- }
- }
- if(data[(ix)*8+(iy)]==1){
- str+=""+"<color black,green>●";
- }
- if(data[(ix)*8+(iy)]==2){
- str+=""+"<color white,green>●";
- }
- }
- if(iy==5){
- str+="<color> balck "+black_n();
- }
- if(iy==6){
- str+="<color> white "+white_n();
- }
- if(iy==7){
- if(turn==0){
- str+="<color> 黒の番です";
- }else{
- str+="<color> 白の番です";
- }
- }
- send(channel_g,str);
- }
- }
- function black_n(){
- amount=0;
- for(i=0;i<64;i++){
- if(data[i]==1){
- amount++;
- }
- }
- return(amount);
- }
- function white_n(){
- amount=0;
- for(i=0;i<64;i++){
- if(data[i]==2){
- amount++;
- }
- }
- return(amount);
- }
- function putable(x,y){
- rr=0;
- if(data[(x)*8+(y)]==0){
- if(turn==0){
- a1=2;
- a2=1;
- }else{
- a1=1;
- a2=2;
- }
- if(x!=0&&y!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x-m)*8+(y-m)]==a1){
- a=1;
- }
- if(data[(x-m)*8+(y-m)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x-m)*8+(y-m)]==0){
- break;
- }
- if(x-m==0||y-m==0){
- break;
- }
- m++;
- }
- }
- if(y!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x)*8+(y-m)]==a1){
- a=1;
- }
- if(data[(x)*8+(y-m)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x)*8+(y-m)]==0){
- break;
- }
- if(y-m==0){
- break;
- }
- m++;
- }
- }
- if(x!=7&&y!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x+m)*8+(y-m)]==a1){
- a=1;
- }
- if(data[(x+m)*8+(y-m)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x+m)*8+(y-m)]==0){
- break;
- }
- if(x+m==7||y-m==0){
- break;
- }
- m++;
- }
- }
- if(x!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x+m)*8+(y)]==a1){
- a=1;
- }
- if(data[(x+m)*8+(y)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x+m)*8+(y)]==0){
- break;
- }
- if(x+m==7){
- break;
- }
- m++;
- }
- }
- if(x!=7&&y!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x+m)*8+(y+m)]==a1){
- a=1;
- }
- if(data[(x+m)*8+(y+m)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x+m)*8+(y+m)]==0){
- break;
- }
- if(x+m==7||y+m==7){
- break;
- }
- m++;
- }
- }
- if(y!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x)*8+(y+m)]==a1){
- a=1;
- }
- if(data[(x)*8+(y+m)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x)*8+(y+m)]==0){
- break;
- }
- if(y+m==7){
- break;
- }
- m++;
- }
- }
- if(x!=0&&y!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x-m)*8+(y+m)]==a1){
- a=1;
- }
- if(data[(x-m)*8+(y+m)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x-m)*8+(y+m)]==0){
- break;
- }
- if(x-m==0||y+m==7){
- break;
- }
- m++;
- }
- }
- if(x!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x-m)*8+(y)]==a1){
- a=1;
- }
- if(data[(x-m)*8+(y)]==a2){
- if(a==1){rr=1;}
- break;
- }
- if(data[(x-m)*8+(y)]==0){
- break;
- }
- if(x-m==0){
- break;
- }
- m++;
- }
- }
- }
- return(rr);
- }
- function put(x,y){
- if(turn==0){
- a1=2;
- a2=1;
- }else{
- a1=1;
- a2=2;
- }
- if(x!=0&&y!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x-m)*8+(y-m)]==a1){
- a=1;
- }
- if(data[(x-m)*8+(y-m)]==a2){
- if(a==1){lineChange(x,y,x-m,y-m);}
- break;
- }
- if(data[(x-m)*8+(y-m)]==0){
- break;
- }
- if(x-m==0||y-m==0){
- break;
- }
- m++;
- }
- }
- if(y!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x)*8+(y-m)]==a1){
- a=1;
- }
- if(data[(x)*8+(y-m)]==a2){
- if(a==1){lineChange(x,y,x,y-m);}
- break;
- }
- if(data[(x)*8+(y-m)]==0){
- break;
- }
- if(y-m==0){
- break;
- }
- m++;
- }
- }
- if(x!=7&&y!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x+m)*8+(y-m)]==a1){
- a=1;
- }
- if(data[(x+m)*8+(y-m)]==a2){
- if(a==1){lineChange(x,y,x+m,y-m);}
- break;
- }
- if(data[(x+m)*8+(y-m)]==0){
- break;
- }
- if(x+m==7||y-m==0){
- break;
- }
- m++;
- }
- }
- if(x!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x+m)*8+(y)]==a1){
- a=1;
- }
- if(data[(x+m)*8+(y)]==a2){
- if(a==1){lineChange(x,y,x+m,y);}
- break;
- }
- if(data[(x+m)*8+(y)]==0){
- break;
- }
- if(x+m==7){
- break;
- }
- m++;
- }
- }
- if(x!=7&&y!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x+m)*8+(y+m)]==a1){
- a=1;
- }
- if(data[(x+m)*8+(y+m)]==a2){
- if(a==1){lineChange(x,y,x+m,y+m);}
- break;
- }
- if(data[(x+m)*8+(y+m)]==0){
- break;
- }
- if(x+m==7||y+m==7){
- break;
- }
- m++;
- }
- }
- if(y!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x)*8+(y+m)]==a1){
- a=1;
- }
- if(data[(x)*8+(y+m)]==a2){
- if(a==1){lineChange(x,y,x,y+m);}
- break;
- }
- if(data[(x)*8+(y+m)]==0){
- break;
- }
- if(y+m==7){
- break;
- }
- m++;
- }
- }
- if(x!=0&&y!=7){
- m=1;
- a=0;
- while(1){
- if(data[(x-m)*8+(y+m)]==a1){
- a=1;
- }
- if(data[(x-m)*8+(y+m)]==a2){
- if(a==1){lineChange(x,y,x-m,y+m);}
- break;
- }
- if(data[(x-m)*8+(y+m)]==0){
- break;
- }
- if(x-m==0||y+m==7){
- break;
- }
- m++;
- }
- }
- if(x!=0){
- m=1;
- a=0;
- while(1){
- if(data[(x-m)*8+(y)]==a1){
- a=1;
- }
- if(data[(x-m)*8+(y)]==a2){
- if(a==1){lineChange(x,y,x-m,y);}
- break;
- }
- if(data[(x-m)*8+(y)]==0){
- break;
- }
- if(x-m==0){
- break;
- }
- m++;
- }
- }
- }
- function lineChange(x1,y1,x2,y2){
- if(turn==0){
- a=1;
- }else{
- a=2;
- }
- mx=0
- my=0
- while(1){
- data[(x1+mx)*8+(y1+my)]=a;
- if(x2==x1+mx&&y2==y1+my){break;}
- if(x2-x1>0){mx++;}
- if(x2-x1<0){mx--;}
- if(y2-y1>0){my++;}
- if(y2-y1<0){my--;}
- }
- }
- function numberOfPutable(){
- amount=0;
- for(ix=0;ix<8;ix++){
- for(iy=0;iy<8;iy++){
- if(putable(ix,iy)==1){amount++;}
- }
- }
- //send(channel_g,""+amount);
- return(amount);
- }
- function turnChange(){
- if(turn==0){
- turn=1;
- }else{
- turn=0;
- }
- }
- matta_ok=0;
- function copyArr12(){
- matta_ok=1;
- for(i=0;i<64;i++){
- data2[i]=data[i];
- }
- }
- function copyArr21(){
- for(i=0;i<64;i++){
- data[i]=data2[i];
- }
- }