锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 浠ヤ笅鏄疻in-TC鍙互鎴愬姛緙栬瘧騫舵墽琛岀殑浠g爜錛堜唬鐮佷繚璇佸崟琛岄暱搴︿笉瓚呰繃80瀛楃錛屽鏋滀綘鏄疻in7緋葷粺錛岄偅璇風(fēng)湅鍚庢枃錛夛細(xì) int trsCopy(int sp[], int x, int y, int c) { int main() { 濡傛灉浣犳病鏈塛in-TC錛屾垨鑰呬綘鏄疻in7緋葷粺錛屽彲浠ョ敤榪欎釜鑳界敤VC6緙栬瘧鐨勫伐紼嬪寘錛?br />
http://www.shnenglu.com/Files/misakamm/tetris.zip
鏈唬鐮佹墍浣跨敤鍒扮殑鎶宸э紝鍦ㄥ伐浣滀簡(jiǎn)鐨勪漢鐪奸噷浼?xì)瑙夊緱寰埦U犵粨錛屽緢铔嬬柤錛屽緢涓嶅彲鐞嗗柣錛屽緢涓戯紝
娉ㄦ剰錛屾槸浣犺泲鐤鹼紝涓嶅叧鎴戠殑浜?/p>
#include "graphics.h"
#include <conio.h>
#include <stdlib.h>
int gcW = 20, gcColor[] = {DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN,
LIGHTRED, LIGHTMAGENTA,MAGENTA, YELLOW};
struct tetris {
int _pool[16][32], (*pool)[32], tmap[8][4][16];
int x, y, s, st, t;
}gt;
int m[] = {0,32,64,96,1,33,65,97,2,34,66,98,3,35,67,99}, i, cx, cy;
for (i = 0; i < 16; ++i) if (sp[i]) {
cx = x + (m[i] >> 5), cy = y + (m[i] & 31);
if (gt.pool[cx][cy]) if (c == 2) gt.pool[cx][cy] = 0; else return 0;
if (c==1) gt.pool[cx][cy] = sp[i];
}
return 1;
}
int g = DETECT, m = 0;
initgraph(&g, &m, "");
randomize();
trsInit();
while (trsScene());
return 0;
}
int _pool[16][32], (*pool)[32], tmap[8][4][16];
int x, y, s, st, t;
}gt;
int trsCopy(int sp[], int x, int y, int c) {
int i, cx, cy;
for (i = 0; i < 16; ++i) if (sp[i]) {
cx = x + (i & 3), cy = y + (i >> 2);
if (gt.pool[cx][cy])
if (c == 2) gt.pool[cx][cy] = 0; else return 0;
if (c==1) gt.pool[cx][cy] = sp[i];
}
return 1;
}
int main() {
srand((unsigned)time(NULL));
for (trsInit(); trsScene(); );
return 0;
}
======================================鍗庝附鐨勫垎鍓茬嚎========================================
浠ヤ笅鏄浠g爜鐨勫帇緙╂柟娉曡繘琛屽垎鏋?/p>
鍏跺疄榪欎釜紼嬪簭錛屽悓鏍鋒槸浣跨敤涓涓?*4*16鐨勬暟緇勬潵淇濆瓨榪欎釜褰㈢姸琛紝浣嗘槸錛屽畠娌℃湁鐩存帴鍒濆鍖栵紝瑙佽繖涓暟緇勭殑瀹氫箟錛?br />
int sp[8][4] = {{15,4369},{23,785,116,547},{71,275,113,802},
{39,305,114,562},{54,561},{99,306},{51,51},{-1}};
榪欎釜鑾悕鍏跺鐨勬暟緇勭殑鍊兼槸浠涔堟剰鎬濆憿錛熷叾瀹炲緢濂界寽鐨勶紝鎴戜滑灝濊瘯鎶婅繖浜涙暟鍖栦負(fù)浜岃繘鍒訛細(xì)
15 = 1111
4369 = 1000100010001
1000
1000
1000
1000
鐒跺悗浣犱細(xì)鍙戠幇錛岃繖涓暟緇勫茍涓嶅畬鏁達(dá)紝鏈夌殑鍙畾涔変簡(jiǎn)涓や釜褰㈢姸錛屾湁鐨勬槸鍥涗釜褰㈢姸錛屾病瀹氫箟鐨勬暟浼?xì)榛樿缃?鐨勶紝榪欎釜鎬庝箞瑙i噴錛?br />
鐪嬭繖涓暟緇勫畾涔夌殑涓嬮潰絎簩琛岋細(xì)
for (p = sp[0]; *p >= 0; ++p) if ( *p == 0 ) *p = p[-2];
鎰忔濇槸鎵懼嚭榪欎釜鏁扮粍涓?鐨勫厓绱狅紝鐢ㄥ畠鍓嶉潰鐨勫厓绱犲煎~涓婂嵆*p = p[-2]
鑰屾暟緇勪腑鏈鍚庝竴涓厓绱犲?1璧風(fēng)洃鐫eご鐨勪綔鐢紝鐢ㄤ簬璁╄繖涓驚鐜煩鍑?br />
铏界劧鍙互鎶婅繖浜涘父鏁板叏鐩存帴鍐欏湪鏁扮粍閲岋紝浣嗗父鏁板お澶氭樉寰椾笉澶ソ錛屽氨榪欐牱鍐欎簡(jiǎn)
鐒跺悗錛屽悗闈㈢殑涓夐噸寰幆灝辨槸瑙e紑閭d釜浣嶅帇緙╂暟緇勪互鍒濆鍖杇t.tmap鏁扮粍錛岃繖涓暟緇勫氨鏄褰?*4縐嶅艦鐘剁殑鏁扮粍
鍐嶄笅闈笁琛岋紝灝辨槸鍒濆鍖杙ool錛屾父鎴忓尯涓?錛岀晫澶栦負(fù)-1
鑰屽叾涓紝i < 10鍐沖畾浜?jiǎn)娓告垙姹犵殑瀹藉害湄?fù)10錛宻izeof(int[21])鍐沖畾浜?jiǎn)娓告垙姹犵殑楂樺害鏄?0 錛?鎴戜滑涓嶄嬌鐢紝榪欎竴琛屾湁鐗規(guī)畩浣滅敤錛屽悗鏂囦細(xì)璁詫級(jí)
鐢╩emset涔熸槸涓轟簡(jiǎn)鍏嶅啓浜岄噸寰幆鑰屽凡銆傛暣涓垵濮嬪寲嫻佺▼灝卞埌榪欓噷浜?/p>
濂戒簡(jiǎn)錛屽埌浜?jiǎn)trsScene鍑芥暟錛屾暣涓父鎴忕殑涓婚昏緫嫻佺▼灝卞湪榪欓噷浜?br />
鎴戜滑鍏堢湅絎?5琛岀殑閭d釜浜岄噸寰幆錛屽彧鏈夐偅涓湴鏂規(guī)槸鏍規(guī)嵁pool淇濆瓨鐨勫兼潵杈撳嚭
鎵浠ワ紝榪欎釜鏃跺欙紝浣犲簲璇ユ槑鐧戒負(fù)浠涔坱rsCopy鍑芥暟榪樿澶嶅埗鍜屽弽澶嶅埗浜?jiǎn)锛?br />
瀹冩妸浣犳鍦ㄦ帶鍒剁殑鏂瑰潡錛屽鍒跺埌pool閲岋紝緇熶竴杈撳嚭錛岃繖鏍峰氨涓嶉渶瑕佸彟鍔犱竴涓嚱鏁版潵緇樼敾浣犵殑鎺у埗鍧椾簡(jiǎn)
濂戒簡(jiǎn)錛岀幇鍦ㄨВ閲婁箣鍓嶈鐨勶紝涓轟粈涔堜笉鏄粠0錛岃屾槸浠?寮濮?br /> 娑堣璁$畻榪欓噷錛屾瘡娑堥櫎涓琛岋紝鏈欏剁殑涓琛屽氨搴旇鐢?濉厖錛屼絾濡傛灉浣犲洜涓鴻繖涓鍐欎竴涓猣or寰幆灝變笉鍊煎緱浜?br /> 鎴戜滑鏀規(guī)垚浠?寮濮嬶紝閭d箞鎶婄0琛岀殑鍐呭澶嶅埗鍒扮涓琛岋紝灝卞畬鎴?濉厖浜?jiǎn)锛尀鍙互灏戝啓涓涓猣or
鏈鍚庯紝鍦ㄤ富寰幆闄や簡(jiǎn)鍒濆鍖栵紝鍙鍗庝附鐨勪竴琛宖or (trsInit(); trsScene(); ); 灝卞彲浠ョ帺榪欎釜娓告垙浜?/p>