|
> int s[]={3,3,3,1,1,1,4,2,0,1,2,0,3,6,0,2};main(i,k,t,b){char m[10];for(;gets(m);k='d'){for(i=0;i<8;i++){t=m[b=s[i+8]]&m[b+s[i]]&m[b+2*s[i]];if(t=='o'||t=='x')k=t;}printf("%c\n",k);}} => 182bytes int s[]={3,3,3,1,1,1,4,2,0,1,2,0,3,6,0,2};main(i,k,t,b){char m[10];for(;gets(m);k='d'){for(i=0;i<8;i++){t=m[b=s[i+8]]&m[b+s[i]]&m[b+2*s[i]];if(t=='o'||t=='x')k=t;}printf("%c\n",k);}}
kをその位置で初期化すると初回が引き分けだと私の環境では表示がおかしくなります。
sをcharにしてkの初期化位置を変えてみました。 main(i,t,b){char s[]={3,3,3,1,1,1,4,2,0,1,2,0,3,6,0,2},m[10],k='d';for(;gets(m);){for(i=0;i<8;i++){t=m[b=s[i+8]]&m[b+s[i]]&m[b+2*s[i]];if(t=='o'||t=='x')k=t;}printf("%c\n",k);}} => 177Bytes
|