TOP >> マニアックなプログラミング
トリッキーコードネット トリッキーなコード

【7行プログラミング/ショートコーディング】全自動オセロ対局 シミュレーション (C言語)

オセロ対局を全自動でシュミレーションするプログラムです^^;)

#include <stdio.h> #define R(x,v,w,y,z) r(i,c,x,(v>w?w:v))|r(i,c,-x,(y>z?z:y)) char n[]=" \\MD[REJQZBCIUY:<;A@^XP5]=`8cdkVbmFNWelGO9?_gf32>4on0H1i67jha";int i,c,p,s[8],m[64],y,z;d(){for(c=0;c<64;c++){printf("%s%s","┼\0●\0○"+m[c]*3,( 2-(c%8==7)-(c==63))+"\n\n");}}r(int i,int c,int d,int e){p=0;while(e-->0&&(c+= d,m[c]))if(m[c]-i)s[p++]=c;else{d=p;while(p)m[s[--p]]=i;return d;}return 0;}q( int i,int c){y=c%8,z=c/8;if(R(1,7-y,7,y,7)|R(7,y,7-z,7-y,z)|R(8,7,7-z,7,z)|R(9 ,7-y,7-z,y,z)){m[c]=i;d();}else q(3-i,c);}main(){m[28]=m[35]=1;m[27]=m[36]=2;d ();while(i++<60){q(2-i%2,n[i]-48);}}
実行結果は以下の通り~。 ※ プログラムを実行すると、自動的に試合が開始されて、最後までの局面が表示されます。 その為、ここでは結果をテキストに出力したものを貼り付けています。) ------------------
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼○●┼┼┼
┼┼┼●○┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼○●┼┼┼
┼┼┼●●┼┼┼
┼┼┼┼●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼○○○┼┼
┼┼┼●●┼┼┼
┼┼┼┼●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼●┼┼┼
┼┼┼○●○┼┼
┼┼┼●●┼┼┼
┼┼┼┼●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼●┼┼┼
┼┼┼○●○┼┼
┼┼┼○○┼┼┼
┼┼┼○●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼●┼┼┼
┼┼┼●●○┼┼
┼┼●○○┼┼┼
┼┼┼○●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼●○┼┼
┼┼┼●○○┼┼
┼┼●○○┼┼┼
┼┼┼○●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼●○┼┼
┼┼●●○○┼┼
┼┼●●○┼┼┼
┼┼┼○●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼●○┼┼
┼┼●●○○┼┼
┼○○○○┼┼┼
┼┼┼○●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼●○┼┼
┼┼●●○○┼┼
┼○●○○┼┼┼
┼┼●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼○┼●○┼┼
┼┼●○○○┼┼
┼○●○○┼┼┼
┼┼●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼○●●○┼┼
┼┼●●○○┼┼
┼○●●○┼┼┼
┼┼●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼○●●○┼┼
┼○○○○○┼┼
┼○●●○┼┼┼
┼┼●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼○●●○┼┼
┼○○○●○┼┼
┼○●●●●┼┼
┼┼●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼
┼┼○●●○┼┼
┼○○○●○┼┼
┼○○●●●┼┼
┼○●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●┼┼┼┼┼
┼┼●●●○┼┼
┼○●○●○┼┼
┼○●●●●┼┼
┼○●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●┼○┼┼┼
┼┼●○●○┼┼
┼○○○●○┼┼
┼○●●●●┼┼
┼○●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●●○┼┼┼
┼┼●●●○┼┼
┼○○●●○┼┼
┼○●●●●┼┼
┼○●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●●○┼┼┼
┼○○○○○┼┼
┼○○●●○┼┼
┼○●●●●┼┼
┼○●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●●○┼┼┼
●○○○○○┼┼
┼●○●●○┼┼
┼○●●●●┼┼
┼○●●●┼┼┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●●○┼┼┼
●○○○○○┼┼
┼●○●○○┼┼
┼○●●●○┼┼
┼○●●●┼○┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●●○┼┼┼
●○○○○○┼┼
┼●○●○○┼┼
┼○●●●○┼┼
●●●●●┼○┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼┼┼┼
┼┼●●○┼┼┼
●○○○○○┼┼
┼○○●○○┼┼
○○●●●○┼┼
●●●●●┼○┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
┼┼●●●┼┼┼
●○○●○○┼┼
┼○●●○○┼┼
○●●●●○┼┼
●●●●●┼○┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
┼┼●●●┼┼┼
●○○●○○┼┼
┼○●○○○┼┼
○●●●○○┼┼
●●●●●○○┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
┼┼●●●●┼┼
●○○●●○┼┼
┼○●●○○┼┼
○●●●○○┼┼
●●●●●○○┼
┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
┼┼●●●●┼┼
●○○●●○┼┼
┼○●●○○┼┼
○●●●○○┼┼
○●●●●○○┼
○┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○┼┼
┼○●●○○┼┼
○●●●○○┼┼
○●●●●○○┼
○┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○┼┼
┼○●●○○┼┼
○●●●○○┼┼
○●●●○○○┼
○┼┼○┼┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○┼┼
┼○●●●○┼┼
○●●●●○┼┼
○●●●●○○┼
○┼┼○●┼┼┼
┼┼┼┼┼┼┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○┼┼
┼○●●●○┼┼
○●●●●○┼┼
○●●●●○○┼
○┼┼○○┼┼┼
┼┼┼○┼┼┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○┼┼
┼○●●●●┼┼
○●●●●●●┼
○●●●●○○┼
○┼┼○○┼┼┼
┼┼┼○┼┼┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○┼┼
┼○○●●●┼┼
○●○●●●●┼
○○○●●○○┼
○┼○○○┼┼┼
┼┼┼○┼┼┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○┼┼
┼○○●●●┼┼
○●○●●●●┼
○○○●●○○┼
○┼○○●┼┼┼
┼┼┼○┼●┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●○○┼
┼○○●●○┼┼
○●○●○●●┼
○○○○●○○┼
○┼○○●┼┼┼
┼┼┼○┼●┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●●○┼
┼○○●●●●┼
○●○●○●●┼
○○○○●○○┼
○┼○○●┼┼┼
┼┼┼○┼●┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●●○┼
┼○○●●●●┼
○●○●○○○○
○○○○●○○┼
○┼○○●┼┼┼
┼┼┼○┼●┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●●○┼
┼○○●●●●┼
○●○●○●○○
○○○○●●○┼
○┼○○●●┼┼
┼┼┼○┼●┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●●○┼
┼○○●●●●┼
○●○●○●○○
○○○○○●○┼
○┼○○○○┼┼
┼┼┼○○●┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●●●●
┼○○●●●●┼
○●○●○●○○
○○○○○●○┼
○┼○○○○┼┼
┼┼┼○○●┼┼

┼┼┼┼┼●┼┼
●┼●●●●┼┼
●●○●●●●●
┼○○○○○○○
○●○●○●○○
○○○○○●○┼
○┼○○○○┼┼
┼┼┼○○●┼┼

┼┼┼┼┼●┼┼
●●●●●●┼┼
●●●●●●●●
┼○○●○○○○
○●○●●●○○
○○○○○●○┼
○┼○○○○┼┼
┼┼┼○○●┼┼

┼┼┼┼┼●┼┼
●●●●●●┼○
●●●●●●○○
┼○○●○○○○
○●○●●●○○
○○○○○●○┼
○┼○○○○┼┼
┼┼┼○○●┼┼

┼┼┼┼┼●┼┼
●●●●●●┼○
●●●●●●○○
┼○○●○●○○
○●○●●●●○
○○○○○●●●
○┼○○○○┼┼
┼┼┼○○●┼┼

┼┼┼┼┼●┼┼
●●●●●●┼○
●●●●●●○○
┼○○●○●○○
○●○●●○●○
○○○○○●○○
○┼○○○○┼○
┼┼┼○○●┼┼

┼┼┼┼┼●┼┼
●●●●●●┼○
●●●●●●○○
┼○○●○●○○
○●○●●○●○
○○○○○●●○
○┼○○○○●○
┼┼┼○○●┼┼

┼┼┼○┼●┼┼
●●●○○●┼○
●●●○●○○○
┼○○○○●○○
○●○○●○●○
○○○○○●●○
○┼○○○○●○
┼┼┼○○●┼┼

┼┼●○┼●┼┼
●●●●○●┼○
●●●○●○○○
┼○○○○●○○
○●○○●○●○
○○○○○●●○
○┼○○○○●○
┼┼┼○○●┼┼

┼┼●○┼●┼┼
●●●●○○○○
●●●○●○○○
┼○○○○●○○
○●○○●○●○
○○○○○●●○
○┼○○○○●○
┼┼┼○○●┼┼

┼┼●●●●┼┼
●●●●●○○○
●●●○●○○○
┼○○○○●○○
○●○○●○●○
○○○○○●●○
○┼○○○○●○
┼┼┼○○●┼┼

┼┼●●●●┼┼
●●●●●○○○
●●●○●○○○
┼○○○○●○○
○●○○○○●○
○○○○○○●○
○┼○○○○○○
┼┼┼○○●┼○

┼┼●●●●┼┼
●●●●●○○○
●●●○●○○○
┼○●○○●○○
○●○●○○●○
○○○○●○●○
○┼○○○●●○
┼┼┼○○●●○

○┼●●●●┼┼
●○●●●○○○
●●○○●○○○
┼○●○○●○○
○●○●○○●○
○○○○●○●○
○┼○○○●●○
┼┼┼○○●●○

○┼●●●●┼┼
●○●●●○○○
●●○○●○○○
●●●○○●○○
○●○●○○●○
○○○○●○●○
○┼○○○●●○
┼┼┼○○●●○

○○●●●●┼┼
●○○●●○○○
●●○○●○○○
●●●○○●○○
○●○●○○●○
○○○○●○●○
○┼○○○●●○
┼┼┼○○●●○

○○●●●●┼┼
●○○●●○○○
●●○○●○○○
●●●○○●○○
○●○●●○●○
○○○●●○●○
○┼●○○●●○
┼●┼○○●●○

○○○○○○○┼
●○○●●○○○
●●○○●○○○
●●●○○●○○
○●○●●○●○
○○○●●○●○
○┼●○○●●○
┼●┼○○●●○

○○○○○○○●
●○○●●○●○
●●○○●●○○
●●●○●●○○
○●○●●○●○
○○○●●○●○
○┼●○○●●○
┼●┼○○●●○

○○○○○○○●
●○○●●○●○
●●○○●●○○
●●●○●●○○
○●○●●○●○
○○○●●○●○
○┼○○○●●○
┼●○○○●●○

○○○○○○○●
●○○●●○●○
●●○○●●○○
●●●○●●○○
●●○●●○●○
●○○●●○●○
●┼○○○●●○
●●○○○●●○

○○○○○○○●
●○○●●○●○
●●○○●●○○
●●●○●●○○
●●○●●○●○
●●●●●○●○
●●●●●●●○
●●○○○●●○
------------------

わずか数行のコードを動かすだけで、上記の全局面が表示されます。

3行目の n[]には打ち筋が固定で入っており、AI(人工知能)がコーディングされているという訳ではないのですが、
・・・それを差し引いても、このコード凄いです ≡≡≡  ⊂⌒~⊃。Д。)⊃


次ページでは、人間 VS コンピュータ(AI)のオセロ対局プログラミングをご紹介します。
→ オセロAIプログラミング
トリッキーコードネット の TOPへ HOTNEWS の 総合TOPへ