<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[C++源码]：一个俄罗斯方块的源代码]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 19 Nov 2006 12:40:57 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<p align="center">#include<dos.h> <br/>#include<stdlib.h> <br/>#include<conio.h> <br/>#include<graphics.h> <br/>#include<stdio.h> <br/>#include<bios.h> <br/><br/>#define LEFT 0x4b <br/>#define RIGHT 0x4d <br/>#define DOWN 0x50 <br/>#define CHANGE 0x20 <br/>#define ESC 0x1b <br/>#define INTR 0x1C <br/>#define DefaultX 5 <br/>#define DefaultY 1 <br/>#ifdef __cplusplus <br/>#define __CPPARGS ... <br/>#else <br/>#define __CPPARGS <br/>#endif <br/><br/>static unsigned counter=0; <br/>static unsigned shape[7][4][4][4]=&#123; <br/>&#123; <br/>&#123;&#123;0,1,1,0&#125;,&#123;0,1,1,0&#125;,&#123;0,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,1,1,0&#125;,&#123;0,1,1,0&#125;,&#123;0,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,1,1,0&#125;,&#123;0,1,1,0&#125;,&#123;0,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,1,1,0&#125;,&#123;0,1,1,0&#125;,&#123;0,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#125;, <br/>&#123; <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,1,1,1&#125;,&#123;0,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,1,0&#125;,&#123;0,0,1,0&#125;,&#123;0,0,1,0&#125;,&#123;0,0,1,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,1,1,1&#125;,&#123;0,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,1,0&#125;,&#123;0,0,1,0&#125;,&#123;0,0,1,0&#125;,&#123;0,0,1,0&#125;&#125;, <br/>&#125;, <br/>&#123; <br/>&#123;&#123;0,1,0,0&#125;,&#123;1,1,1,0&#125;,&#123;0,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,1,0,0&#125;,&#123;0,1,1,0&#125;,&#123;0,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,1,1,0&#125;,&#123;0,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,1,0,0&#125;,&#123;1,1,0,0&#125;,&#123;0,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#125;, <br/>&#123; <br/>&#123;&#123;1,0,0,0&#125;,&#123;1,1,0,0&#125;,&#123;0,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;0,1,1,0&#125;,&#123;1,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;1,0,0,0&#125;,&#123;1,1,0,0&#125;,&#123;0,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;0,1,1,0&#125;,&#123;1,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#125;, <br/>&#123; <br/>&#123;&#123;0,1,0,0&#125;,&#123;1,1,0,0&#125;,&#123;1,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,1,0,0&#125;,&#123;0,1,1,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,1,0,0&#125;,&#123;1,1,0,0&#125;,&#123;1,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,1,0,0&#125;,&#123;0,1,1,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#125;, <br/>&#123; <br/>&#123;&#123;1,0,0,0&#125;,&#123;1,0,0,0&#125;,&#123;1,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,1,1,0&#125;,&#123;1,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;1,1,0,0&#125;,&#123;0,1,0,0&#125;,&#123;0,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;0,0,1,0&#125;,&#123;1,1,1,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#125;, <br/>&#123; <br/>&#123;&#123;0,1,0,0&#125;,&#123;0,1,0,0&#125;,&#123;1,1,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,0,0,0&#125;,&#123;1,1,1,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;1,1,0,0&#125;,&#123;1,0,0,0&#125;,&#123;1,0,0,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#123;&#123;0,0,0,0&#125;,&#123;1,1,1,0&#125;,&#123;0,0,1,0&#125;,&#123;0,0,0,0&#125;&#125;, <br/>&#125;, <br/>&#125;; <br/><br/>unsigned back[22][14]=&#123;&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,0,0,0,0,0,0,0,0,0,0,1,1&#125;, <br/>&#123;1,1,1,1,1,1,1,1,1,1,1,1,1,1&#125;, <br/>&#123;1,1,1,1,1,1,1,1,1,1,1,1,1,1&#125;&#125;; <br/><br/>char ShapeColor[7]=&#123;8,10,11,12,13,14,15&#125;; <br/>char DigitalShape[10]=&#123;128+119,3,62,31,128+75,128+93,128+125,19,128+127,128+95&#125;; <br/>char ZodiacBack[11]=&#123;4,6,12,13,11,10,2,3,9,1,8&#125;; <br/>char ZodiacSoft[18][14]=&#123;&#123;0,0,0,0,96,0,0,0,0,0,0,0,60,0&#125;, <br/>&#123;255,248,0,0,96,0,0,0,0,248,0,0,124,0&#125;, <br/>&#123;255,248,0,0,97,128,0,0,3,248,0,0,192,0&#125;, <br/>&#123;0,112,0,0,97,128,0,0,7,0,0,1,128,48&#125;, <br/>&#123;0,224,0,0,96,0,0,0,14,0,0,1,128,48&#125;, <br/>&#123;1,192,0,0,96,0,0,0,12,0,0,1,128,48&#125;, <br/>&#123;3,128,120,15,97,128,240,60,12,0,15,15,249,255&#125;, <br/>&#123;7,0,252,31,225,131,248,127,14,0,31,143,249,255&#125;, <br/>&#123;7,1,142,48,225,135,24,227,7,240,49,193,128,48&#125;, <br/>&#123;14,3,134,96,97,142,24,192,3,252,112,193,128,48&#125;, <br/>&#123;28,3,6,96,97,140,25,192,0,28,96,193,128,48&#125;, <br/>&#123;56,3,6,96,97,140,25,128,0,6,96,193,128,48&#125;, <br/>&#123;56,3,6,96,97,140,25,128,0,6,96,193,128,48&#125;, <br/>&#123;120,3,6,96,97,140,25,128,0,6,96,193,128,48&#125;, <br/>&#123;224,1,140,48,225,142,25,195,24,14,49,129,128,48&#125;, <br/>&#123;255,249,252,63,225,135,252,255,28,28,63,129,128,48&#125;, <br/>&#123;255,248,240,15,97,131,236,60,15,248,30,1,128,48&#125;, <br/>&#123;0,0,0,0,0,0,0,0,7,224,0,1,128,0&#125;&#125;; <br/><br/>unsigned long TotalMark=0; <br/>unsigned int Erasered=0,ETimes=0; <br/>int Speed=0; <br/>int CEr=0; <br/>int NumOfLev[5]=&#123;0,0,0,0,0&#125;; <br/>int TimeDelay[10]=&#123;21,18,17,15,13,11,9,7,5,3&#125;; <br/>char NewShape[2]; <br/>unsigned PerOnce[4]; <br/><br/>void interrupt ( *oldhandler)(__CPPARGS); <br/>void interrupt handler(__CPPARGS) <br/>&#123; <br/>++counter; <br/>oldhandler(); <br/>&#125; <br/><br/>void DrawBackground() <br/>&#123; <br/>//setlinestyle <br/>&#125; <br/>void DrawDigital(int x,int y,int a) <br/>&#123; <br/>int i=7; <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>//printf("%d",(DigitalShape[a]>>i)&1); <br/>i--; <br/>line(x,y+1,x,y+15); <br/>line(x+1,y+2,x+1,y+14); <br/>line(x+2,y+3,x+2,y+13); <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>i--; <br/>line(x,y+17,x,y+31); <br/>line(x+1,y+18,x+1,y+30); <br/>line(x+2,y+19,x+2,y+29); <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>i--; <br/>line(x,y+17,x,y+31); <br/>line(x+1,y+18,x+1,y+30); <br/>line(x+2,y+19,x+2,y+29); <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>i--; <br/>line(x+1,y,x+16,y); <br/>line(x+2,y+1,x+15,y+1); <br/>line(x+3,y+2,x+14,y+2); <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>i--; <br/>line(x+2,y+15,x+15,y+15); <br/>line(x+1,y+16,x+16,y+16); <br/>line(x+2,y+17,x+15,y+17); <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>i--; <br/>line(x+3,y+30,x+14,y+30); <br/>line(x+2,y+31,x+15,y+31); <br/>line(x+1,y+32,x+16,y+32); <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>i--; <br/>line(x+15,y+3,x+15,y+13); <br/>line(x+16,y+2,x+16,y+14); <br/>line(x+17,y+1,x+17,y+15); <br/>setcolor(((DigitalShape[a]>>i)&1)*7+4); <br/>line(x+15,y+19,x+15,y+29); <br/>line(x+16,y+18,x+16,y+30); <br/>line(x+17,y+17,x+17,y+31); <br/>&#125; <br/><br/>void ArtClear() <br/>&#123; <br/>for(int i=480;i>=0;i-=2) <br/>&#123; <br/>setcolor(3); <br/>line(0,i-6,639,i-6); <br/>setcolor(9); <br/>line(0,i-4,639,i-4); <br/>setcolor(1); <br/>line(0,i-2,639,i-2); <br/>setcolor(getbkcolor()); <br/>line(0,i,639,i); <br/>delay(1); <br/>&#125; <br/>for(i=1;i<480;i+=2) <br/>&#123; <br/>setcolor(3); <br/>line(0,i+6,639,i+6); <br/>setcolor(9); <br/>line(0,i+4,639,i+4); <br/>setcolor(1); <br/>line(0,i+2,639,i+2); <br/>setcolor(getbkcolor()); <br/>line(0,i,639,i); <br/>delay(1); <br/>&#125; <br/>&#125; <br/><br/>void end() <br/>&#123; <br/>for(int j=0;j<4;j++) <br/>&#123; <br/>for(int i=j;i<480;i+=4) <br/>&#123; <br/>setcolor(3); <br/>line(0,i+8,639,i+8); <br/>setcolor(9); <br/>line(0,i+4,639,i+4); <br/>setcolor(1); <br/>line(0,i,639,i); <br/>setcolor(getbkcolor()); <br/>line(0,i,639,i); <br/>delay(1); <br/>&#125; <br/>delay(5); <br/>&#125; <br/>setcolor(YELLOW); <br/>outtextxy(260,200,"[ Game Over ]"); <br/>gotoxy(14,16); <br/>printf("This freeware is written by Daniel.Qu ZodiacSoft 2000"); <br/>gotoxy(12,17); <br/>printf("Please e-mail to swami@yeah.net or visit my homepage at"); <br/>gotoxy(12,18); <br/>printf("http://grocery.2699.com if you have question."); <br/>gotoxy(14,20); <br/>printf("I will soon provide something new,please wait..."); <br/>gotoxy(14,22); <br/>printf("We hold these truths to be self-evident,that all codes"); <br/>gotoxy(12,23); <br/>printf("are created FREE."); <br/>getch(); <br/>clrscr(); <br/>closegraph(); <br/>exit(0); <br/>&#125; <br/><br/>void ShowTitle() <br/>&#123; <br/>int gdriver=DETECT,gmode,errorcode,i,j,k; <br/>initgraph(&gdriver,&gmode,""); <br/>errorcode=graphresult(); <br/>if (errorcode!=grOk) <br/>&#123; <br/>printf("Graphics error: %s&#92;n&#92;007",grapherrormsg(errorcode)); <br/>exit(1); <br/>&#125; <br/>setbkcolor(9);//This line needs to be changed <br/>for(i=0;i<11;i++) <br/>&#123; <br/>setcolor(ZodiacBack[i]); <br/>line(200,i*8+100,440,i*8+100); <br/>&#125; <br/>delay(1000); <br/>for(j=0;j<17;j++) <br/>for(i=0;i<11;i++) <br/>&#123; <br/>setcolor(ZodiacBack[(i+j)%16]); <br/>line(200,i*8+100,440,i*8+100); <br/>delay(4); <br/>&#125; <br/>for(j=0;j<18;j++) <br/>&#123; <br/>for(i=0;i<14;i++) <br/>&#123; <br/>for(k=7;k>=0;k--) <br/>if((ZodiacSoft[j][i]>>k)&1) <br/>&#123; <br/>putpixel(i*8-k+271,j+122,14); <br/>&#125; <br/>&#125; <br/>delay(10); <br/>&#125; <br/>for(j=17;j>=0;j--) <br/>&#123; <br/>for(i=0;i<14;i++) <br/>for(k=7;k>=0;k--) <br/>&#123; <br/>if((ZodiacSoft[j][i]>>k)&1) <br/>putpixel(i*8-k+271,158-j,5); <br/>&#125; <br/>delay(10); <br/>&#125; <br/>setcolor(15); <br/>outtextxy(295,171,"Present"); <br/>getch(); <br/>ArtClear(); <br/>&#125; <br/><br/>void DrawShape(int x,int y,int color) <br/>&#123; <br/>//if(x<2&#124;&#124;x>12&#124;&#124;y>19) <br/>// return; <br/>setcolor(color); <br/>/*line(x<<4,y<<4,x<<4,(y<<4)+14); <br/>line(x<<4,(y<<4)+14,(x<<4)+14,(y<<4)+14); <br/>line((x<<4)+14,(y<<4)+14,(x<<4)+14,y*16); <br/>line((x<<4)+14,y<<4,x<<4,y*16); <br/>line((x<<4)+1,y<<4,(x<<4)+1,(y<<4)+14); <br/>line((x<<4)+1,(y<<4)+13,(x<<4)+14,(y<<4)+13); <br/>line((x<<4)+13,(y<<4)+13,(x<<4)+13,(y<<4)+1); <br/>line((x<<4)+13,(y<<4)+1,x<<4,(y<<4)+1); */ <br/>for(int i=0;i<15;i++) <br/>line(x<<4,(y<<4)+i,(x<<4)+14,(y<<4)+i); <br/>setcolor(8); <br/>line((x<<4)+15,(y<<4)+1,(x<<4)+15,(y<<4)+15); <br/>line((x<<4)+1,(y<<4)+15,(x<<4)+15,(y<<4)+15); <br/>setcolor(color-8); <br/>line((x<<4)+2,(y<<4)+2,(x<<4)+12,(y<<4)+2); <br/>line((x<<4)+2,(y<<4)+2,(x<<4)+2,(y<<4)+12); <br/>&#125; <br/><br/>void DrawNull(int x,int y) <br/>&#123; <br/>setcolor(getbkcolor()); <br/>for(int i=0;i<16;i++) <br/>line(x<<4,(y<<4)+i,(x<<4)+15,(y<<4)+i); <br/>&#125; <br/><br/>void show(int x,int y,int CurrentShape,int Status) <br/>&#123; <br/>int temp; <br/>for(int i=0;i<20;i++) <br/>for(int j=2;j<12;j++) <br/>&#123; <br/>if(back[i][j]==1) <br/>DrawShape(6+j,4+i,8); <br/>else <br/>DrawNull(6+j,4+i); <br/>&#125; //no matter what the status be,I will draw the background <br/>for(int l=0;l<4;l++) <br/>for(int p=0;p<4;p++) <br/>&#123; <br/>if(l+x<2&#124;&#124;x+l>11&#124;&#124;p+y>19) <br/>continue; <br/>//if(shape[CurrentShape][Status][p][l]+back[y+p][x+l]==1) <br/>// DrawShape(3+l+x,3+p+y,8+CurrentShape); <br/>//else <br/>//cout<<'O'; <br/>// DrawNull(3+j,3+i); <br/>if(shape[CurrentShape][Status][p][l]==1) <br/>DrawShape(6+l+x,4+p+y,ShapeColor[CurrentShape]); <br/>if(back[y+p][x+l]==1) <br/>DrawShape(6+l+x,4+p+y,8); <br/>&#125; <br/>&#125; <br/>void DrawScore() <br/>&#123; <br/>int temp=TotalMark; <br/>for(int i=0;i<7;i++) <br/>&#123; <br/>DrawDigital(477-i*20,65,temp%10); <br/>temp/=10; <br/>&#125; <br/>temp=Erasered; <br/>for(i=0;i<4;i++) <br/>&#123; <br/>DrawDigital(491-i*20,111,temp%10); <br/>temp/=10; <br/>&#125; <br/>if(Erasered==0) <br/>return; <br/>for(i=1;i<5;i++) <br/>&#123; <br/>setfillstyle(1,8); <br/>bar(378,163+i*14,508,170+i*14); <br/>setfillstyle(1,5); <br/>bar(378,163+i*14,378+130*NumOfLev[i]/ETimes,170+i*14); <br/>&#125; <br/>DrawDigital(466,293,Speed); <br/>return; <br/>&#125; <br/><br/>int CreateNewShape() <br/>&#123; <br/>NewShape[1]=NewShape[0]; <br/>NewShape[0]=rand()%7; <br/>setfillstyle(1,0); <br/>bar(447,240,514,288); <br/>for(int l=0;l<4;l++) <br/>for(int p=0;p<4;p++) <br/>if(shape[NewShape[0]][0][p][l]==1) <br/>DrawShape(28+l,15+p,ShapeColor[7]); <br/>return NewShape[1]; <br/>&#125; <br/><br/>int Possible(int x,int y,int CurrentShape,int Status) <br/>&#123; <br/>for(int i=0;i<4;i++) <br/>&#123; <br/>for(int j=0;j<4;j++) <br/>&#123; <br/>if(shape[CurrentShape][Status][i][j]+back[y+i][x+j]==2) <br/>//this line can also write as the following type: <br/>//if(shape[CurrentShape][Status][i][j]&&back[y+i][x+j]) <br/>return 0; <br/>&#125; <br/>&#125; <br/>return 1; <br/>&#125; <br/><br/>void GoLeft(int&x,int&y,int&CurrentShape,int&Status) <br/>&#123; <br/>if(Possible(x-1,y,CurrentShape,Status)) <br/>x--; <br/>show(x,y,CurrentShape,Status); <br/>&#125; <br/><br/>void GoRight(int&x,int&y,int&CurrentShape,int&Status) <br/>&#123; <br/>if(Possible(x+1,y,CurrentShape,Status)) <br/>x++; <br/>show(x,y,CurrentShape,Status); <br/>&#125; <br/><br/>void GoDown(int&x,int&y,int&CurrentShape,int&Status) <br/>&#123; <br/>int AllAreOne=1,temp=0; <br/>if(Possible(x,y+1,CurrentShape,Status)) <br/>&#123; <br/>y++; <br/>show(x,y,CurrentShape,Status); <br/>return; <br/>&#125; <br/>TotalMark+=3*CurrentShape; <br/>for(int i=0;i<4;i++) <br/>for(int j=0;j<4;j++) <br/>back[i+y][j+x]+=shape[CurrentShape][Status][i][j]; <br/>for(int r=1;r<20;r++) <br/>&#123; <br/>for(int l=2;l<13;l++) <br/>&#123; <br/>if(back[r][l]==0) <br/>AllAreOne=0; <br/>&#125; <br/>if(AllAreOne==1) <br/>&#123; <br/>for(int rr=r;rr>0;rr--) <br/>for(int ll=2;ll<13;ll++) <br/>back[rr][ll]=back[rr-1][ll]; <br/>Erasered++; <br/>CEr++; <br/>temp++; <br/>&#125; <br/>AllAreOne=1; <br/>&#125; <br/>CurrentShape=CreateNewShape(); <br/>x=DefaultX;y=DefaultY;Status=0; <br/>NumOfLev[temp]++; <br/>TotalMark+=5*temp; <br/>show(x,y,CurrentShape,Status); <br/>counter=0; <br/>if(!Possible(x,y,CurrentShape,Status)) <br/>&#123; <br/>getch(); <br/>end(); <br/>&#125; <br/>if(CEr>=30) <br/>&#123; <br/>Speed=(Speed+1)%10; <br/>CEr/=30; <br/>&#125; <br/>if(temp) <br/>ETimes++; <br/>DrawScore(); <br/>return; <br/>&#125; <br/><br/>void ChageShape(int&x,int&y,int&CurrentShape,int&Status) <br/>&#123; <br/>if(Possible(x,y,CurrentShape,(Status+1)%4)) <br/>Status=(Status+1)%4; <br/>show(x,y,CurrentShape,Status); <br/>&#125; <br/><br/>void DrawFace() <br/>&#123; <br/>int temp; <br/>setcolor(15); <br/>line(351,59,519,59); <br/>line(351,60,518,60); <br/>line(351,59,351,156); <br/>line(352,59,352,155); <br/>setcolor(7); <br/>line(518,61,518,154); <br/>line(519,60,519,154); <br/>line(353,155,519,155); <br/>line(352,156,519,156); <br/>setcolor(8); <br/>for(int i=61;i<155;i++) <br/>line(353,i,517,i); <br/>setcolor(7); <br/>line(427,106,512,106); <br/>line(428,107,511,107); <br/>line(427,106,427,147); <br/>line(428,106,428,146); <br/>setcolor(15); <br/>line(512,106,512,147); <br/>line(511,107,511,146); <br/>line(428,146,511,146); <br/>line(427,147,512,147); <br/>settextstyle(DEFAULT_FONT,HORIZ_DIR,1); <br/>setcolor(14); <br/>outtextxy(357,119,"Erasered"); <br/>outtextxy(370,130,"Level:"); <br/>setcolor(15); <br/>line(352,167,519,167); <br/>line(352,168,518,168); <br/>line(352,169,352,407); <br/>line(353,169,353,406); <br/>setcolor(7); <br/>line(519,167,519,407); <br/>line(518,168,518,406); <br/>line(352,407,519,407); <br/>line(353,406,519,406); <br/>line(524,55,89,55); //outter border 1st <br/>line(524,55,524,411); <br/>line(89,411,524,411); <br/>line(89,55,89,411); <br/>line(524,56,89,56); //outter border 2nd <br/>line(525,55,525,411); <br/>line(89,410,524,410); <br/>line(88,55,88,411); <br/>setfillstyle(8,7); <br/>bar(94,59,336,406); <br/>//setfillstyle(1,3); <br/>//bar(128,78,296,386); <br/>for(i=0;i<8;i++) <br/>DrawDigital(357+i*20,65,0); <br/>for(i=0;i<4;i++) <br/>DrawDigital(431+i*20,111,0); <br/>setfillstyle(1,8); <br/>setcolor(12); <br/>for(i=0;i<4;i++) <br/>&#123; <br/>temp=i+'1'; <br/>outtextxy(364,177+14*i,(char*)&temp); <br/>bar(378,177+i*14,508,184+i*14); <br/>&#125; <br/>setcolor(14); <br/>outtextxy(366,250,"Next Shape"); <br/>setcolor(10); <br/>outtextxy(366,294,"Current"); <br/>outtextxy(382,309,"Level"); <br/>setcolor(6); <br/>outtextxy(366,334,"Message:"); <br/>bar(362,348,509,398); <br/>DrawDigital(466,293,Speed); <br/>&#125; <br/><br/>void WannaQuit() <br/>&#123; <br/>int choise=0,temp; <br/>setfillstyle(1,8); <br/>bar(362,348,509,398); <br/>setcolor(15); <br/>outtextxy(378,355,"Are you sure to"); <br/>outtextxy(368,368,"quit game?"); <br/>outtextxy(410,388,"Yes"); <br/>outtextxy(470,388,"No"); <br/>setcolor(14); <br/>circle(399,392,4); <br/>while((temp=bioskey(0))!=7181) <br/>&#123; <br/>if(temp==19200) <br/>&#123; <br/>setcolor(8); <br/>circle(459,392,4); <br/>choise=0; <br/>setcolor(14); <br/>circle(399,392,4); <br/>&#125; <br/>if(temp==19712) <br/>&#123; <br/>setcolor(8); <br/>circle(399,392,4); <br/>choise=1; <br/>setcolor(14); <br/>circle(459,392,4); <br/>&#125; <br/>&#125; <br/>if(choise==0) <br/>&#123; <br/>end(); <br/>&#125; <br/>setfillstyle(1,8); <br/>bar(362,348,509,398); <br/>return; <br/>&#125; <br/><br/>void main() <br/>&#123; <br/>ShowTitle(); <br/>unsigned c; <br/>int CurrentShape,x=6,y=0,Status=0; <br/>oldhandler=getvect(INTR); <br/>setvect(INTR,handler); <br/>randomize(); <br/>NewShape[0]=rand()%7; <br/>DrawFace(); <br/>CurrentShape=CreateNewShape(); <br/>show(x,y,CurrentShape,Status); <br/>while(1) <br/>&#123; <br/>if(kbhit()) <br/>&#123; <br/>c=getch(); <br/>if(c==0) <br/>c=getch(); <br/>switch(c) <br/>&#123; <br/>case 's' :Speed=(Speed+1)%10;DrawDigital(466,293,Speed);break; <br/>case DOWN :GoDown(x,y,CurrentShape,Status);break; <br/>case LEFT :GoLeft(x,y,CurrentShape,Status);break; <br/>case RIGHT :GoRight(x,y,CurrentShape,Status);break; <br/>case CHANGE :ChageShape(x,y,CurrentShape,Status);break; <br/>case ESC :WannaQuit(); <br/>&#125; <br/>&#125; <br/>if((counter%=TimeDelay[Speed])==(TimeDelay[Speed]-1)) <br/>&#123; <br/>GoDown(x,y,CurrentShape,Status); <br/>counter=0; <br/>&#125; <br/>&#125; <br/>&#125; </p>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [C++源码]：一个俄罗斯方块的源代码]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>