テトリス
Colin Fahey
1. ソフトウェア
2. はじめに
この記事は、コンピュータで再生する方法について説明し、クラシックのビデオゲームテトリス委員会で就学許可証の情報を参照するには、良い行動を決定し、これらの操作を実行します。
この記事はソフトウェアが含まれてテトリスをリアルタイムで再生可能です。
本ソフトウェアには、最高のReal - Timeとテトリス-再生アルゴリズムをパブリックドメインです。
この記事のルールを定義する「標準テトリス」は、仕様書に基づいて、元の1986事前に商用のバージョンのテトリスは、パーソナルコンピュータ(PC)です。
で2003では、ソフトウェアに含まれて使用されるこの記事は、コンピュータを有効にするにテトリスを再生する別のコンピュータ上で実行されています。
平凡なUSBビデオカメラを使用してコンピュータを有効にして、他のコンピュータの画面を「参照」してください。
委員会は、リレーを有効にするインターフェイスを介して制御するRS-232 「キー」を「押し」て、コンピュータのキーボードの上に、ほかのコンピュータです。
従って、最初のコンピュータには、 2番目の関係をコンピュータでは、典型的な人間のようにしてコンピュータのプレイヤーとの関係を再生するときはテトリスし、ゲームの状態が知られて見ているだけの画面、およびプレイヤーの行動は、キーボードを介してのみで開始です。
このデモの構成を確立してコンピュータで再生テトリスよりましだ人間は、 Real - Timeとテトリス演奏されて通常の条件です。
3. の歴史をテトリス
で1985 、コンピュータエンジニアがAlexey PajitnovとDmitry Pavlovskyは、 Computing Center of the Russian Academy of Sciencesです。

Dorodnicyn Computing Centreは、 Russian Academy of Sciences
Dmitryに興味がありました。 Alexeyと病みつきにコンピューターゲームを開発販売を行っています。
彼らのテストするいくつかの異なるゲームです。
触発されたAlexeyは、古代ギリシャのパズルゲーム、 Pentaminos 、パズルに関わる作品は5つの正方形の手配します。
Alexeyの手配を考えると、アイデアを作品としてPentamino下落して彼らには長方形のカップ、しかし実感しては、 12平方形の異なる5つのビデオゲームがあまりにも複雑なためです。
7 「tetramino」作品Alexeyに切り替えて使用して、各製の4つの正方形です。
で1985.6 、 Alexey Pajitnovプログラム上での最初のバージョンのテトリスElectronica 60です。

Dmitry Pavlovsky 、 Alexey Pajitnov 、およびテトリスです。
で1985-1986 、 Vadim Gerasimovは、 16歳の高校生のコンピュータの天才アカデミーwho勤務して、実装をIBM PCテトリスMS-DOSオペレーティングシステムを実行している。

1987-1988の導入の画面ではプレリリースのテトリスを商業PC

ゲームのプレイ画面で1987-1988のプレリリーステトリスを商業PC
1987した後、地球の周りに広がるテトリスです。
The Tetris Company, LLC 、所有してテトリス商標です。
4. プロジェクト触発さテトリス
4.1 0次元テトリス
まだ開発された。
4.2 1次元テトリス
Ziga Hajdukovicは1次元のテトリス開発が可能なソフトウェアを、インターネットブラウザで再生される。
1次元Ziga Hajdukovicテトリスも開発し、携帯電話用ソフトウェアプラットフォームを使用してJava J2MEです。
4.3 2次元テトリス
すべての従来のテトリスの亜種がこのカテゴリにします。
このセクションで興味深いの亜種が含まれています。
4.3.1 最大のゲームまでテトリス: Delft University of Technology (1995)

テトリスプレイは、建物; 2000 m^2表面積; Delft University of Technology (1995)

テトリスプレイは、建物; 2000 m^2表面積; Delft University of Technology (1995)
4.3.2 別のテトリスゲームのプレイは、建物: Brown University (2000)

テトリスを使用してゲームを表示するには、 Windowsのライトの建物Brown University (2000.4-200.5) http://bastilleweb.techhouse.org
「と思うことはほとんど信じられない一日だけで私が想像する私の人生のことです。スティーブジョブいつものようによると、この旅は、報酬を要求します。」
「それは私考えるプロジェクトに我々は先頭で大学に入学した。 undoできることはほとんど他の人々が考えることはない。」
Steve Wozniak (2000)
4.3.3 インターネットブラウザの試合でMIT 「グリーンビル」のイメージ

インターネットブラウザVadim Gerisimov'sテトリス
このインターネットブラウザは、作成されたその他のVadim Gerasimovテトリスです。
このインターネットブラウザ「Green」テトリスには、キャンパス内の建物のMITです。
このテトリスその他の9つのカラムのみが、標準の10列の代わりにします。
その他のプレゼントこのテトリスの新しい作品をランダムな方向性があります。
who Vadim Gerasimovは、人は、コンピュータのコードを書いたのPCのバージョンのテトリスで1986です。
Vadim Gerasimovは博士号研究は、 MIT Media Laboratory中1994-2003 、多くの興味深いプロジェクトに取り組んでいます。
4.3.4 マイクロコントローラベースのPIC16F84 12 MHzテトリスNTSC / PALビデオゲーム

マイクロコントローラベースのPIC16F84 12 MHzテトリスNTSC / PALビデオゲーム
上記のイメージを示してNTSC / PALビデオ出力PIC16F84 12 MHz産生されるマイクロコントローラRickard Guneeで書かれたソフトウェアを実行する1998です。
ビデオ信号が生成されたソフトウェア制御のデジタル出力を提供します。
4.3.5 テトリスを「scopetris」オシロスコープLars Pontoppidan (2007.8)

テトリスを「scopetris」オシロスコープLars Pontoppidan (2007.8)
Lars Pontoppidan書いたコードは、次のAtMega32マイクロコントローラ、および追加されました単純なアナログ回路、テトリスのバージョンを作成するには、オシロスコープ上で再生することがあります。
AtMega32特定のレジスタは、 8ビットマイクロコントローラの制御出力信号、および、通過するときに「R-2R」電気抵抗回路をデジタルアナログ変換(D/A) 、その結果のアナログ信号を制御することは、オシロスコープ(x,y)座標ビーム(ときに、オシロスコープのは、 「X-Yモードに」設定して) 。
YouTubeビデオ:
FLVビデオ:
4.3.6 難読化コードテトリス: C / Unix
は、次の「1989 IOCCC Best Game」が授与されます。
long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
=0,i=276,j,k,q[276],Q[276],*n=q,*m,x=17,f[]={7,-13,-12,1,8,-11,-12,-1,9,-1,1,
12,3,-13,-12,-1,12,-1,11,1,15,-1,13,1,18,-1,1,2,0,-12,-1,11,1,-12,1,13,10,-12,
1,12,11,-12,-1,1,2,-12,-1,12,13,-12,12,13,14,-11,-1,1,4,-13,-12,12,16,-11,-12,
12,17,-13,1,-1,5,-12,12,11,6,-12,12,24};u(){for(i=11;++i<264;)if((k=q[i])-Q[i]
){Q[i]=k;if(i-++I||i%12<1)printf("\033[%d;%dH",(I=i)/12,i%12*2+28);printf(
"\033[%dm "+(K-k?0:5),k);K=k;}Q[263]=c=getchar();}G(b){for(i=4;i--;)if(q[i?b+
n[i]:b])return 0;return 1;}g(b){for(i=4;i--;q[i?x+n[i]:x]=b);}main(C,V,a)char*
*V,*a;{h[3]=1000000/(l=C>1?atoi(V[1]):2);for(a=C>2?V[2]:"jkl pq";i;i--)*n++=i<
25||i%12<2?7:0;srand(getpid());system("stty cbreak -echo stop u");sigvec(14,v,
0);t();puts("\033[H\033[J");for(n=f+rand()%7*4;;g(7),u(),g(0)){if(c<0){if(G(x+
12))x+=12;else{g(7);++w;for(j=0;j<252;j=12*(j/12+1))for(;q[++j];)if(j%12==10){
for(;j%12;q[j--]=0);u();for(;--j;q[j+12]=q[j]);u();}n=f+rand()%7*4;G(x=17)||(c
=a[5]);}}if(c==*a)G(--x)||++x;if(c==a[1])n=f+4**(m=n),G(x)||(n=m);if(c==a[2])G
(++x)||--x;if(c==a[3])for(;G(x+12);++w)x+=12;if(c==a[4]||c==a[5]){s=sigblock(
8192);printf("\033[H\033[J\033[0m%d\n",w);if(c==a[5])break;for(j=264;j--;Q[j]=
0);while(getchar()-a[4]);puts("\033[H\033[J\033[7m");sigsetmask(s);}}d=popen(
"stty -cbreak echo stop \023;sort -mnr -o HI - HI;cat HI","w");fprintf(d,
"%4d from level %1d by %s\n",w,l,getlogin());pclose(d);}
4.3.7 難読化コードテトリス: Perlコード
テトリスをPerlは、次のは、通訳: Perltris (バージョン20050717 ) Sean Adamsです。
#!/usr/bin/perl
$_='A=15; B=30; select(stdin); $|=1; select(stdout);$|=1; system
"stty -echo -icanon eol \001"; for C(split(/\s/,"010.010.010.010
77.77 022.020.020 330.030.030 440.044.000 055.550.000 666.060.".
"000")){D=0;for E(split(/\./,C)){F=0;for G(split("",E)){C[P][F++
][D]=G} D++}J[P]=F; I[P++] =D}%L=split(/ /,"m _".chr(72)." c 2".
chr(74)." a _m");sub a{for K(split(/ /,shift)){(K,L)=split(/=/,K
);K=L{K};K=~s/_/L/; printf "%c[K",27}}sub u{a("a=40");for D(0..B
-1){for F(0..A-1){M=G[F][D];if(R[F][D]!=M) {R[F][D]=M;a("m"."=".
(5+D).";".(F*2+5)); a("a=".(40+M).";" .(30+M));print " "x2}}}a(
"m=0;0 a=37;40")}sub r{(N)=@_;while(N--) {Q=W;W=O=H;H=Q;for F( 0
..Q-1){for D(0..O-1) {Q[F][D]=K[F][D]}}for F(0..O-1){for D(0..Q-
1){K[F][D]= Q[Q-D-1][F]}}}}sub l{for F(0..W-1){for D(0..H-1){(K[
F][D]&& ((G[X+F][Y+D])|| (X+F<0)||(X+F>=A)|| (Y+D>=B)))&& return
0}}1}sub p{for F(0..W-1){for D(0..H-1){(K[F][D]>0)&&(G[X+F][Y+D]
=K[F][D]) }}1}sub o{for F(0..W-1){for D(0..H-1){(K[F][D]>0)&&(G[
X+F][ Y+D]=0)}}}sub n{C=int(rand(P)) ;W=J[C];H=I[C];X=int(A/2)-1
;Y=0;for F(0..W-1){for D(0..H-1){K[F][D]= C[C][F][D]}}r(int(rand
(4)));l&&p}sub c{d:for(D=B;D>=0;D--){for F(0..A-1){G[F][D]||next
d}for(D2=D;D2>=0; D2--){for F(0..A-1){G[F][D2]= (D2>1)?G[F][D2-1
]:0; }}u;}}a ("m=0;0 a=0;37;40 c");print "\n\n".4x" "." "x(A-4).
"perltris\n".(" "x4)."--"xA."\n".((" "x3)."|"." "x(A*2)."|\n")xB
.(" "x4). "--"xA."\n";n;for(;;) {u;R=chr(1); (S,T)=select(R,U,V,
0.01);if(S) {Z=getc;}else {if($e++>20){Z=" ";$e=0;}else{next;} }
if(Z eq "k"){o;r(1);l||r(3);p}; if(Z eq "j"){o;X--;l||X++;p}; if
(Z eq "l"){o;X++;l||X--;p};if(Z eq " "){o;Y++;(E=l)||Y--;p;E|| c
|c|c|c|c|n||goto g;};if(Z eq "q"){last;}}g: a("a=0 m=".(B+8).";0
" ); system "stty sane"; '; s/([A-Z])/\$$1/g; s/\%\$/\%/g; eval;
4.3.8 テトリスMozilla SVG
Scalable Vector Graphics (SVG)は、グラフィカルなオブジェクトを使用して、標準のXMLを記述します。

Mozilla SVGテトリス:テトリスScalable Vector Graphics (SVG)説明書を使用して実装
4.3.9 テトリスGoogle 「widget」
Google 、 Yahoo! 、およびMicrosoft 、およびその他の企業は、インターネットベースのソフトウェアが昇格という名前のミニチュア「widgets」には、通常いくつかの使用を特徴とする、動的なデータをインターネット上で利用できる。
1つは、このようなGoogleテトリスwidget利用できるゲームです。
かわいいは、次の例では、迷惑な方法がありますが、図形を回転さ:

テトリスGoogle 「widget」
他のGoogle widgets :
4.3.10 MIT研究論文: 「Tetris is Hard, Even to Approximate」 (2002)
研究開発ドキュメントは、次の証拠を手に入れるには、その他のは、特定の種類のテトリス「NP -完了」します。
Erik D. Demaine 、 Susan Hohenberger 、およびDavid Liben-Nowell 、 「Tetris is Hard, Even to Approximate」 、 Technical Report MIT-LCS-TR-865 、 Massachusetts Institute of Technology 、 2002.10.21です。
「NP -完全に」は、分類の時間、コストとスペースコストをするアルゴリズムです。
他の分類「P」と「NP」含まれています。
に分類「NP -完了」を意味して、いくつかの小型サイズよりも大きい問題が発生、このアルゴリズムは、思いも寄らない解決策を見つけて、お好みの量の実用的な時間や空間です。
4.3.11 研究開発ドキュメント: 「Applying reinforcement learning to Tetris」
は、次の紙、公開2005.5.30 、 Donald Carrは、コンピュータサイエンス学部でRhodes University 、南アフリカ、プレゼントのアプリケーションの「強化学習」をテトリスです。
4.3.12 テトリススカート(2007.11)

テトリススカート(2007.11)
スカートのテトリスで作成さ「Lucy」 ( 「hissyfitoly」をetsy.com )前2007.11です。
創作者からの説明のスカート(提供を販売してetsy.com ) :
"Okay, so I was a secret, closet Tetris fanatic from about, oh, 1993 to 1996. It was a bitter-sweet obsession. My life wasn't so great, but I could control the stacking of a few measly blocks, [damn it]! Or could I? Video games have been coming back to haunt my dreams as of late, and I find myself stacking blocks, jumping away from a frighteningly-large Q*Bert, and slipping off of logs next to a pixellated frog. This skirt is the result of those nightmares."
このスカートに関するフォーラムのコメント:
「男がスカートを吸うテトリス」
「ahahahaha 、と思ったのと同じことです。」
「あるのは完全にダウンラインの下部に行...完了されなくなります。」 「ひどい目に遭わす」 「です。」
「存在する必要がありますスポットでの背中やフロントで長い作品はぴったり...」
「それは本当に醜いスカートかかわらずです。彼氏できませんでしたに花を買ってくれるに十分なチョコレートと私を納得させことを着用することです。」
4.3.13 テトリス段階法(2007.4)

テトリス段階法(2007.4)
「これらのことから持ってきたのTriforceで2006 ...生気のないオブジェクトは、次の世代の寸劇...テトリスです。」
局所的にキャッシュされたビデオをFlashビデオ(FLV)形式(使用VLCを再生する) :
4.3.14 陽気なテトリスのバリエーションを、日本のテレビ番組

テトリスのバリエーションを日本のテレビ番組
このビデオのセグメントから、日本のテレビ番組が含まれテトリス陽気なパターンを含む:
着陸時の作品が消える、行全体を作品と並んで(このように着陸時の完了を行) 、複数の作品の下落と同時に、不規則な形の作品は、長い作品にはあまり幅が広いに合わせて、若干のギャップ( 4 -行を防ぐ完成! ) 、 Mario的中すると死にかけている巨大なキノコとなる!は、残りの破片小片を破壊した後の行は、重力の上方への最上部に浮遊する作品など
局所的にキャッシュされたビデオをFlashビデオ(FLV)形式(使用VLCを再生する) :
4.3.15 「The Original Human TETRIS Performance by Guillaume Reymond」 (2007.11)

「The Original Human TETRIS Performance by Guillaume Reymond」 (2007.11)
からの説明書をYouTube :
「TETRISプレイをリアルに座って人類の講堂:」
TETRISは、第4回ビデオ性能をGAME OVER Project 、指示されたスイスのアーティストGuillaume REYMOND ( NOTsoNOISYクリエイティブ代理店) 。
このビデオはストップモーション「LES URBAINES」ショットとプレイを
http://www.urbaines.chは、パレデフェスティバルrumine ( lausanne 、スイス)をNovember 24th 2007です。
局所的にキャッシュされたビデオをFlashビデオ(FLV)形式(使用VLCを再生する) :
4.3.16 2.5次元テトリス
という用語が使用され、ここを「2.5次元」非直交を意味する対象は、二次元のバージョンのテトリスは、いくつかの厚さで3番目のディメンションです。
( 「tetris3d」を見つけるのリンク「F7: GAMES」です。 )
4.4 3次元テトリス

Linux / GTKバージョン
三次元テトリスJavaアプレットの形では、インターネットブラウザ:
三次元テトリスをWindowsオペレーティングシステム:
4.5 4次元テトリス

Greg Kaiser's 「hypertetris」 (1996) : 4次元テトリス
で[1996], [...] 、 4つの次元をまとめるGreg Kaiserその他の上の古典的なゲームです。
IrisGL (a.k.a. igl)彼を使用して作成する作業は、ハードを再生する場合、ゲームを使用して4つのサブ画面に置き換えて描いて異なる側面を三次元空間全体のゲームです。
[ため]そこには簡単に[理解] 4つの次元オブジェクトを描く方法は、 2つの次元の画面で、の4つのサブ再生回数は、実用的な方法を操作すると可視化するとの翻訳は、作品を通してローテーションの4つの外形寸法図( x,y,z,w 、ゲームと呼ばれる) 。
完成ではなく、元の行のブロックのように、このケースでの目標を満たす、完全なキューブは、 x,y,z subview (通常4 4 4 ) 。
subviewsが含まれ、他の「w」に配置され、デフォルトの4次元は4を10ブロック協定を締結するの長い「w」が、これらの3つのディメンション「vertical」の場合、異なる基地の(x,y), (x,z), (y,z)です。
重力の方向行為は、 「-w」ので、長期の3つの作品をsubviews 「落ちる」 「w」が含まれる、とされていない限りは移動しないでの最後の(x,y,z) subview Playerコントロールします。
それに慣れるのに時間がかかります、控えめに言ってもです。
場合によっていくつかの奇跡の忍耐力やゲームのパラメータを変更して、 1つのキューブを完了するが、それが完了した行が表示されなくては、元のテトリス、かかわらずHyperTetrisのスコアは保存されています。
Benjamin Bernard (2000)
4.6 N次元テトリス

Polytope Tetris (2003) :テトリスゲームその他の次元にN
Polytope Tetrisはn次元テトリスです。
HyperTetris触発されたプログラムでは、 Polytope Tetrisトンプレイできるように任意のテトリス数寸法です。
テトリスをプレイ3D 、 4D 、 5Dか、または他のです。
HyperTetrisはcatchier名よりもはるかにPolytope ( def )のテトリスが、私の名前を盗むことはできません。
5. 「標準テトリス」仕様
5.1 はじめに
「テトリス」の「標準」の定義には、理想的なモデルの最も重要な特徴や行動の実施をIBM-PCテトリスの最初のゲーム( circa 1986-1988 ) 。
に基づいて、理想的なモデルは、明白な意図を推察するのIBM-PCの実装の開発者は、最初のゲームのテトリスです。
たとえば、それが妥当なところを推測して、最初のIBM-PCの実装の開発者はゲームのテトリスを目的とし、各形状を選択して新しい作品「をランダムに」落ちていること、および使用するBorland Cのrand()関数の実装は単に実用的な近似意図しています。
「テトリス」の「標準」の定義を指定してそれぞれの新しい立ち下がりの形の作品は「ランダムに」選択される。
この理想的な動作に達成すべき目標を任意の実装することはできませんが、おおよその実装は、理想的な現象が発生します。
完全に実装することを実装していないにもかかわらず、 「標準」で定義されて「テトリス」は、理想の「標準テトリス」伴う客観的特性、および実装できる親密に比べ相対的によると、彼らの理念を「標準テトリス」です。
このセクションで説明し、一連の要素、行動、およびルール、これは、総称して、 「標準のテトリス」を定義します。
5.2 標準テトリス委員会
理事会は、グリッドのセルが10列、および20行、合計10 * 20 = 200細胞です。

標準テトリス委員会( 10列、 20行)
各セルのいずれかが空いている(空) 、または占領(フル) 。
5.3 標準テトリス作品
テトリス(7)標準の7つの作品には、次のような手紙の名前:
{ O, I, S, Z, L, J, T }
その手紙の名前が触発された作品の形をしています。

7つの標準テトリス作品とその「方向」
ドットで(0,0)委員会の位置(6,20)時を同じくして最初の作品が表示されます。
の最初の列の最初の「方向」を示しています。
は、次のように、単語「の向き」を使用して任意の状態を説明する作品は、国に許可セットを、反時計回りに回転することができるイベントの結果からです。
「オリエンテーション」から、特定の「向き」を変更する「I」 、 「S」か、または「Z作品」は、回転と組み合わせて使用するには、翻訳します。
したがって、 「オリエンテーション」という言葉が使用され、ここを意味するだけで何かを超える回転します。
しかし、 「オリエンテーション」を変更のみに対応してイベントを反時計回りに回転し、明確な「方向性」のサイクルの各作品近似か、またはマッチは、純粋なローテーションサイクルの結果からです。
という言葉を使用する特別な「方向」に相当するこの文脈ではほぼその言葉の意味を「回転」や「角度」 、 「方向」が使われるが、言葉の代わりに「回転」を試みをもたらすという事実をいくつかの点に注意を必要とする以上の回転を生産する可状態の結果セットのイベントから反時計回りに「回転」します。
作品は、スイッチの方向にのみ(あるいは、特定の水平または垂直に翻訳を受ける)の場合、結果の状態をこの作品はしないようにして占領(フル)細胞を超えて事項は、委員会とは重複しないようにして任意の現在の占領下の占領下の細胞が細胞は、委員会です。
(このルールは、占領下の(フル)細胞の作品はないと考えられ「細胞の占領下の」部分は、 「現在の委員会」
は、次のコメントを、任意の参照をした結果を反時計回りのイベントが行われたと仮定してこのような回転を実際に実行されると、与えられた条件を、既存の委員会の作品とします。
の「O」 (ボックス)作品は、 1つの方向だけではありませんの位置を変更して任意の占領(フル)のセルに対応して任意の反時計回りのイベントです。
の「I」 (ライン)作品には2つの可能性方向、水平方向に最初に表示されます。
交互に繰り返されるの「I」作品の間に連続する2つの方向に対応して反時計回りのイベントです。
「S」と「Z」作品は各々の2つの可能な方向性があります。
これらの作品の間にそれぞれ別の方向に対応して連続する2つのイベント反時計回りに回転します。
の「L」 、 「J」 、および「T」作品は各々 4つの方向性、およびこれらの方向については、センターの結果を単純なポイントをローテーションの形です。
最初のときに一枚のボードに表示されて、この作品には、 「主要な軸」の向きを水平にし、この作品は、委員会の上部にある。
したがって、能力のない作品が最初にその方向に変更されました。この作品必要があります。降下を1つの行にはその方向を変更する可能性を持つ。
一度に1つの行に落ちた一枚のボード上、すべての作品の方向達成できる(作品ではないと仮定しての側面にあまりにも近くには、現在の壁や山積みの作品) 。
5.4 標準Tetrisフローチャート
は、次のは、おおよそのフローチャートを、標準のTetrisゲームです。

おおよそのフローチャートを、標準のTetrisゲーム

おおよそのフローチャートを、標準のTetrisゲーム
5.5 標準Tetris作品の創作
は、次の図を示して( 4セル* 2セル)の領域で、委員会で作成したすべての作品ときに表示されます。

リージョンここで作成されたときに表示されます標準の作品Tetris
ときに最初に表示されて、新しい作品理事会、その起源を同じくし、ドットをこの図、およびこの作品に完全に含まれる斜線部分をこの図です。
ときに新しいゲームを起動すると、完全な自由落下の遅延が経過し、自由落下の繰り返しの最初の一枚が生み出されたの上部には、委員会です。
通常のゲームのプレイ中に、自由落下するときに、特定の「土地」を繰り返し作品は、完全な自由落下の遅延が経過すると、次の自由落下を繰り返し生み出された作品は、委員会の上部にします。
ときに生み出された作品は、作品のタイプを使用して、次のアルゴリズムを選択:
pieceIndex = 1 + (randomInteger % 7); // 1..7
p (= 1/7)のチャンスがあるため、定数の特定の種類の作品を選択すると、同じタイプのすべての作品が区別される確率が正確にk作品nした後、ある特定の種類の試験を二項分布以下の通り:
P(k) = (1-p)^(n-k) * p^k * ( n! / ( (n-k)! k! ) );
p = 0.0 ... 1.0;
k = 0, 1, 2, ..., n;
mean = ( n * p )
variance = ( n * p *(1-p) )
standard deviation = sqrt( variance )
私たちの7者の中から選ぶときに( 7 )作品をランダムには、特定の作品を取得する確率はp=(1/7)です。
もしそうすれば、このn=70回、例えば、就学許可証の確率を正確にk作品( 0をkの範囲でn )は、与えられた二項分布に示すように、イメージは、次のです。

二項分布をn=70 、 p=(1/7)
したがって、 1つの予測の平均は、 1つのタイプの合計点の合計数をランダムに与えられた作品、および1つの予想を計算することもできます。差異と標準偏差(分散の平方根を) :
p = (1/7):
total random standard
pieces (n) mean variance deviation
============ ======= ======== =========
70 10 8 3
700 100 85 9
7000 1000 857 29
70000 10000 8571 93
ランダムに変換するときに私たちの作品のインデックスの値を、私たちて解釈すること以下のとおり:
value piece
===== =====
1 "O"
2 "I"
3 "S"
4 "Z"
5 "L"
6 "J"
7 "T"
[ Tetrisプレ商業MS-DOSのバージョンの関数を使用してランダムな数字で提供されてBorland Pascalコンパイラを指定します。
その機能を使用される、 32ビットのステート変数です。
したがって、乱数のシーケンスを2^32は異なる値に制限されています。
したがって、原則として、プレイヤーが発見、おそらく10個ドロップした後、正確な場所に数字の集合を2^32の現在の状態に対応して、ゲームです。
Tetrisシミュレーションを伴って実行する場合は、固定のシーケンス2^32作品は、最適な意思決定入力し、すべての場所にできるのシーケンスが見つかりました。
(十分な機会があるようだが委員会の委員会を、完全に空の状態に、先を取得できるように同期して計算済みの最適解パスを入力します。 )
の危険性を乱数生成器を使用して、簡単なシミュレーションを目的とし、最適な解決策を見つける問題は、解決策は、特定のパスを最適化のみを選択されたシンプルな空間の問題乱数生成器です。 ]
5.6 標準テトリスコントロール
ゲームのプレイ中は、次の入力が利用可能です:
left : request to translate left by one column
right : request to translate right by one column
rotate : request to do a counterclockwise rotation
drop : request to instantly drop the piece
すべての入力に発効するの立ち上がりエッジから、正の入力( ONボタンを押すと報道とは反対に、ボタンをクリック発売) 。
ボタンを押すときに発生する場合は、この数としてカウントされるのリクエストです。
所蔵するボタンを押し、特定の時間を超える結果となるかもしれない「の自動繰り返し」機能をキーボードでは、生成の新しいボタンの押下-しかし、この機能は、ゲームエンジンに外付けすることです。
上記の入力しないテトリスに準拠して、元のゲームです。
回転させる要求を実行することができますがない場合は望ましい方向との間の重複のセルに、現在の設定委員会(落下してくる作品を除く) 、および希望のオリエンテーションがない場合は、細胞外のボード面積を設定します。
翻訳要求を実行することができます間の重複がない場合は、目的の翻訳の構成と設定のセルに、現在の理事会(落下してくる作品を除く) 、および希望の翻訳の設定がない場合は、細胞外のボード面積を設定します。
入力のリクエストを処理するとの待ち時間に依存して、ゲームのフレームレート(例: 75 Hz ) 、および要求に反映さ(有効であれば)即座にします。
作品が下落することなく下降線発生手順を実行します。
数回の作品を翻訳して左または右、下落し、その後、下降線のすべてを体験する公式のステップに進みます。
作品のため、新たに生み出された可能性が回転することはできません(反対するので、上端が滞っ理事会) 、その選手を受け入れる必要があります落下、少なくとも1つの作品のステップローテーションが望まれる場合、または必要です。
の影響を及ぼすのスコアは軽微です。
5.7 標準テトリス作品「着陸」
作品は、単に落下場合は、それの滝は、各作品の1つの行を繰り返し落下します。
繰り返して移動するにはそれがない場所から水平表面を連絡先に連絡をする場所では水平方向の表面です。一度、この反復が発生すると、安静時の作品は、お問い合わせください。
反復を開始する場合は、作品の安静時の連絡先を水平表面は、作品「の土地」は、杭の静的となる部分です。
5.8 標準テトリス「ライン完成」
行では、行を完了した杭では、占領下のすべてのセルがします。行が完了したときに杭から除去し、除去された行の行の上にある1つの行は、シフトダウンさのギャップを排除するため、この「行」数としてカウントされる完了します。
ときに作品のパイル地となる部分です。
作品の直後に土地は、杭は、行のチェックを完了し、すべての行がなくなれば完了です。
最大4つの行に完了することを同時に押します。
表には、次の行に上限を課すと同時に完成され、 1つの作品:
piece max. simultaneous
rows completed
===== ==================
"O" 2
"I" 4
"S" 2
"Z" 2
"L" 3
"J" 3
"T" 2
5.9 標準テトリス「レベル」
標準テトリスは10難易度のレベル、番号1 ( 1つ)を経10 ( 10 )は、 「最も」低いレベル1が「困難」です。
のレベルのインデックスは、最大2つの値:
actualLevel = max( initialLevel, earnedLevel );
initialLevel値は、プレイヤーのレベルは、新しいゲームを開始するときに選択します。
レベルのパターンを完了する関数として簡単に観察された行は、事前に商業MS-DOSのバージョンのテトリス:
{ 0, 1, 2, ..., 10 } --> earned level 1
{ 11, 12, ..., 20 } --> earned level 2
{ 21, 22, ..., 30 } --> earned level 3
{ 31, 32, ..., 40 } --> earned level 4
{ 41, 42, ..., 50 } --> earned level 5
{ 51, 52, ..., 60 } --> earned level 6
{ 61, 62, ..., 70 } --> earned level 7
{ 71, 72, ..., 80 } --> earned level 8
{ 81, 82, ..., 90 } --> earned level 9
{ 91, ... } --> earned level 10
このように、値が計算によると、 earnedLevelは、次のアルゴリズム:
if (linesCompleted <= 0)
{
earnedLevel = 1;
}
else if ((linesCompleted >= 1) && (linesCompleted <= 90))
{
earnedLevel = 1 + ((linesCompleted - 1) / 10);
}
else if (linesCompleted >= 91)
{
earnedLevel = 10;
}
5.10 標準テトリス落下反復遅延
標準テトリスには、リアルタイムの連続線間の遅延が加われ自由落下する関数は、現在の困難なレベルです。
インデックスとの間の関係は、次のレベルに基づいて落下遅延が繰り返される反復測定ストップウォッチ、事前にすべてのレベルでの商業MS-DOSのバージョンのテトリスです。
actualLevel iterationDelay [seconds]
(rounded to nearest 0.05)
============ =========================
1 0.50
2 0.45
3 0.40
4 0.35
5 0.30
6 0.25
7 0.20
8 0.15
9 0.10
10 0.05
それゆえ、私たちに次の数式を確立するための繰り返しの関数としての遅延の値は、実際のレベルのインデックス:
iterationDelay = ((11 - actualLevel) * 0.05); // [seconds]
の場合、委員会が空の場合、ユーザの入力がないとは、実際のレベルで生み出された作品10秒間に約1土地と土地の新たな作品を実際の約1 2番目のレベル10です。
5.11 標準テトリス「によるスコア」
標準テトリスのみ特典ポイントを着陸する行為の一つです。
ポイントがない賞を受賞、ひとつの行に完了する行為、または完了2つ、 3つのか、または4つの回線を同時に押します。
[注:テトリス特典ポイントをいくつかの亜種の行為を完了する線で、ボーナスを飛躍的に増加し、ますます多くの行を同時に完了します。
このように、このような戦略を極大化によるスコアテトリスの亜種を設定する機会「を取得する」には、 「Tetris」 、俗語「I」形状を使用して、 4つの同時線と就学許可証を取得多くのポイントです。 ]
空の委員会をお持ちの場合、およびあなたがそう「I」作品以外の自由落下や土地を行うか、または「I」をすぐにドロップする以外の作品は、次の点を確立することができます。図表使用して、事前に商業MS-DOSのバージョンのテトリス:
actualLevel free-fall instant-drop
points points
=========== ========= ============
1 6 24
2 9 27
3 12 30
4 15 33
5 18 36
6 21 39
7 24 42
8 27 45
9 30 48
10 33 51
unrotated 、非「I」作品秋、合計18行です。
このアカウントの違いはその点自由落下やインスタントドロップ場合があります。
中間のケースで実験を簡単に行うことが推測は、次の点式:
pointAward = ( (21 + (3 * actualLevel)) - freeFallIterations );
に注意してこの数式は何の関係も作品の滝までの距離を!
それは厳密には関数は、実際のレベルでは、罰則を強化するとの繰り返しの数を自由に秋の作品は許可されています。
この罰するするためのユーザを考える時間を必要とします。
また、作品のために注意して、最初に回転することはできません最初の生成時には、プレーヤーは処罰され、少なくとも1つの自由落下の繰り返しが必要ローテーションを配置する場合は、杭作品です。
この恐らく人間は影響ありません。プレーヤー、場合を除いて、何となく:認識して作品は、プレス翻訳キー( 「左」または「右」 ) 、 「回転」キーを押して、 1つまたは複数回、キーを押しながら、 「ドロップ」 、 0.5秒未満のすべてのレベルに1か、または0.05秒未満のレベル10です。
6. 標準テトリス戦略
6.1 はじめに
ゲームをプレイするための戦略に依存して、ゲームのルールです。
どのパラメータは戦略に依存して最適化される。
標準的テトリス、 1つの行を生き延びるを完了、リンク先の作品ポイントを取得し、点数の最もポイントを実行する可能性がドロップする前に、各作品を1つまたは複数の自由落下iterationsが明らかになる。
A.I.最適化してポイントを授与することを決定するだけでは、それぞれの作品をすばやく移動「キー」を「押して、」実行して移動します。
もっと重要な生存をA.I.は、無期限の生存のための手段、任意のハイスコアを達成できる。テトリス作品は、秋は、特定のレートは、意思決定しなければならない、少なくともこのA.I.高速-x azdしなければならないとの動きが完全に行を少なくとも1行の平均レートが1 2 .5作品です。 (それぞれの作品には4つのセル、およびそれぞれの行は10セルです。 )
もちろん、 1つの行を蓄積したことを延期の完成作品と建物を、大規模な杭がありますが、全体のわずか200のセルに委員会は、原則的に50個しか保持するため、任意のプレイヤー( A.I.などの)ラインとして完成必要があります。根本的な優先順位です。
標準的テトリス、ボードゲームの状態には、現在の職業と、現在の下落作品(のタイプ、位置、および方向) 。ゲームの状態年5月には、オプションで"次の作品"です。
6.2 交互に配列する" S "と" Z "作品
Heidi Burgiel 、博士号、 Department of Mathematics, Statistics and Computer Scienceは、 University of Illinois at Chicagoが、交互に配列するのが立証された" S "と" Z "作品は、強制的に標準( 10 -カラム、 20行)テトリスゲームを最後に、予測可能なコードの動きです。
引用元の記事: " You can't win a game in which only alternating 'S' and 'Z' pieces appear. "
印刷関連の記事: Mathematical Gazette 、 1997年7月、 " How to Lose at Tetris "
Heidi Burgielは、インターネットブラウザで実行さJava appletことを特徴とするテトリスのクローンを生成交互に変化した" S "と" Z "作品です。
[ 、 "標準テトリス"ソフトウェアに関連付けられてドキュメントを読むには、あなたが生成モードを交互に" S "と" Z "作品です。 ]
と主張してゲームを交互に関与Heidi Burgiel " S "と" Z "作品(テトリス委員会、標準の10列と20行) 70000個未満で終わる必要がありますが前に倒れた。
ソフトウェアに含まれる、標準のテトリスこのドキュメントを有効にするとゲームをする人を交互に" S "と" Z "作品は、委員会に変更し、幅を設定します。
これは簡単なのを見て、そのボードの幅が整数倍の4つのカラム(例: 4列、 8列、 12列、等)は、永遠に再生するときに別の作品の間に" S "と" Z " 、次の上昇に対する杭4行以上です。これを私に言及することを明確に限定生存の研究開発ドキュメントに記載されては、上記の例は、特に、標準のテトリス委員会( 10列と20行) 。
6.3 一般的に解決不可能な作品シーケンス
診断には、全体のカテゴリのシーケンスが生き残ったことはできません。
興味深いことが発生する確率の合計を計算するゲーム-終端シーケンスのため、これは上限をつけるのパフォーマンスの任意の戦略も、将来のすべての作品に完全な知識を与えられた時点で、いつゲームです。
6.4 トータル可能な委員会構成
与えられた10 * 20 = 200細胞は、委員会は、各セルを与えられたことは1つのみの2つの状態(空白または占有) 、理事会の構成の合計数と等しいかそれより小さくなければなりません: (2 ^ 200)です。
与えられた細胞は、各4作品を追加して委員会、およびそれぞれの行10から細胞を排除完了委員会は、占領下のセルの数を理事会には常にさえします。たとえば、 (3*4 - 1*10) = 2 、 (1*4 - 0*10) = 4 、 (4*4 - 1*10) = 6 、 (2*4 - 0*10) = 8 、 (5*4 - 1*10) = 10等のため、委員会の構成のみ(2 ^ 200)の半分をゲームにアクセスできることをされています。
したがって、理事会の構成の合計数は約: (2 ^ 199) = 8.03469... * 10^59です。
しかし、私たちの合計から除外しなければならない任意の設定が含まれて満たされた行、行が満たされたため、それぞれの排除を完了する前の最後に移動します。任意の構成で満たされた1つまたは複数の行を別の構成が崩壊されていない任意の満たされた行が含まれています。
また、任意の設定が含まれて除外しなければならない、非空行を上に1つまたは複数の空白の行、空行のため、上記以外の空文字列は、常に秋、およびすべての落下を停止する前の最後に、各移動します。
各行2^10 = 1024できる状態で、 1つが"空"は、 1つが"完全" 、および(1024 - 2) = 1022には、部分的に占有します。私たちを除外することを"完全"事件から考察します。
の場合、最下行が空の場合、すべての行を入力し、最下行の上に空にしなければならない。
最下行の場合、部分的に占有さは、 2番目の行を入力し、空または部分的に占有できる。
この分析の継続、私たちは多くの委員会の構成を計算することは除外してアカウントの制限をフル行と空白の行: 1 + (1022 * (1 + 1022 * (1 + 1022 * (1 + 1022 * (... * (1023)))))) 、これは約((1022 ^ 19) * (1023))です。
それゆえ、私たちを見つけるの合計数の見積もりをより正確に安定した委員会の構成: (1/2) * ((1022 ^ 19) * (1023)) = 0.9625... * (2 ^ 199) ;すなわち、約(2 ^ 199)推定値を下回って百分の3.74です。
しかし、実際のコードの安定した、アクセス可能な状態が予想される委員会のために特に低いという事実を最上位の行数で記入されるしか方法があります。最上位の行として記入するために、新たに生成さ作品移動したりすることはできません非常に回転します。この制限していくつかの方法が最上位の行を記入します。
6.5 原則として、最高の移動が任意の委員会と作品の構成は見つかりませんでした。
7つの任意のため、私たちが入手可能な作品は所定の委員会状態では、ゲームの国の合計数は約7 * (2 ^ 199) = 5.624... * 10^60です。
ため、私たちがあることは、原則として、深い検索を行う可能なすべての先物の動きのすべての可能なゲームの状態は、与えられたことができるが、 1つの"ベスト"に関連付けられ、各ゲームの状態に移動します。
私たちと仮定して考えていない他のあらゆる情報にアクセスすると現在の作品よりも、現在の委員会ので、 "ベスト"手段"の移動が最大のチャンスを提供して満足のいく長期的な目標を私たちの生存"です。
動きは単なる翻訳(最大10のオプション)と回転(最大4オプション) 、エンコードすることは容易に移動する最高のシングルバイトです。
そのため、原則として、私たちが10^61を形成するテーブルにエントリ(バイト)には与えられた任意の委員会の移動先のベストの状態と現在の作品です。
もちろん、これは非現実的と同様、すべての列挙" Go "ボードまたは" Chess "のボードでは非現実的です。しかし、ポイントは、 1つの真の解決策には、最高の移動には、任意の設定をします。良い動きがあるかもしれないと同様に、与えられた構成では、しかし、私たちは、任意の1つを選択してそのような場合に移動します。
多くのゲームプレーを列挙アルゴリズムはテーブルを余すところに限られたコンテキストのすべてのゲームの状態の可能性など、 "オープニング(初期)の動き"または"エンドゲーム(ファイナル)の動き"とチェスのです。おそらくテトリスの列挙を徹底的に杭の表面(約(20 ^ 10)州)が可能です。それは興味深い考えです。
網羅的列挙のすべての州の2つの行の下に、 7つの可能性を掛けた作品、ベストを移動すると、保管はシングルバイト、非常に簡単ですが、わずか7 MBのメモリを必要とします。おそらく、これらの七百万例のパフォーマンスを最適化するには、 RAWデータの両方に解析し、単純なモデルを開発するデータ;このようなモデルが全体の理想的な部分と見なされてテトリス再生戦略です。
まだベストの動きに注意して実行する問い合わせに対して保護されない可能性診断ゲーム作品シーケンスを終了します。ただ、我々は常に最高のパフォーマンスを提供問い合わせの最大の動き将来の生存の可能性を与えられた将来のすべての作品は完全にランダムな(そして未知のは、時間を移動する方法を決定する我々は現在知られ、 1つの作品) 。
6.6 リアルタイムのパフォーマンス
1つの制約に直面アルゴリズムは、いくつかの戦略の必要性をリアルタイムのパフォーマンス-を意味して意思決定しなければならないのアルゴリズムに、特定の量の時間です。
テトリス、人間の再生時に、下落が止まるの作品はありませんが、プレーヤーを考える機会を与える。それはテトリスの挑戦を部分です。したがって、 A.I.意味をシミュレートするシステムでは、人間のプレーヤーの役割をする必要があります。率も意思決定のテトリスゲームの指示によるものです。
6.7 行と作品の合計
に注意して、長期的に、作品の数は非常に近くに落とし2.5倍の行数を完了する-ため、各行は1 0セル、およびそれぞれの作品は4セル、行を完了するとしなければならない、平均して、一度(10/4) = 2.5作品破棄されます。
これを使うことができます"完了行"と"落とし作品"とほとんど同じ意味で、該当する比例定数です。最大のエラーは、委員会は完全に満たされたときを除いて、 1つのギャップが下落ではなく、それぞれの行(((10*20)-20)/4) = 45作品欠損症の行の予測(45/2.5) = 18完了します。
6.8 現在の作品(および委員会)の戦略
A.I.のみを許可する場合には私たちの知識を、現在の委員会と、現在の作品、と私たちの移動の結果のみを考慮して、現在の作品に特定の方法で、これは、名前を入力し、 "ワンピース"の分析です。
次に示すのは、ラフスケッチをどのように分析ワンピースを移動する時にテトリスを決めることができます:

電流テトリスゲームの状態を分析した作品
基本的にすべての可能性にしようとの動きと利回りを選ぶのが最良の結果に移動します。
評価の難しい部分は、それぞれの検索結果です。
しなければならない率を仮想的なゲームの状態によると、このような状態にサポートする方法についても私たちの短期的かつ長期的な目標です。
当社の長期的目標は生存します。生存率に依存して杭を防止する委員会からあふれているのです。高さを軽減することを形成杭行が完全に入力し、杭から除去します。
完全な行を形成する、しなければならない部分をフィットして作品ごとにその行のカラムのです。それゆえ、私たちの行を必要とするすべての部分に落下してくる作品にさらされる場合には、行全体を最終的に記入します。
もし何らかの理由で私たちを隠蔽する空の部分を任意の高い作品を連続で行を、入力し、我々は今ではこれらの空のできない部分を埋めるの行のです。する唯一の方法(仮定のスライディング)にアクセスするそれらの"埋没の穴"は、上記の行を排除するために障害を持つ部品として動作します。
うちは、以下の要因を使うことができますが、与えられた委員会の状態を評価する:
Overall pile height
高い山は、私たちの状況の悪化と思われるので、我々は近く理事会であふれています。
Roughness of pile area (number of times cells alternate between empty and filled as any row or column is scanned)
杭の粗いのは、それは他の可能性を埋めるのは難しいだろうとのすべての埋め込まれた複雑な輪郭の表面にさらされるようになった。
Number of buried empty cells
他の穴が埋められて、私たちは、私たちの状況が悪いため、穴に埋葬する前に明らかにしなければならないことに対応する行を完了します。
他の要因が一般的に想像することができます。率を仮想的な委員会もその杭を収容する方法については、将来起こり得るすべての作品は、良いの状況、どのようそれらの可能性のすべての作品を探しています。
次の問題は、相対的な重要性を確認する方法について、これらの要因によって変化します。
1つの一般的なアプローチは、以下のとおりです。セットを割り当てるには"重り" (相対的な重要性)をこれらの要因、と入力し、数多くのゲームやシミュレーションの結果を記録して、これらのゲーム(最終スコア、等) 。次に、新しいセットを割り当てるには重りやゲームの新セットをシミュレートする。に基づいて設定するかどうかは、新しいゲームの方が良い成果よりも、前のセットのゲームを、私たちの場合、新しいセットを知る以上の重量は、前のセットの重量です。
自分自身の実験で検索してみましたランダムな系統を探して良いの重量の組み合わせだけど、何か気づいたら私が大規模なトレンドを追求することです。しかし、驚くほどスムーズに多くのバンプを見た。興味深いことにと思っていたの平均パフォーマンスが滑らかな曲線を形成するときに、他の様々なパラメータが徐々に開かれたいくつかのパラメータ値の組み合わせです。
最高の、リアルタイムのワンピーステトリスアルゴリズムで、世界は、作成されたPierre Dellacherie (フランス)に2003 、負債が多くの成功をそのセットの計測値(または指標)です。所見の重量を最適化する戦略が必要なときに、それも重要な種類の測定を開始することと関連性の高い特性を明らかにするの状態です。
新しい方法を発明を特徴付けるPierre Dellacherie's各委員会は彼のアルゴリズム本当に素晴らしい;の特性キャプチャ委員会の委員会の重要な戦略的な外形寸法の状態です。
1つのセットが非常に異なる特性を開発するの寸法も同様に効果的に働い;私は確信してスパンすることが可能に国家宇宙委員会に、関連するさまざまな方法を指定することができる戦略に使われる機能です。その鍵は、そのプロジェクトの特性を見つけるの状態空間ダウンして少数の外形寸法を開発することができるシンプルな評価に使われる機能(例:リニア加重特性の組み合わせを使用されるアルゴリズムPierre's ) 。
ピースの1つのアルゴリズムを使用される" bot "は、 " xtris "ソフトウェア( 1996 )書かれたの重量によって決定さRoger Espel Llima使用して、大規模な探査の可能性の重量の組み合わせを"遺伝的アルゴリズム"です。シミュレーテッドアニーリング法は別の可能性を探索する多次元空間の重量の組み合わせです。
とみられる、様々な観察に基づいて、テトリスのパフォーマンスの多次元機能の平均の重さの関数として、例: F(w1,w2,w3,...)は、 "ラフ" (多くのローカル最小とマキシマ) 、これを意味し、単純な多次元"山登り"かもしれないしません。
6.9 戦略のときに現在の作品は、次の作品、および委員会が知られ
戦略アルゴリズムが与えられた場合は、現在の作品は、次の作品、および委員会は、入力し、意思決定に活用することができますの組み合わせの作品です。
の次の作品の知識を向上させることに成功したアルゴリズムをいくつかの演奏テトリス桁です。それを簡単に理解する方法を知って、次の作品には大きな差が戦略です。
1つのできること"クレイジー"の動きなど、巨大な穴をカバーなど、すでに分かっているので、次の作品を使用して"修正"の状況です。の知識をお持ちでない場合は、次の作品は、あなたが絶えず、オッズを再生しようとし、維持し、オプションを選択しようとして開いて問題が発生した場合、次の作品ではない理想的です。
スケッチは、次の動きを示し、すべての可能性は、現在の作品と考え、このような移動を考えると、各関与可能なすべての動きの次の作品です。

戦略関与現在の作品と次の作品
テトリス、標準のソフトウェアでは、この戦略のときの"次の作品"が有効になっては、ユーザーが画面上に表示さ、およびときにツーピースA.I.が有効になって(私のような1つの書かれた、 Colin Fahey ) 。の場合、 "次の作品"画面上に表示さではない、私のツーピースの滝を省略してA.I.ワンピースです。
マイA.I.ワンピースはひどいときに比べて、他のソフトウェアAIsには、標準テトリス;ので、この有益な関連情報を表示する(例:の次の作品)は、システムをA.I. ;はそれで十分の性能を向上させるための自分自身の平凡な2つのピースをいくつかの受注A.I.マグニチュード-簡単に最高のパフォーマンスを上回るワンピースx azfしています。
(ただし、最高のワンピースA.I.に変換して、世界を検討する2つの作品を簡単に向上させることによって、いくつかの注文の大きさであることが判明!を知って、次の作品は、巨大な! )
私の最初のテスト試合で私の2つのピースA.I.続いた約182時間( 7.6日間)上で800 MHz PC 、 7216290行を完了します。私は特定のアルゴリズムのテストは、高速のコンピュータです。
の状態を保存するときには、ゲーム(Shift-W)テトリスをテキストファイルに、することができます。のリストを入力し、数字をコピーして貼り付けて、より"の項をheightHistogram " 、 Excelのスプレッドシートをします。
各ビンは、ヒストグラムの数を示します完了すると、特定の杭の動きが終わったの高さ(行が完全に除去した後) 。想像することができますとして、メーカーの動きを完全に杭を排除するのは珍しいので、動きの合計数がゼロで終わるの山の高さは比較的低い。
一方、あなたかもしれないと予想して周囲の山の高さ、通常いくつかの平均変動ので、ゴミ箱に対応して、これらの行はヒストグラムを支配している。最後に、ゴミ箱を最上位の行(ここで我々はあふれの危険にさらされ、委員会)が非常に低いの合計です。
以上の過程で多くの時間は、 1つのゲームを再生するのA.I.関与の知識を使用して、戦略の"次の作品" 、私はこのゲームのサンプルをランダムな状態にコピーしてヒストグラムの山の高さ以下に示すようにするには、スプレッドシート:

ヒストグラムの山の高さは様々なポイントを記録した典型的なゲーム(現在の次の作品と戦略)
それぞれのヒストグラムをすることができます。スケールの作品の合計数(合計数完成の動き)を使用しては、次のデータ:

ヒストグラムスケーリング、および理論
驚くべきことに、これらのスケーリングのヒストグラムを見ると同じ大きさにもかかわらず、別の注文数個(完了する動き)関わっています。
数字だけを見て私は、仮説は、尾部の曲線は、指数関数的減衰します。試行錯誤で来て、大まかな理論は、しっぽが記述され:
relative_frequency = ((0.122) * ((0.375)^(row-5)))
ヒストグラムは、次のグラフを示してスケーリング範囲の行全体です。

グラフのスケーリングヒストグラム
50000点に注意して曲線を、曲線を2000000の作品、とテール理論曲線は、これだけの規模ではほとんど見分けがつかない。
は、次のは、緊密な曲線の頭の部分を見ています。

ヒストグラムの下の部分の高さ
は、次のは、非常に極端な拡大表示の最後尾のカーブを測定し、理論上のヒストグラムです。

極端な拡大表示のスケーリングの最後尾ヒストグラム
ご推察のとおり、それは非常にまれなため、これらの高さに達するの杭でも長い実験-しかし、私たちも、この極端な地域で限られた証拠で、その理論はまだ可能です。
グラフの理論は、完全なオーバーラップのしっぽのように、ディストリビューション"正確に"が、グラフの拡大は、尾の尾部では、見掛け上のエラーが発生します。しかし、これは私のために不十分と主張し、これらのデータを極端な杭の高さです。ゲームの委員会をすればよいの増加、言ってやるが、高さ20行25行の代わりに、突然のようにゲームを終了しなかった、と思うの理論上の提示が私の動向と完全に一致します。
私の気持ちは、この棒グラフでは、直接の組み合わせの結果、テトリスA.I.とテトリスのルールです。そのため、これと同じ配布される任意のランダムな観測を長期的なゲームのテトリスマイ特定のA.I.戦略を使用して遊んでいる"次の作品"知識です。
また、このタイプのヒストグラムと思うを比較することができますAIsを採用しても同じ情報を再生します。したがって、必要はありません完全にゲームをプレイ(これが最後の日中または年間)の長期的なパフォーマンスを比較するさまざまな戦略アルゴリズムです。
たとえば、シンプルさにもかかわらず、私のモデルでは、と思うことができますゲームに使われるの平均所要時間を予測する!私たちだけで図する方法について多くの作品により、 "行21 "山の高さでかなりの数など、 1つの数のカウントです。
行の相対周波数を21日、私の単純な理論によると、は:
((0.122) * ((0.375)^( 21 -5 ))) = 1.8 * 10^(-8)
この番号を乗算する必要があります。 (5.3 * 10^(7)) 、約50万ドルで、 1つの値を取得するにします。
したがって、私は予測してほぼ現在の"次の作品"戦略は良いのみを検索する行の順序を約1000万人を完了します。 1つの理由は、私がこの事実を控えめに見積もっても18行A.I.が私の命にかかわる許可していないので私の作品を検討するA.I.彼らは倒れたされるまで、少なくとも1つの行! (これは持っていないので心配することができなくて回転させる作品です。 )
私は感銘を受けたという事実を再生のみ50000個(と可能性がずっと少ない作品)ことを、非常に良いの見積もりを与えるの長期的な高さのヒストグラム、およびそれゆえ、良いの見積もりを行の順序を完了するの大きさが、試合前に終了します。このアプローチは非常に貴重なの微妙な変化に迅速に評価することは、すでに非常によくA.I.です。
6.10 委員会の評価指標をまねる先読み投機
アルゴリズムの場合は、私のような1つの提示をこのプロジェクトでは、単純にしようとするすべての作品の方向と技術情報の翻訳を落とし、と宿泊料金の各委員会の構成によると、いくつかの測定結果の長所を、このアルゴリズムは本質的にまね"先読み"です。
ときに1つの従業員などの統計情報"山の高さ" 、 "埋設の穴" 、 "表面粗さ"または"まあの深さ" 、簡体字フォームを使用して1つは本当に"先のことを考える" 。これらの一般的な特性は、委員会にいくつかの指標との長期的な生存率は、委員会です。
理想的なアプローチは、与えられた無限量のコンピューティングパワー、委員会が構成を与えられたすべての可能性を評価することができる作品シーケンスを次のとおりです。
全7作品は考慮する必要があります同様に予想され、各レベルの先読み、実際の技術情報の翻訳を最適化する必要があります(最大10 )と方向(最大4 )の各作品を可能な限りのあらゆるシーケンス!それが最大の枝を(7*10*4) = 280理事会のあらゆるレベルの評価!つまり、最大((280)^(LookAheadLevels))委員会の構成を検討する。
終了して分析しなければならないため、有限数のレベルの後に、私たちする必要があるいくつかの方法以外の先読みに評価し、委員会の状態-する方法を与えるリーフノードの値を、弊社の検索カテゴリです。そのため、これらのリーフノード、我々は省略して使用して数式を体現全般生存率の将来見通しの委員会!
このタイプの憶測を試みたがワンピースとツーピースの代わりに、単純なアルゴリズム委員会の評価指標です。それ以降のすべての作品は想定を合計すると同等の能力を推定する委員会を収容作品は、可能な限りのすべての種類の方法があります。このことに行われる1つ、 2つのか、または任意の数の投機的動きの深さ-すべての作品が均等に概( x azb) 。
このカテゴリのノードのターミナルを必要とするかもしれないまだ加重メトリックを評価するが、投機筋層の本質をもっと正確に言えば、私たちが望むのキャプチャを行う:決定方法についても、与えられた委員会が受け入れることができる可能なすべての作品は、肯定的な要因などを含む行を完了全体の増加といったマイナス要因と杭の高さなど
7. テトリスA.I.システムのデモ
7.1 システムの概要
この次の図は、私の実験の設定です。

全体的なシステムのデモ用の
7.2 装置
次に示すのは、簡単な装置のリストを、このデモで使用され:
[1] Ontrak Control Systems ADR2200 RS-232 8-Relay Board: $149.00 (USD 2003)
[2] Ontrak Control Systems ADRPWR Power Supply : $ 12.95 (USD 2003)
[3] Creative WebCam Pro (640x480 USB video camera) : $ 39.95 (USD 2003)
同様の装置の使用を明確にすることができます。 、同じ結果を達成する。他の詳細については、対応する機器のセクションに記載されては、次の資料です。
ここでは簡単な説明は、パーソナルコンピュータで使用され、このデモ:
[1] Personal Computer (PC), 350 MHz, Windows 98 [Runs video game]
[2] Personal Computer (PC), 800 MHz, Windows 2000 [Runs AI program]
このデモは、他のオペレーティングシステムに簡単に再現など、 Linuxです。もっと重要なことはしてCPU速度を速くするための順序を800 MHzまたは、コンピュータのA.I.ソフトウェアを実行するには、このコンピュータは実時間処理が求められているビデオです。
7.3 ビデオキャプチャハードウェア
私は、共通のUSBビデオカメラビデオキャプチャデバイスとして私のA.I.システムです。具体的には、私Creative "WebCam Pro"使用して、解決方法をUSBビデオカメラを640 * 480です。

ビデオカメラの説明書Creative(TM) USB

USBビデオカメラ(角)

USBビデオカメラ(フロント)

USBビデオカメラ(委員会にCCD )

USBビデオカメラ(メインチップ)

OV511メインブロック(注: USBビデオカメラがOV511+ )
7.4 OV511データシート
ov511ds.pdf
OV511データシート
1136328 bytes
MD5: e927d786e16baea59b7e7e54529778c0
7.5 OV511+ ( "プラス" )機能の違い
7.6 ビデオキャプチャソフトウェア
Microsoftには、非常に古いAPI名前は" Video for Windows "私(VFW)が正常に使われて、このプロジェクトを作成します。 (あなたのリンクを" vfw32.lib "としてC++プロジェクト、またはDllImportを行う" vfw32.dll "としてC#コードです。 )の例を使用して、 VFW APIが広く入手可能です。
Microsoft'sを使用するに代わるは" DirectShow " APIこれを行うにビデオキャプチャします。
VFWは1ダースのためのコード行のみを使用し、満足させると実行して800 MHz機、私はわざわざ技の代替APIsです。しかし、現代DirectShowは、他のAPIをWindowsビデオキャプチャし、潜在的に利回りをはるかに高いフレームレートは、同じハードウェアです。
見て" CPF.StandardTetris.STVideoCapture "のソースコードのファイルを、標準のテトリスのソフトウエアを簡単に参照する方法を得ることがビデオキャプチャして、独自のプロジェクトです。
7.7 コンピュータのインターフェイスをリレー(経由で、 RS232 )
1つのコンピュータには"キーを押し"別のコンピュータのキーボードの上に、私使われる"リレー委員会"から送信されたテキストのコマンドによって制御さシリアル通信ポート(例: " COM1 " )経由でRS-232ケーブルを使用します。私に接続して使用される各リレーを2本のワイヤは、特定のキーボードのキーをシミュレートするキーを押す。
これに必要な、キーボードの開放し、接続します。シミュレーションには多くの方法を簡単にコンピュータのキーを押すと、しかし、これを行うに何かをしたかったようできるだけ近くにして本当に人は、キーボード入力します。
1つの非常に汎用性とうまく作られて作られるADR2200リレー委員会は、 Ontrak Control Systems :

Ontrak Control Systems ADR2200 RS232 / RS485 Relay I/O Interface

Ontrak Control Systems ADR2200 RS232 / RS485 Relay I/O Interface
することができます見て" CPF.StandardTetris.STRS232 "のソースコードのファイルをどのように簡単なことはシリアルポートを介してバイトを送信することができる入力し、デバイスを制御するために使用ADR2200委員会など、上の図を参照します。
8. 標準テトリスソフトウェア
8.1 ダウンロードソフトウェア
この記事の初めに行くのリンクを見つけるのソースコードをダウンロードする( C#とC++バージョン)と組み込みソフトウェア( *.exe ) 。
8.2 機能の概要
ソフトウェアの機能:
命令画面およびクレジット
モノクロモード
影モード
ヒントモード
迷惑行
レート制御
次の作品
基板サイズ
S/Z作品
校正モード
ビデオをキャプチャして認識
デバッグコンソール
試合後のために保存
ロードゲーム
8.3 最低の外観
外観のソフトウェアが起動するときに:

外観のソフトウェアが起動するときに
8.4 モノクロモード
デフォルトでは、委員会が表示される色:

デフォルトでは、委員会が表示される色を設定します。
カラーモードはモノクロに変更して(Shift + K) :

カラーモードをモノクロに変更することです。
8.5 影モード
影のモードを示す作品では、土地です。これは非常に役立つ非常に大きなボード、どこを判断することは難しいため、一枚は土地です。

影のモードを示す作品では、土地です。
8.6 ヒントモード
ヒントモードで表示する場所は、現在選択さ愛が与えられた、現在の状況に移動します。 (Shift + H)

ヒントモードの場所を示しては、現在選択さ愛が移動します。
8.7 迷惑行
挿入"ジャンク"の行の下部にある杭、 1つずつ、手動で作成します。 (Shift + J)

挿入"ジャンク"の行の下部にある杭です。
8.8 レート制御
の'+' (プラス)と'-' (マイナス)キーの速度を調節するゲームです。
デフォルトでは、ゲームを実行する標準速度は、標準のルールによると、テトリス(レベルのスピードに基づいて) 。
次に示すのは、テーブルの速度バイアスの意味:
-3,-4,... :遅さに比例してバイアス
-2 :レベル1よりも遅い
-1 :ノーマル、しかし、限定されるレベル6 ( 0.2秒)の速度;
0 :ノーマル;標準テトリス速度制御;
+1 :ややよりも速くレベル9 ( 0.05 sec遅延) ;
+2 :レンダリング速度によって境される(例: 75 Hz ) ;
+3,+4,... :複数のフレームのレンダリングが加われ1 ;
A.I.を実行するには私のように設定する" +2 " (ヒット'+'キーを2回起動する場合はバイアスゼロ)です。

速度バイアスの速度を変更するゲームです。
8.9 詳細次の作品
ヒット' N 'を切り替えるには、 "次の作品"を表示します。 A.I.は、使用して、 "次の作品"情報のみの場合、 "次の作品"の画面に表示されています。
することができますのでご安心して使用して愛ではない"次の作品"情報のときにすることはできません"を参照して次の作品"を検索する画面を表示します。

詳細、次の作品
8.10 基板サイズ
押してCtrl + (左、右、下、上) 、 1つの委員会のサイズを調整するには、任意のサイズより4 * 4最大200 * 400です。

基板サイズ: 4 * 8

基板サイズ: 20 * 40

基板サイズ: 40 * 80

基板サイズ: 20 * 5

基板サイズ: 4 * 100
8.11 S/Z作品のみ
S/Zパターンを交互に研究して興味深いです。
このパターンは解決することはできません。 10 * 20委員会(幅*高さ) 。
しかし、ボードの幅を持つことは自明の倍数の表示を許可する4アール無限の生存します。
無期限AIs生き残るためのこのような場合、彼らはないにもかかわらず、この診断を処理する状況を具体的に調整します。

S/Z作品のみ
8.12 ビデオ校正モード
ヒット' C 'を入力する"校正モード"です。校正モードのときは、ヒットすることができます。キーの数: {O,I,S,Z,L,J,T}作品{1,2,3,4,5,6,7}を選択するには、再生委員会の上部にします。
これは役に立つのビデオを参考にイメージをキャプチャする2番目の標準Tetrisソフトウェアです。
ヒットする場合に0 (ゼロ)キー、それは委員会を空白にします。
作品のふりをすることができます。スポーン(1..7)作品を選択すると、空白を選択すると入力し、 (0) 、ビデオキャプチャ中に2台目のコンピュータの時計の作品ことです。
A.I.を実行することができます2番目のコンピュータとを参照してどのように扱うのシナリオを手動で入力テトリス診断!
校正モードは、操作するだけ時間のビデオキャプチャすることができます画像処理テンプレート( 4 * 2グリッド)です。マウスを使用して描画することができます。 、長方形の、その後のカーソルキーを使用することができます( "登録" 、 "ダウン" 、 "左" 、 "右" )には微調整は、国境-x azc使用して、キーを選択する反対側の境界線を、長方形の(例: " Shift -左の"コンボは異なる"左" ) 。

ビデオ校正モード
8.13 ビデオをキャプチャして認識
押すと' V 'トグルのビデオキャプチャモードで起動します。もし適切なキャリブレーション(詳細については、 "ビデオ校正"と、前の項を参照) 、この作品は、リモートビデオ画面が表示されるキャプチャされたビデオカメラや機密-とされる作品は、ローカルゲームを生み出しましたx azcを考慮すると反応です。
A.I.出力の転送しなければならない( RS-232インターフェイスを経由してこの資料に記載さが、デモに参加)には、リモートゲームの入力(例:キーボード) A.I.を正常に再生するには、リモートのゲームです。
もし、いつでもこのクローズドループは、障害(例:ビデオキャプチャ機能不全か、または出力信号の機能不全) 、その後、 A.I.は、誤った印象を与えるのステータスを開発するのは、リモートゲーム、とA.I.は、不適切な意思決定を迅速にゲームを失うです。
(注:この問題を克服するにはわずかな量の努力: A.I.システム全体を検討する必要がありますリモートテトリス画面のみのための基地の"現実チェック"の全体委員会、およびいくつかの準備をすべきであるA.I.システムのコマンドを出力いくつかの方法で失敗します。 )

ビデオをキャプチャして認識
9. オリジナルテトリス愛の実験( 2003 )
ショーの最初の作業は、次のバージョンのテトリスA.I.システムは2003年です。

ビデオカメラに直面コンピュータ# 1を実行して任意のプレーンテトリスゲーム

# 2を実行してコンピュータにソフトウェアを標準テトリスA.I.モード

左:図面のグリッドを調整ビデオ画像の認識;
右:テトリス作品認識場合があります。

ビデオのフレームから2003年に実験テトリスA.I.
10. ベストワンピース再生アルゴリズムで、世界テトリス
10.1 Pierre Dellacherie ( 2003 ;フランス)
Pierre Dellacherie ( 2003 ;フランス) 、開発者は、最高のワンピース再生アルゴリズムで、世界テトリス
最高のワンピース、リアルタイムのテトリスのアルゴリズムを私の知る限りでは、フランスのPierre Dellacherieによって作成されます。
彼の驚くべき塗りつぶしアルゴリズム時には二百万行を超える!
パフォーマンスの平均は、 650000行の順序をします。
このアルゴリズムは、非常に小さなメモリ、および実行を高速(約160行を1秒間に800 MHzマイコンピュータ上) 。
パフォーマンスPierre Dellacherie'sアルゴリズム:
私の現在のモデルのパフォーマンスをしてテトリスaisは、作品には、任意の定数は、ゲームが終了する確率は、 pです。
このように、確率は、ゲームが終了する作品はありませんq=(1-p)です。
ゲーム終了後の確率kの動きは、単に商品の生存確率(k-1)の動き、すなわちq^(k-1) 、および終端する確率は、次の移動、すなわちpです。
これに対応して、 " Geometric Distribution " :
Geometric Distribution:
P(k) = p * [(1-p)^(k-1)] = p * [q^(k-1)] = p * exp[ln(q) * (k-1)]
MEAN: [1/p]
VARIANCE: [q/(p*p)]
STANDARD DEVIATION: sqrt( VARIANCE )
小p 、 ln(q)はほぼ(-p) 、と我々は以下の通りです:
Exponential Distribution:
P(k) = p * exp[-p * (k-1)]
= p * exp[-p * k ] approximately
MEAN: [1/p]
VARIANCE: [1/(p*p)]
STANDARD DEVIATION: sqrt( VARIANCE )
我々は、何分の一かの合計数プレイゲームを終了すると、いくつかの[k1, k2]の間隔の行を完了される:
Integral of the Exponential Distribution:
I(k1,k2) = exp[-p * k1] - exp[-p * k2]
[マイコンピュータ] 36ゲームを完了した後、 2日間にわたって、私を見つけた行の平均674827完了します。
一般理論によれば、上記では、私が期待分数は、次の相対的なゲームが完了するには、次の行を完了する範囲:
p = (1/674827) = 0.000001482 = 1.482*10^(-6)
Completed Row Range Relative Fraction of Total Games
======================= =================================
0 ... 400 000 [exp( 0 )-exp(-0.59)] = 0.447
400 000 ... 800 000 [exp(-0.59)-exp(-1.19)] = 0.250
800 000 ... 1 200 000 [exp(-1.19)-exp(-1.78)] = 0.135
1 200 000 ... 1 600 000 [exp(-1.78)-exp(-2.37)] = 0.075
1 600 000 ... 2 000 000 [exp(-2.37)-exp(-2.96)] = 0.042
2 000 000 ... 2 400 000 [exp(-2.96)-exp(-3.55)] = 0.023
次に示すのは、グラフを比較して理論との観測分布Exponential Distributionゲームです。

36以上の性能を完了ゲームPierre'sアルゴリズム
ただ、このデータは非常にいくつかのゲームを設定すると、これは明らかにしてモデルはかなり上手にマッチする観測分布します。
Pierre'sはじめに彼のアルゴリズム:
この仕事を始めたPierreワンピースアルゴリズムの2003.1 。
Pierreについては、電子メールを送ってくれた彼のアルゴリズムを2003.4.9 、 20年連続でのパフォーマンスレポートは、次のゲーム:
Game 1 : 1 213 220 rows
Game 2 : 876 618 rows
Game 3 : 37 327 rows
Game 4 : 260 337 rows
Game 5 : 165 349 rows
Game 6 : 2 288 991 rows
Game 7 : 1 112 094 rows
Game 8 : 138 648 rows
Game 9 : 107 089 rows
Game 10 : 1 284 387 rows
Game 11 : 935 011 rows
Game 12 : 80 766 rows
Game 13 : 253 158 rows
Game 14 : 1 877 331 rows
Game 15 : 145 034 rows
Game 16 : 888 081 rows
Game 17 : 433 694 rows
Game 18 : 15 446 rows
Game 19 : 494 498 rows
Game 20 : 16 273 rows
Average is 631167 completed rows.
"このアルゴリズムは、 7000行で実装されTurbo Pascalを完了/ minです。 Athlon 1600+にします。 "
私C++で2003.6変換アルゴリズムをPierre's 、電子メールのやりとりをした後、いくつかPierreです。私たちは、 A.I.確認してC++バージョンは、同じ意思決定をPascalバージョンです。
私と同様のパフォーマンスが彼のオリジナルの観測報告書;平均約650000行を完了し、二百万行のいくつかのゲームを完了します。
信じられない!
10.2 との会話をPierre Dellacherie
[ 1 ]このコードを最初に作成はいつですか?
私は後半にも取り組んでいるのアルゴリズム2003年1月から今までです。
[ 2 ]作業をどれくらいになりますか?
ほぼすべての仕事をして週間以内に...しかし、日常のない長いため、私は他の活動:残念ながら私は他の誰のような方法で金を稼ぐ!
[ 3 ]の設計にどのようなインスピレーションのコードですか?
私テトリス10または15年前にプレイしかし、私は再びプレイに長い時間です。私が言うと私は"平均的"な選手who知っているのルールやいくつかのトリックです。
しかし、私が始まったときに仕事をするアルゴリズムをプレイしなかったので私のために試してみたらかなり多くは、コンピュータというより効果的なプレーを観戦すると自分の弱点を分析します。
[ 4 ]参考に「列車」オートメーションを使用して任意のコードを実行するより良いですか?何かのフィードバックを向上させるためのアルゴリズムのですか?
または、単にビデオを参考に決定するとの結果を改造ですか?
私はより「オールドスクール」 :私だけで見たの変更の結果を作ることを決めた。
"自動学習"は、タイプのメタアルゴリズムので安心私はこの方法でやって容易になるとして、このメタアルゴリズムが構築しなければならないとされていないのであまりにも簡単です!
さらに、私は彼の言うときに同意Roger Penrose (彼の著書" Shadows of the mind " )が人間の理解と直感することはできませんアルゴリズム(例:計算) 。
[ 5 ]いつテトリスを最初にプレーを開始し、ときに参考には、アイデアを解決するためにA.I.テトリスですか?
教えアルゴリズムとコンピュータのプログラミング( Turbo PascalとScilab )の学生は大学院入試whoの電車はエンジニアの学校です。
最初は、 "コンピュータの演奏Tetris "は、私の考えを開発するしたかった来年の学生です。
私は特定のWebページを認識して仕事を始めたときに私のアルゴリズムです。
確かに私は幸運なことに注意しているWebページをほんの数週間前と思うので、お勧めしても結果は(ご推察のように、私のアルゴリズムの初期のバージョンのプレイしなかったのでまあ! ) 。
[ 6 ]はどのように現在の状態ですか?
私はほぼ30 [前に2003年4月27日] 。私はいくつかの活動:私はチェリスト、私と私作曲コンピュータプログラミングを教える。
マスターの学位を持って音楽( 1994 ) 、 " Artificial Intelligence and Algorithmic "ディプロマ( 1998 ) 。
フランスでディプロマに対応して、この5年の勉強は大学( 4年生は、修士号と6年は、論文) 。
Pierre's作曲:
[ 7 ]どこにお住まいですか?
私はスペイン語と私に住んでルアン(ノルマンディー) 。
[ 8 ]その他のコメント:
結局私は新しいアイデアを向上させることはない。
私はこれくらいしようと無駄な(そして愚かな)ことを改善できることを私は疑う。
その一方で、全く違うと思うのアルゴリズムが存在する可能性がより良いパフォーマンスができる。
ところで、より高速なテストの打ち上げに構成の作品で、半ボックスをオン( 10行× 10列) : 30 -ボックスで、私のアルゴリズムにより、平均280行を完了します。
もう一つ:このアルゴリズムに変更を加えることで簡単にダブル重織りのアルゴリズム( [私は行う]のテストすぐ) 。
大好き映画音楽:なりつつある映画の作曲家は私のメインの夢(しかし、ただの夢! )です。
11. 人間の、世界最高のプレーヤー
11.1 日本テトリスマスター( 2001年1月27 )ビデオ

テトリスマスター( 2001 ;日本)ビデオ
テトリスArikaプレゼンツ、日本の決勝戦のマスター( 2001年1月27 ) 。 " TETRIS THE ABSOLUTE PLUS --The Grandmaster2-- DEATH-MODE "
12. フィードバック
12.1 スラッシュドットのスレッド( 2003 )
Benefactor of mankind--thank you! (Score:4, Funny)
by EnlightenmentFan (617608) on Tuesday January 28, @02:29PM
(#5176294)
(http://betsydevine.weblogger.com/ | Last Journal: Tuesday
January 21, @01:55PM)
Now I can set up computer #1 to play an infinite, obsessive
game of Tetris on computer #2, leaving me free at last to sit
down at computer #3 and get some work done. The $200 for
webcam and other hardware is cheap for an invention like this,
with the revolutionary potential of the wheel, or fire, or
even pizza delivery.
Thank you! Thank you! Thank you!
[ Reply to This ]
The New 4th law... (Score:5, Funny)
by gokubi (413425) on Tuesday January 28, @02:09PM (#5176135)
(http://www.gokubi.com/kinggeorge)
1. A robot may not injure a human being, or, through inaction,
allow a human being to come to harm.
2. A robot must obey the orders given it by human beings
except where such orders would conflict with the First Law.
3. A robot must protect its own existence as long as such
protection does not conflict with the First or Second Law.
4. A robot must never place the long skinny ones horizontally,
unless it leads to a long skinny vertical hole so 4 rows can
be cleared at once the next time a long skinny one comes
around.
[ Reply to This ]
Re:The New 4th law... (Score:5, Funny)
by GuyMannDude (574364) on Tuesday January 28,
@02:14PM (#5176179)
I thought Directive 4 was that any attempt to arrest a
senior officer of OCP Corporation would result in
immediate shutdown!
GMD
[ Reply to This | Parent ]

私のプロジェクトに触発さA.I.コミックテトリス(2003) (私がこれまでの最初の時間インスピレーションをコミック! )

私のプロジェクトに触発さA.I.コミックテトリス(2003) ( 2番目のタイムインスピレーションを私がこれまでの漫画! )
13. プロジェクトの歴史を、テトリスA.I.
1989年の春に私は忙しいを飛ばして(と失敗)第2学期1年生のクラスは、 University of Pennsylvaniaです。
私のルームメイトの1つ、 Bill Matthews 、 Mac Classicは、 、 、時にはビデオゲームをプレイします。
who Ivy League学校入学を得る人々は、典型的に傾斜をいつでも他の人々と競争する-これが彼のx azc試合テトリスx azd、私たちを直ちに開始するための長期的なハイスコアの戦いです。
登りの点数としては、時間に少額の投資が必要となります。利得を劇的に増加している。
をかいつまんで話せば、ハイスコアを保持してBillたぶん私たちの間に、しかし、彼のかどうかは疑わしいとのハッキングによるスコアファイルを使用してResEdit !
Bill教室を開催していたWhartonスクールオブビジネスは、 alma materのMichael MilkenとDonald Trumpので、それは想像を不正に操作させるに極端にハイスコア...
1990年の夏に30 MHz Intel 80386 IBM PCから、私のルームメイトを借りた、 Alex Haidasです。
Macキーボードを買った$ 1のフリーマーケットです。
私組み込みパラレルポートPC回路を制御するのを許可するにMacキーボードです。
(私CMOS 4040チップを使用しての役割を果たすタイプのソリッドステートリレーに参加するMacキーボードキーボード内部の連絡先です。 )
コンピュータのプログラムを書いたとして使われ、その戦略の意思決定ツリーゲームテトリスです。ほんの数週間以内にPC私はゲームをプレイするテトリスMac上で実行されています。
しかし、私は必要となります。 PCキーボードを使用してA.I.を伝える作品については、画面上の各落下します。
私は、回路を使用して働き始めたCdS (Cadmium Sulfide)光検出器Mac画面に寄り掛かるそれは、 "詳細については、 "落下してくる作品が、センサーの反応が遅かったCdSの変化に明るさ、コントラストや作品との間にテトリス画面の背景を検索するMac Classicは、低すぎる差別を確実にします。
ではこれらの日中に私はお金があまりないので、それはあまりにも危険な$ 2 Radio Shackフォトトランジスタを購入することがないと思っています。
また、与えられた問題のコントラスト、私は悲観的なアプローチについては、全体のです。
私の最初のパーソナルコンピュータを買ったときに1996年には、私の下にWindows 95を取得できませんでしたソフトウェアは、ビデオ処理の高速100 MHz CPUこれを行うに十分な仕事をするために簡単なビジョンシステムです。
画像処理のコードを書いたアセンブリ言語、しかし、多くのオーバーヘッドがあったのでビデオのデータを受信する前に私のコードを実際には、何も不可能なようにやりがいのあることです。
2003年には、技術、特にCPUスピード、レベルに達したが、仕上げのプロジェクトのほとんどを解決します。
私個人的なプロジェクトの発掘された私の古いそして最後に終了し、就学許可証のいくつかの感覚を閉鎖します。
それは非常にエキサイティングなプレーを見る1つのコンピュータから別のコンピュータにビデオカメラとUSBリレーです。
リレーの音をクリックして、作品を見てスピン&ドロップでばかげて、超人的な速度で、非常に満足のいくには、経験を多感覚です。
私は招待され表示される" Screen Savers "テレビ番組を検索するTechTVデジタルテレビのネットワークです。
私は、サンフランシスコと詳細が表示される、との経験は素晴らしいです。
2003の後で、私Henk Rogers者からのメッセージの受信、招待してくれてAlexey Pajitnovハワイに会うことを話すといくつかの並べ替えの基準を確立するテトリス、テトリスの目的のために休場しています。
1つの特定の関心は、携帯電話を使用する選手を有効にし「、互いに競い合います」 、間接的、経由A.I.を模倣選手(事前に各プレイヤーの行動を分析した) 、このように携帯電話の影響を避けるためのインターネットアクセスの待ち時間、および有効選手に「対抗する」 *人間の選手で、世界最高の(*...か、ではなく、非常にA.I.を模倣して、世界最高の人間の人物)です。
私は感激される見通しの会議室の創造のテトリスです。残念ながら、私心配して飛行する、と私の不承認の招待状です。
2006年に、私に変換マイ"標準テトリス"ソフトウェアを作るC#からC++にアクセス可能で有益な他のソフトウェアを現代のプログラマです。