Tetris
Colin Fahey
1. सॉफ्टवेयर
StandardTetris_2007June4.zip
Tetris स्रोत कोड ( C# और C++ संस्करण ) और कार्यक्रम ( "exe" ) ;
4068277 बाइट्स
MD5: 4e957e0ead66064183e9f7e04e618ec0
2. परिचय
यह लेख का वर्णन कर सकते हैं कि किस तरह एक कंप्यूटर वीडियो गेम खेलने के क्लासिक Tetris के बारे में जानकारी के बोर्ड द्वारा मिल रहा है , अच्छे कार्यों को निर्धारित करने , और उन कार्यों का निष्पादन .
यह लेख सॉफ्टवेयर शामिल हैं Tetris में खेलने में सक्षम वास्तविक समय है .
इस सॉफ्टवेयर शामिल हैं वास्तविक समय का सबसे अच्छा खेलने Tetris एल्गोरिथ्म सार्वजनिक डोमेन में है .
यह लेख परिभाषित "Tetris मानक" नियमों के लिए , एक विवरण के आधार पर 1986 के मूल संस्करण में पूर्व वाणिज्यिक Tetris के लिए निजी कंप्यूटर (PC) .
2003 में , इस अनुच्छेद में शामिल सॉफ्टवेयर का उपयोग किया गया सक्षम करने के लिए एक कंप्यूटर Tetris खेलने के लिए एक अलग कंप्यूटर पर चल रहे हैं .
एक साधारण USB वीडियो कैमरे का उपयोग किया गया सक्षम करने के लिए कंप्यूटर को "देखने" के लिए स्क्रीन के अन्य कंप्यूटर है .
बोर्ड के एक रिले एक RS-232 अंतरफलक के द्वारा नियंत्रित किया गया था सक्षम करने के लिए कंप्यूटर पर "कुंजी" को "प्रेस" के अन्य कंप्यूटर कीबोर्ड है .
इस प्रकार , कंप्यूटर के पहले के संबंध में एक दूसरे के समान है कि कंप्यूटर में एक विशिष्ट मानव संबंधों को एक कम्प्यूटर खिलाड़ी के खेल जब Tetris ; खेल राज्य के नाम से जाना जाता है केवल स्क्रीन पर भी विचार किया , और खिलाड़ी कार्रवाई शुरू की जा सकती है के माध्यम से एक की बोर्ड .
इस प्रदर्शन के विन्यास में स्थापित की है कि एक कंप्यूटर से बेहतर खेल सकते हैं Tetris एक मानव के अंतर्गत , सामान्य वास्तविक समय Tetris खेलने की स्थिति है .
3. Tetris का इतिहास
1985 में , Alexey Pajitnov कंप्यूटर इंजीनियर थे और Dmitry Pavlovsky पर Computing Center of the Russian Academy of Sciences .

Dorodnicyn Computing Centre के Russian Academy of Sciences
Alexey थे और Dmitry के विकास में दिलचस्पी और कंप्यूटर गेम बेच लत है .
वे जांच के खेल में कई अलग अलग है .
Alexey से प्रेरित था प्राचीन यूनानी पहेली खेल , Pentaminos है , जो पहेली की व्यवस्था शामिल किए गए पाँच टुकड़ों वर्ग है .
Alexey विचार के विचार के टुकड़ों के रूप में वे गिर Pentamino की व्यवस्था करने के लिए एक आयताकार कप में है , लेकिन जान लिया है कि पांच बारह विभिन्न आकारों वर्ग के लिए किए गए एक वीडियो गेम बहुत जटिल है .
Alexey में स्विच करने का उपयोग करते हुए सात टुकड़े "tetramino" , प्रत्येक वर्ग के चार बनाया है .
1985.6 में , Alexey Pajitnov क्रमादेशित के पहले संस्करण में Tetris पर Electronica 60 .

Dmitry Pavlovsky , Alexey Pajitnov , और Tetris .
1985-1986 में , Vadim Gerasimov , एक 16 वर्षीय उच्च विद्यालय कंप्यूटर पर काम किया जो विलक्षण अकादमी , Tetris के लिए लागू की IBM PC के MS-DOS ऑपरेटिंग सिस्टम चल रहा है .
( Vadim Gerasimov ने बाद में अनुसंधान में MIT Media Laboratory , 2003 से 1994 के माध्यम से , एक पीएच.डी. प्राप्त करने के बाद परियोजनाओं को पूरा करने के कई दिलचस्प :
http://vadim.www.media.mit.edu )

स्क्रीन के 1987-1988 की शुरूआत से पहले जारी की वाणिज्यिक Tetris के लिए PC

इस खेल को खेलने के स्क्रीन 1987-1988 पूर्व व्यावसायिक Tetris के लिए जारी की PC
1987 के बाद , Tetris विश्व भर में फैले हैं .
The Tetris Company, LLC , Tetris ट्रेडमार्क के मालिक हैं .
4. परियोजनाओं से प्रेरित Tetris
4.1 0 - आयामी Tetris
अभी विकसित नहीं है .
4.2 1 - आयामी Tetris
Ziga Hajdukovic ने 1 - आयामी Tetris सॉफ्टवेयर विकसित किया जा सकता है कि इंटरनेट ब्राउज़र में खेला है .
Ziga Hajdukovic ने भी विकसित 1 - आयामी Tetris सॉफ्टवेयर के लिए मोबाइल फोन का उपयोग करके Java J2ME मंच है .
4.3 2 - आयामी Tetris
सभी पारंपरिक Tetris वेरिएंट इस श्रेणी में हैं .
यह खंड शामिल हैं वेरिएंट दिलचस्प है .
4.3.1 सबसे बड़ा खेल कभी Tetris : Delft University of Technology (1995)

Tetris पर खेला निर्माण ; 2000 m^2 सतह क्षेत्र ; Delft University of Technology (1995)

Tetris पर खेला निर्माण ; 2000 m^2 सतह क्षेत्र ; Delft University of Technology (1995)
4.3.2 एक अन्य इमारत पर Tetris खेल खेला : Brown University (2000)

Tetris खेल का उपयोग करके प्रदर्शित की रोशनी में एक इमारत में खिड़कियां Brown University (2000.4-200.5) http://bastilleweb.techhouse.org
"मैं सोचता हूँ कि यह सिर्फ एक दिन की बात सबसे अविश्वसनीय मैं अपने जीवन में कल्पना कर सकता है . हमेशा की तरह नौकरियाँ स्टीव ने कहा , यात्रा के प्रतिफल है ."
"यह परियोजनाओं ने मुझे लगता है कि हमने कॉलेज में वापस . हालात थे कि लगभग undoable है कि अन्य लोगों के बारे में सोचना भी नहीं कर रहे हैं ."
Steve Wozniak (2000)
4.3.3 इंटरनेट ब्राउज़र के साथ खेल MIT "ग्रीन बिल्डिंग" छवि

Vadim Gerisimov's इंटरनेट ब्राउज़र Tetris
यह इंटरनेट ब्राउज़र Tetris मा Vadim Gerasimov द्वारा बनाया गया था .
यह इंटरनेट ब्राउज़र Tetris सुविधाओं के निर्माण पर "Green" के परिसर में MIT .
यह कॉलम Tetris मा के बजाय केवल नौ ने दस मानक कॉलम शामिल हैं .
यह नया टुकड़ों के साथ प्रस्तुत Tetris मा यादृच्छिक झुकाव है .
Vadim Gerasimov ने लिखा है वह व्यक्ति जो कंप्यूटर के लिए कोड के PC संस्करण Tetris में 1986 .
Vadim Gerasimov ने पीएच.डी. MIT Media Laboratory पर अनुसंधान के दौरान 1994-2003 , कई दिलचस्प परियोजनाओं पर काम है .
4.3.4 PIC16F84 12 MHz microcontroller आधारित NTSC / PAL वीडियो Tetris खेल

PIC16F84 12 MHz microcontroller आधारित NTSC / PAL वीडियो Tetris खेल
इस छवि के ऊपर से पता चलता है NTSC / PAL वीडियो आउटपुट द्वारा निर्मित एक PIC16F84 12 MHz microcontroller सॉफ्टवेयर द्वारा लिखित Rickard Gunee में चल रहे 1998 .
इस वीडियो संकेत है सॉफ्टवेयर के द्वारा उत्पन्न नियंत्रण के डिजिटल outputs .
4.3.5 "Scopetris" Oscilloscope Tetris द्वारा Lars Pontoppidan (2007.8)

"Scopetris" Oscilloscope Tetris द्वारा Lars Pontoppidan (2007.8)
Lars Pontoppidan के लिए कोड के AtMega32 microcontroller ने लिखा है , और कहा कि सरल अनुरूप circuitry , Tetris संस्करण बनाने के लिए किया जा सकता है कि एक oscilloscope पर खेला है .
कुछ रजिस्टरों के AtMega32 microcontroller नियंत्रण 8 बिट संकेत उत्पादन है , और , जब एक के माध्यम से पारित "R-2R" विद्युत परिपथ resistor करने के लिए डिजिटल रूपांतरण (D/A) अनुरूप है , जिसके परिणामस्वरूप अनुरूप संकेतों को नियंत्रित कर सकते हैं (x,y) निर्देशांक की एक किरण oscilloscope ( जब oscilloscope है "X-Y मोड" सेट करने के लिए ) .
YouTube वीडियो :
FLV वीडियो :
4.3.6 Obfuscated कोड Tetris : 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 Obfuscated कोड Tetris : Perl कोड
इस प्रकार है Tetris के लिए 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 Tetris
Scalable Vector Graphics (SVG) वर्णन के लिए एक मानक है ग्राफिकल XML वस्तुओं का उपयोग करते हुए .

Mozilla SVG Tetris : Tetris लागू Scalable Vector Graphics (SVG) का उपयोग करते हुए एक वर्णन
4.3.9 Google "widget" Tetris
Google , Yahoo! , और Microsoft , और अन्य कंपनियों के पास इंटरनेट आधारित लघु बढ़ावा "widgets" सॉफ्टवेयर का नाम है जो कि आम तौर पर कुछ विशेषता के उपयोग की गतिशील डाटा को इंटरनेट पर उपलब्ध है .
ऐसा ही एक widget के माध्यम से उपलब्ध Google है Tetris खेल है .
निम्नलिखित उदाहरण है आकर्षक है , लेकिन आकारों में घुमाने कष्टप्रद तरीके :

Google "widget" Tetris
अन्य Google widgets :
4.3.10 MIT शोध पत्र : "Tetris is Hard, Even to Approximate" (2002)
निम्नलिखित दस्तावेज़ में अनुसंधान का सबूत है कि एक खास किस्म की है Tetris मा "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 , दक्षिण अफ्रीका , आवेदन प्रस्तुत करने के लिए "सीखने" का "प्रबलन" Tetris .
4.3.12 Tetris स्कर्ट (2007.11)

Tetris स्कर्ट (2007.11)
इस Tetris स्कर्ट के द्वारा बनाया गया था "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."
इस फोरम के बारे में स्कर्ट टिप्पणियाँ :
"स्कर्ट पर आशंका है कि मनुष्य Tetris"
"Ahahahaha , मैंने सोचा कि एक ही चीज है ."
"वहां की एक पूरी की रेखा से नीचे के नीचे ... लाइनें पूरी गायब हो जाते हैं ." "अधिक करते हैं" "."
"हाजिर होना चाहिए या फिर सामने जहाँ में लंबे समय से टुकड़े को एकदम फिट ..."
"वास्तव में यह एक भयानक स्कर्ट है . मेरा सखा मुझे पर्याप्त नहीं कर सके खरीदने के लिए चॉकलेट और फूलों से समझाने के लिए मेरे पहनते हैं कि चीज है ."
4.3.13 Tetris चरण अधिनियम (2007.4)

Tetris चरण अधिनियम (2007.4)
"उन में से लाया है कि आप के Triforce में 2006 ... अगली पीढ़ी के आती है निर्जीव वस्तु प्रहसन ... Tetris ."
स्थानीय वीडियो में Flash कैश्ड (FLV) वीडियो प्रारूप ( VLC खेलने के लिए उपयोग करें ) :
4.3.14 प्रफुल्लित करने वाला एक जापानी टेलीविजन पर Tetris भिन्नरूप दिखाने

जापानी टेलीविजन पर Tetris भिन्नरूप दिखाने
यह वीडियो क्षेत्र से एक जापानी टेलीविजन शो Tetris परिवर्तनों से प्रफुल्लित करने वाला शामिल हैं , जिनमें शामिल हैं :
पर उतरने के टुकड़े हो कि , एक टुकड़ा भरता है कि एक संपूर्ण पंक्ति ( एक पंक्ति पर उतरने को पूरा इस प्रकार ) , एक साथ कई टुकड़े गिरते , अनियमित आकार के टुकड़ों , एक टुकड़ा है जो लंबे समय से थोड़ा बहुत व्यापक में फिट होने के लिए एक अंतर ( 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 पर Palais डे Rumine ( लॉज़ेन , स्विट्जरलैंड ) पर November 24th 2007 .
स्थानीय वीडियो में Flash कैश्ड (FLV) वीडियो प्रारूप ( VLC खेलने के लिए उपयोग करें ) :
4.3.16 2.5 आयामी Tetris
"2.5" शब्द का प्रयोग किया जाता है "आयामी" करने के लिए यहाँ मतलब है एक गैर orthogonal को देखते हुए एक दो आयामी Tetris संस्करण के साथ , कुछ मोटाई में तीसरा आयाम है .
( लिंक का पता लगाएं , "tetris3d" में "F7: GAMES" . )
4.4 3 आयामी Tetris

Linux / GTK संस्करण
तीन आयामी Tetris के रूप में एक Java applet इंटरनेट ब्राउज़र के लिए :
Tetris तीन आयामी Windows ऑपरेटिंग सिस्टम के लिए :
4.5 4 आयामी Tetris

Greg Kaiser's "HyperTetris" (1996) : 4 एक आयामी Tetris
[1996], [...] में , Greg Kaiser को मिलाकर चार आयामी variant पर क्लासिक खेल है .
उन्होंने एक कार्यदल बनाया का उपयोग IrisGL (a.k.a. igl) , यदि हार्ड खेलने के लिए , खेल का उपयोग करते हुए चार उप प्रस्तुत करने के लिए स्क्रीन के विभिन्न पहलुओं के बारे में तीन आयामी पूरे खेल का स्थान है .
[ के कारण ] वहां आसानी से नहीं है [ बोधगम्य ] तरह से आकर्षित करने के लिए चार वस्तुओं डी डी स्क्रीन पर एक दो , चार उप विचार कर रहे हैं हेरफेर करने के लिए एक व्यावहारिक और विधि visualize के रोटेशन के टुकड़े और अनुवाद के माध्यम से चार आयामों ( इस खेल में x,y,z,w कहा जाता है ) .
लाइनों को पूरा करने के बजाए मूल के ब्लॉक के रूप में , लक्ष्य यह है कि इस मामले में पूरी तरह से भर में घन x,y,z subview ( आमतौर पर 4 से 4 के द्वारा 4 ) .
subviews के अन्य आयाम हैं जिनमें "w" की व्यवस्था में एक डिफ़ॉल्ट 4 के द्वारा 4 के द्वारा 10 ब्लॉक की व्यवस्था की जा रही "w" के साथ लंबे , "vertical" तीन आयाम में सभी मामलों में , विभिन्न अड्डों के साथ (x,y), (x,z), (y,z) .
गुरुत्व "-w" दिशा में कार्य करता है , इसलिए "नीचे" गिर टुकड़ों में लंबे समय से तीन subviews कि "w" शामिल हैं , और जब तक नहीं ले खिलाड़ी द्वारा नियंत्रण में पिछले (x,y,z) subview .
यह awhile को प्राप्त करने के लिए प्रयोग किया जाता है , का कहना है कि कम से कम करने के लिए .
यदि धैर्य के द्वारा कुछ चमत्कार या बदलने के मापदंडों के इस खेल में , एक एक घन पूरा करता है , यह पूरी की लाइनों के रूप में गायब हो जाते हैं Tetris के मूल में है , हालांकि कोई स्कोर HyperTetris में रखा है .
Benjamin Bernard (2000)
4.6 N - आयामी Tetris

Polytope Tetris (2003) : एक N - आयामी Tetris खेल मा
Polytope Tetris है n - dimensionally Tetris .
HyperTetris से प्रेरित होकर इस कार्यक्रम में , Polytope Tetris टन की मदद से आप किसी भी खेल में Tetris संख्या आयाम है .
प्ले Tetris में 3D , 4D , 5D , या अधिक है .
HyperTetris है catchier नाम की तुलना में काफी Polytope ( def ) Tetris है , लेकिन चोरी के नाम से मैं नहीं कर सकता .
5. "मानक Tetris" विनिर्देशन
5.1 परिचय
इस परिभाषा के "मानक Tetris" है idealized एक मॉडल के सर्वाधिक महत्वपूर्ण विशेषताएं और behaviors के कार्यान्वयन के पहले IBM-PC खेल Tetris ( लगभग 1986-1988 ) .
idealized के मॉडल पर आधारित है inferring के इरादे स्पष्ट की पहली IBM-PC डेवलपर्स के कार्यान्वयन के Tetris खेल है .
उदाहरण के लिए , ऐसा लगता है कि यह उचित डेवलपर्स को अनुमान है कि पहले IBM-PC के कार्यान्वयन के Tetris खेल का चयन करने के उद्देश्य से प्रत्येक के आकार का नया टुकड़े गिरते "अनियमित" है , और यह कि Borland C के प्रयोग के कार्यान्वयन के rand() समारोह की केवल एक व्यावहारिक के सन्निकटन का इरादा है .
इस परिभाषा के "मानक Tetris" निर्दिष्ट करता है कि नया आकार प्रत्येक टुकड़े गिरने का चयन किया जाना है "अनियमित" है .
यह आदर्श व्यवहार के द्वारा प्राप्त नहीं किया जा सकता है लागू करने में कोई है , लेकिन लगभग आदर्श व्यवहार implementations कर सकते हैं .
पूर्ण रूप से लागू नहीं कर सकते हैं हालांकि कार्यान्वयन की परिभाषा "मानक Tetris" , "मानक" के आदर्शों के उद्देश्य "Tetris" विशेषताएँ शामिल है , और हो सकता है implementations की तुलना में निकटता के अनुसार उनके रिश्तेदार के आदर्शों के "मानक Tetris" .
यह खंड का वर्णन का एक सेट के तत्वों , behaviors , और नियमों को , जो , सामूहिक , परिभाषित "मानक Tetris" .
5.2 Tetris मानक बोर्ड
बोर्ड का एक ग्रिड की कोशिकाओं , 10 कॉलम होने , और 20 पंक्तियाँ , कोशिकाओं के लिए कुल 10 * 20 = 200 .

मानक Tetris बोर्ड ( 10 कॉलम , 20 पंक्तियाँ )
प्रत्येक सेल किया जा सकता है या तो खाली ( खाली ) या कब्जा ( पूर्ण ) .
5.3 मानक Tetris टुकड़ों
सात (7) मानक हैं Tetris टुकड़ों के साथ निम्नलिखित के नाम पत्र :
{ O, I, S, Z, L, J, T }
इस पत्र के नाम से प्रेरित हैं आकार के टुकड़ों की है .

सात मानक Tetris टुकड़ों और उनके "झुकाव"
इस पर डॉट (0,0) बोर्ड की स्थिति के साथ मेल खाता है (6,20) टुकड़ा पहले जब लगता है .
शो के पहले स्तम्भ प्रारंभिक "झुकाव" है .
बाद में , इस शब्द का प्रयोग किया जाता है "अभिविन्यास" का वर्णन करने के लिए किसी भी राज्य की एक टुकड़ा , राज्यों के भीतर का एक सेट की अनुमति दे दी है , कर सकते हैं कि परिणाम वामावर्त्त रोटेशन से एक घटना है .
"अभिविन्यास" बदलने से एक निर्धारित "अभिविन्यास" के एक "I" , "S" , या "Z" टुकड़ा है , एक रोटेशन का संयोजन की आवश्यकता होती है और एक अनुवाद है .
इसलिए , शब्द का प्रयोग किया जाता है "अभिविन्यास" करने के लिए यहाँ मतलब है कुछ रोटेशन से अधिक ही है .
लेकिन , "अभिविन्यास" के उत्तर में परिवर्तित कर सकते हैं केवल एक वामावर्त्त रोटेशन घटना है , और इस चक्र के प्रत्येक के लिए अलग "झुकाव" टुकड़ा approximates , या मिलान , जिसके परिणामस्वरूप के चक्र से शुद्ध rotations .
इस शब्द के उपयोग की विशेष "अभिविन्यास" इस संदर्भ में लगभग बराबर शब्द का अर्थ या "रोटेशन कोण" , लेकिन इस शब्द का प्रयोग किया जाता है "अभिविन्यास रोटेशन" के स्थान पर लाने के लिए प्रयास करने के लिए इस तथ्य को ध्यान की जरूरत है कि कुछ टुकड़ों से अधिक के रोटेशन के उत्पादन के लिए राज्यों के सेट की अनुमति दी जिसके परिणामस्वरूप वामावर्त्त "रोटेशन" की घटनाओं से है .
टुकड़ों से स्विच कर सकते हैं केवल झुकाव ( या एक विशिष्ट को क्षैतिज या खड़ी अनुवाद ) यदि जिसके परिणामस्वरूप राज्य के टुकड़े नहीं होगा कोई कब्जा ( पूर्ण ) कोशिकाओं के क्षेत्र से परे नहीं है और बोर्ड ने किसी भी समय किसी भी कब्जा अतिव्याप्ति जो कोशिकाओं की कोशिकाओं पर कब्जा बोर्ड की .
( इस नियम है , पर कब्जा ( पूर्ण ) कोशिकाओं के टुकड़े नहीं माना जाता के भाग के रूप में "वर्तमान में कोशिकाओं के बोर्ड पर कब्जा"
निम्न टिप्पणी में , किसी भी परिणाम के संदर्भ में एक घटना में एक वामावर्त्त रोटेशन के साथ किया जाता है कि इस तरह की धारणा वास्तव में किया जा सकता है रोटेशन प्रदर्शन को देखते हुए मौजूदा स्थिति का टुकड़ा और बोर्ड है .
इस "O" ( बॉक्स ) ने केवल एक ही अभिविन्यास टुकड़ा है , और कोई बदलाव नहीं होता है कि किसी भी अपने स्थानों पर कब्जा ( पूर्ण ) कोशिकाओं के उत्तर में किसी भी घटना वामावर्त्त रोटेशन .
इस "I" ( पंक्ति ) के दो टुकड़े झुकाव संभव है , शुरू में दिखने में एक क्षैतिज अभिविन्यास .
यह टुकड़ा "I" घटाने के बीच दो झुकाव के उत्तर में लगातार वामावर्त्त रोटेशन घटनाओं .
"S" और प्रत्येक के पास दो टुकड़ों "Z" संभव झुकाव है .
ये दो टुकड़ों के बीच प्रत्येक वैकल्पिक झुकाव के उत्तर में लगातार वामावर्त्त रोटेशन घटनाओं .
इस "L" , "J" , और "T" टुकड़ों से प्रत्येक के पास चार झुकाव संभव हो , और ये हैं झुकाव के परिणामों के बारे में सरल rotations केन्द्र बिंदु पर आकृति है .
पहले आता है जब एक टुकड़े पर बोर्ड के टुकड़े ने अपने "प्रमुख धुरी" में एक क्षैतिज अभिविन्यास , और टुकड़ा है कि बोर्ड में सबसे ऊपर है .
इसलिए , नहीं टुकड़ों से शुरू कर रहे हैं उनके झुकाव परिवर्तित करने में सक्षम है . उतरना चाहिए द्वारा इस टुकड़े को एक पंक्ति के पास होने की संभावना की अपनी अभिविन्यास बदल गया है .
एक बार एक टुकड़ा गिर गया है कि बोर्ड द्वारा एक पंक्ति पर , सभी टुकड़ा झुकाव प्राप्त किया जा सकता है ( संभालने के टुकड़े भी नहीं है या दीवारों पक्ष के निकट से चालू करने के लिए ढेर के टुकड़े ) .
5.4 मानक Tetris प्रवाह संचित्र
इस प्रकार है लगभग एक प्रवाह संचित्र Tetris खेल के लिए एक मानक है .

अनुमानित प्रवाह संचित्र के लिए एक मानक Tetris खेल

अनुमानित प्रवाह संचित्र के लिए एक मानक Tetris खेल
5.5 मानक Tetris निर्माण टुकड़ा
निम्न चित्र को दिखाता है ( 4 * 2 सेल सेल ) के क्षेत्र में जहां सभी टुकड़ों को बोर्ड पर दिखाई देते हैं जब बनाया है .

क्षेत्र है जहां टुकड़ों में दिखाई देते हैं जब बनाया मानक Tetris
पहले आता है जब एक नया टुकड़े को बोर्ड पर , इसके मूल के साथ मेल खाता है डॉट इस पर चित्र , और पूरी तरह शामिल किया जाएगा टुकड़ा धूसरित द्वारा इस क्षेत्र पर चित्र है .
जब एक नया खेल शुरू किया है , एक पूर्ण मुक्त गिरावट elapses देरी है , और मुक्त गिरावट पर पहली iteration एक टुकड़ा है जन्म के बोर्ड में सबसे ऊपर है .
सामान्य खेल खेलने के दौरान , जब एक विशिष्ट गिरावट iteration मुक्त "भूमि" का टुकड़ा है , एक पूर्ण मुक्त गिरावट elapses और देरी पर अगले मुक्त गिरावट iteration एक टुकड़ा है जन्म के बोर्ड में सबसे ऊपर है .
जब जन्म एक टुकड़ा है , के प्रकार के टुकड़े चुना है कलन विधि का प्रयोग करते हुए निम्नलिखित हैं :
pieceIndex = 1 + (randomInteger % 7); // 1..7
क्योंकि है निरंतर का मौका p (= 1/7) का चयन एक विशेष प्रकार का टुकड़ा है , और इसी प्रकार सभी टुकड़े अप्रभेद्य हैं , ठीक होने की संभावना k टुकड़े को एक विशिष्ट प्रकार के बाद n परीक्षणों के बाद एक Binomial वितरण :
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 ( सात ) के टुकड़ों पर यादृच्छिक , विशिष्ट होने की संभावना है p=(1/7) टुकड़ा है .
यदि हम इस बार n=70 , उदाहरण के लिए , ठीक होने की संभावना के टुकड़ों k ( k के साथ सीमा 0 में n करने के लिए ) द्वारा दिया जाता है binomial वितरण , के रूप में निम्नलिखित छवि में दिखाया गया है .

Binomial वितरण के लिए n=70 , p=(1/7)
इस प्रकार , एक भविष्यवाणी कर सकते हैं कुल औसत टुकड़े को एक ही प्रकार की कुल संख्या के यादृच्छिक टुकड़ों , और एक आशा की गणना भी कर सकते हैं विचरण और मानक विचलन ( वर्गमूल के विचरण ) :
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"
[ MS-DOS के पूर्व व्यावसायिक संस्करण का प्रयोग किया है Tetris यादृच्छिक संख्या के द्वारा Borland Pascal संकलक समारोह की पेशकश की है .
यह समारोह का उपयोग राज्य के 32 बिट चर .
इसलिए , अनुक्रम यादृच्छिक संख्या सीमित करने के लिए किया गया था 2^32 मूल्यों अलग है .
इसलिए , सिद्धांत रूप में , एक खिलाड़ी का पता कर सकते हैं , शायद 10 टुकड़ों से गिर जाने के बाद , सटीक स्थान में 2^32 की संख्या निर्धारित करने के लिए इसी की वर्तमान स्थिति का खेल है .
यदि Tetris हैं मार डाला सिमुलेशन के साथ निर्धारित अनुक्रम के टुकड़ों 2^32 , फिर इष्टतम निर्णयों के लिए हर स्थान पर पाया जा सकता है अनुक्रम में है .
( कुछ को लगता है कि बोर्ड की जा रही करने के लिए पर्याप्त अवसर करने के लिए एक पूरी तरह से खाली बोर्ड राज्य की अनुमति प्राप्त करने के लिए हमें तुल्यकालन के साथ precomputed इष्टतम समाधान मार्ग है . )
का जोखिम का उपयोग करते हुए एक सरल में एक यादृच्छिक संख्या जनक अनुकरण करने के उद्देश्य से एक इष्टतम समाधान ढूँढने के लिए एक समस्या यह है कि इष्टतम समाधान के लिए ही किया जाएगा पथ के माध्यम से इस समस्या का विशेष स्थान का चयन द्वारा सरल यादृच्छिक संख्या जनक है . ]
5.6 मानक नियंत्रण Tetris
खेल खेलने के दौरान , निम्नलिखित आदानों उपलब्ध हैं :
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
सभी आदानों पर ले बढ़ते प्रभाव के किनारे के सकारात्मक इनपुट ( बटन पर प्रेस , विरोध के रूप में जारी करने के लिए बटन ) .
जब एक प्रेस बटन होता है , इस देश के रूप में निवेदन है .
एक बटन कम होल्डिंग से परे एक निश्चित समय में परिणाम हो सकता है "स्वत : दोहराने" की सुविधा में एक की बोर्ड , उत्पादन नया बटन प्रेस -- लेकिन इस सुविधा से बाहर का खेल इंजन है .
इस निवेश के अनुरूप ऊपर निर्दिष्ट करने के लिए मूल Tetris खेल है .
घुमाएँ अनुरोध किया जा सकता है तो मार डाला नहीं है अतिव्याप्ति के बीच वांछित अभिविन्यास और कोशिकाओं पर वर्तमान बोर्ड ( गिरने के टुकड़े को छोड़कर ) , और यदि अपेक्षित नहीं है अभिविन्यास सेट कोशिकाओं के बाहर बोर्ड क्षेत्र है .
अनुवाद अन