独りでマルバツゲーム(三目並べ)を行うプログラムです。
この「独りで」というのが曲者で、オセロAIプログラミング のような「人間 VS コンピュータ(AI)」ではなく、「一人二役」になって三目並べを行いますw
#include <stdio.h>
long k,b=0,z[]={0x15,0x1041,0x10101,0x1110};char s[]=" 012";int h,i,j,l;int d(
long a,long b){return ((a&b)==b);}main(){for(l=0;l<9;l++){puts("\n 012");for(i
=0;i<3;i++){s[0]=i+'0';for(j=0;j<3;j++)s[j+1]=" xo"[b>>(i*6+j*2)&3];puts(s);}
if(d(k=(b>>(h=l%2)),z[0])||d(k>>6,z[0])||d(k>>12,z[0])||d(k,z[1])||d(k>>2,z[1]
)||d(k>>4,z[1])||d(k,z[2])||d(k,z[3])){puts("x won\0o won"+h*6);exit();}puts(
"o?\0x?"+h*3);scanf("%d,%d",&j,&i);b+=(2L-h)<<(i*6+j*2);}}
【プログラムの使い方】
・3x3のマス内に、「o」と「x」のコマを交互に置いて行きます。
・コマを置く場所は、座標で指定します。⇒ X座標,Y座標(Enterキー)
・エラーチェックはしていないので悪しからず。
【プログラムの画面説明】
実行結果は以下の通り~。
コード解説は、いずれ気が向いたらということで、
とりあえずメモ .〆(・ω・` )カキカキ