04/09/29 06:02:00
>>21のX軸Y軸入力というのが手間だったので入力部分を追加したインターフェース改造版です。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>/*処理系によりconio.h→console.h*/
char*h="・○●☆\n";int p,t,a,d,c,v,i,e=10,s,o,z[255]={0},m[90]={0},r[]={-10,-
9,-8,-1,1,8,9,10};void k(){if(m[p]==0)for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==
3-t;v+=r[i])c++;if(c&&m[v]==t){a+=c;v=p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);
}}}void b(){system("cls");for(p=9;p<82;++p)a?a:k(),printf("%.2s",&h[m[p]*2]);}
int main(){for(50[z]=80[z]=9,54[z]=77[z]=m[40]=m[50]=t=s=i=1,52[z]=75[z]=-1,56
[z]=72[z]=-9,m[41]=m[49]=2;i<e;m[i++*9]=4);for(;;a=d=0){b();if(a)for(d=a=s=p=8
;a==8;k())if(t-2){o=e[m];for(i=0,e[m]=3;i!=13;c=(i=_getch())[z]){if(c&&e+c>9&&
e+c<81)e[m]=o,o=(e+=((e+c)%9?c:c*2))[m],e[m]=3;b();}e[m]=o,i=e/9,p=e%9+i*9;}
else++p;else if(s)s=0,printf("pass");else break;t=3-t;}return 0;}
テンキーか矢印キーで石を置く位置を指定でき、リターンキーで決定します。
この入力方式でこれよりダウンサイジングはかなり高度になってくるかと思われ。