跪求VC++俄罗斯方块工程~~全分送上

作者&投稿:微娴 2024-06-30
VC++怎么写俄罗斯方块

呵呵,你还真的是找对人了
http://ishare.iask.sina.com.cn/f/13659980.html
这个是我前些日子上传的,全部debug过,保证可以用的

停止,是啥意思,有啥提示?
case WM_TIMER:
的代码发来看下。。这样空说,我也不知道啊。。

我的这个是分文件的C代码,上学期做的,可以用。
Russia.h文件:
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <graphics.h>
#define TIMER 0xlc/*定义时钟中断的中断号*/
#define VK_LEFT 0x4b00/*左移键*/
#define VK_RIGHT 0x4d00
#define VK_DOWN 0x5000
#define VK_UP 0x4800
#define VK_SPACE 0x3920
#define VK_END 0x4f00
#define VK_ESC 0x011b
#define VK_ENTER 0x1c0d
#define BSIZE 16/*方块的变长是16像素*/
#define MAX_SHAPE 19/*总共有19种形态的方块*/
#define BOARD_WIDTH 10/*游戏面版的宽度,以方块的宽度为单位*/
#define BOARD_HEIGHT 20/*游戏面板的高度*/
#define BGCOLOR BLACK/*背景色*/
#define FORECOLOR WHITE/*前景色*/
#define FALSE 0
#define TRUE 1
#define EMPTY 0
#define FILLED 1

#define BOARD_LEFT_X 10/*游戏面板左上角X的坐标*/
#define BOARD_LEFT_Y 5
/*定义全局变量*/
extern int Gameboard[BOARD_WIDTH+2][BOARD_HEIGHT+2];
extern int nCurrent_block_index;/*当前下落方块的索引号*/
extern int nNext_block_index;
extern int nSpeed,nScore;/*速度和得分*/
extern int nSpeedUpScore;/*第一次加速需达到的分数*/
extern int bAccel,bOver;
extern int nOriginX,nOriginY;/*某一形状的原点的绝对坐标*/
extern unsigned int TimerCounter;/*计时变量,每秒钟增加18*/

struct block
{
int arrXY[8];
int nColor;
int nNext;
};/*保存某一形状信息的结构体*/

typedef struct block BLOCK;
extern BLOCK arrayBlock[19];

void interrupt newtimer(void);
void SetTimer(void interrupt(*IntProc)(void ));
void KillTimer();
void InitializeGraph();
void InitializeGameboard();
void DrawSquare(int X,int Y);
void DrawBlock(int BlockIndex,int sx,int sy,int color);
int IsConflict(int BlockIndex,int x,int y);
void HandleLeft(int BlockIndex,int *x,int *y);
void HandleRight(int BlockIndex,int *x,int *y);
void HandleUp(int *BlockIndex,int *x,int *y);
void HandleDown(int BlockIndex,int *x,int*y);
int IsLineFull(int y);
void KillLine(int y);
int killLines(int y);
int IsGameOver();
int GameOver();
void StartGame();
void ProcessInGame();

Util.c文件:
#include "Russia.h"
void DrawSquare(int x,int y)/*在坐标xy处绘制方块,传入参数:游戏面版中的坐标*/
{
if(y<1)return;
bar(BSIZE*(x+9)+1,BSIZE*(y+4)+1,BSIZE(x+10)-1,BSIZE*(y+5)-1);
}

void DrawBlock(int BlockIndex,int sx,int sy,int color)/*在(sx,sy)处绘制颜色为color的形状,blockindex为形状的索引*/
{
int i,c;
setfillstyle(SOLID_FILL,color);
for(i=0;i<7;i+=2)
DrawSquare(arrayBlock[BlockIndex].arrXY[i]+sx,arrayBlock[BlockIndex].arrXY[i+1]+sy);
}

int IsConflict(int BlockIndex,int x,int y)
{
int i;
for(i=0;i<7;i++,i++)
{
if(arrayBlock[BlockIndex].arrXY[i]+x<1||arrayBlock[BlockIndex].arrXY[i]+x>10)return TRUE;
if(arrayBlock[BlockIndex].arrXY[i+1]+y<1)continue;
if(Gameboard[arrayBlock[BlockIndex].arrXY[i]+x][arrayBlock[BlockIndex].arrXY[i+1]+y])return TRUE;
}
return FALSE;
}

void HandleLeft(int BlockIndex,int *x,int*y)
{
if(!IsConflict(BlockIndex,*x-1,*y))
{
DrawBlock(BlockIndex,*x,*y,BGCOLOR);
(*x)--;
DrawBlock(BlockIndex,*x,*y,arrayBlock[BlockIndex].nColor);
}
}

void HandleRight(int BlockIndex,int *x,int *y)
{
if(!IsConflict(BlockIndex,*x+1,*y))
{
DrawBlock(BlockIndex,*x,*y,BGCOLOR);
(*x)++;
DrawBlock(BlockIndex,*x,*y,arrayBlock[BlockIndex].nColor);
}
}

void HandleUp(int *BlockIndex,int *x,int *y)
{
int NextBlockIndex,i;
static int arrayoffset[5]={0,-1,1,-2,2};

NexBlockIndex=arrayBlock[*BlockIndex].nNext;
for(i=0;i<5;i++)
{
if(!IsConflict(NextBlockIndex,*x+arrayoffset[i],*y))
{
DrawBlock(*BlockIndex,*x,*y,BGCOLOR);
*BlockIndex=arrayBlock[*BlockIndex].nNext;
(*x)+=arrayoffset[i];
DrawBlock(*BlockIndex,*x,*y,arrayBlock[*BlockIndex].nColor);
}
}

}

int HandleDown(int BlockIndex,int*x,int*y);
{
char ScoreBuffer[10]={0},SpeedBuffer[10]={0};
int i;
int NumLinesKilled=0;
if(TimerCouter>(20-nSpeed*2))/*嫌疑处*/
{
TimerCouter=0;
if(!IsConflict(BlockIndex,*x,*y+1))
{
DrawBlock(BlockIndex,*x,*y,BGCOLOR);
(*y)++;
DrawBlock(BlockIndex,*x,*y,arrayBlock[BlockIndex].nColor);
return FALSE;
}
else
{
DrawBlock(BlockIndex,*x,*y,FORECOLOR);
for(i=0;i<7;i++,i++)
{
if((*y)+arrayBlock[BlockIndex].arrXY[i+1]<1)continue;
Gameboard[(*x)+arrayBlock[BlockIndex].arrXY[i]][(*y)+arrayBlock[BlockIndex].arrXY[i+1]]=1;
}
NumLinesKilled=KillLines(*y);
if(NumLinesKilled>0)
{
switch(NumLinesKilled)
{
case 1:
nScore+=100;
case 2:
nScore+=300;
case 3:
nScore+=500;
case 4:
nScore+=800;
}
setfillstyle(SOLID_FILL,BLACK);
bar(BSIZE*25,BSIZE*20,BSIZE*(25+8),BSIZE*(20+1));
setcolor(YELLOW);
rectangle(BSIZE*25,BSIZE*20,BSIZE*(25+8),BSIZE*(20+1));
itoa(nScore,ScoreBuffer,10);
setcolor(RED);
settextjustify(CENTER_TEXT,BOTTOM_TEXT);
outtextxy(BSIZE*(25+4),BSIZE*(20+1),ScoreBuffer);
if(nScore>nSpeedUpScore )
{
nSpeed++;
nSpeedUpScore+=nSpeed*1000;
setfillstyle(SOLID_FILL,BLACK);
bar(BSIZE*25,BSIZE*13,BSIZE*(25+8),BSIZE*(13+1));
itoa(nSpeed,SpeedBuffer,10);
setcolor(YELLOW);
settextjustify(CENTER_TEXT,BOTTOM_TEXT);
outtextxy(BSIZE*(25+4),BSIZE*(13+1),SpeedBuffer);
}
}
if(IsGameOver())
bOver=TRUE;
return TRUE;
}
}
}

int IsLineFull(int y)
{
int i;
for(i=1;i<=10;i++)
if(!Gameboard[i][y])
return FALSE;
return TRUE;
}

void KillLine(int y)
{
int i,j;
for(j=y;j>=2;j--)
for(i=1;i<=10;i++)
{
if(Gameboard[i][j]==Gameboard[i][j-1])
continue;
if(Gameboard[i][j-1]==FILLED)
{
Gameboard[i][j]=FILLED;
setfillstyle(SOLID_FILL,FORECOLOR);
}
else
{
Gameboard[i][j]=EMPTY;
setfillstyle(SOLID_FILL,BGCOLOR);
}
DrawSquare(i,j);
}
}

int KillLines(int y)
{
int i,j,LinesKilled=0;
for(i=0;i<4;i++)
{
while(IsLineFull(y))
{
KillLine(y);
LinesKilled++;
i++;
}
y--;
if(y<1)
break;
}
return LinesKilled;
}

int IsGameOver()
{
int i;
for(i=1;i<=10;i++)
if(Gameboard[i][1])
return TRUE;
return FALSE;
}

int GameOver()
{
int key;
settextjustify(CENTER_TEXT,TOP_TEXT);

setcolor(RED);
outtextxy(BSIZE*15,BSIZE*12,"game over");
setcolor(GREEN);
outtextxy(BSIZE*15,BSIZE*14,"enter:new game");
outtextxy(BSIZE*15,BSIZE*15,"Esc:Exit");
for(;;)
{
while(!bioskey(1));
key=bioskey(0);
if(key==VK_ENTER)
return FALSE;
if(key==VK_ESC)
return TRUE;
}
}

Timer.c文件:
#include "Russia.h"

unsigned int TimerCounter=0; /*即时变量,每秒钟增加18*/
/******************************************************************
*函数原型:void interrupt(*oldtime)(void)
*函数功能指向原来时钟中断处理过程处理入口的中断处理函数指针(句柄)
*****************************************************************/
void interrupt(*oldtimer)(void);
/*****************************************************
*函数原型:void interrupt newtimer(void)
*函数功能:新的时钟中断处理函数
****************************************************/
void interrupt newtimer(void)
{
(*oldtimer)();
TimerCounter++;
}
/*****************************************************
*函数原型:void SetTimer(void interrupt(*)(void))
*函数功能:设置新的时钟中断处理函数
****************************************************/
void SetTimer(void interrupt(*IntProc)(void))
{
oldtimer=getvect(TIMER);
disable();
setvect(TIMER,IntProc);
enable();
}
/**********************************************
*函数原型:void KillTimer()
*函数功能:恢复原先的时钟中断处理函数
*********************************************/
void KillTimer()
{
disable();
setvect(TIMER,oldtimer);
enable();
}

Russia.c文件:
#include"Russia.h"
int Gameboard[BOARD_HEIGHT+2];
int nCurrent_block_index;/*当前下落的方块的索引号*/
int nNext_block_index;/*下一个方块索引号*/
int nSpeed,nScore;/*速度和得分*/
int nSpeedUpScore=1000;
int bAccel,bOver;
int nOriginX=5,nOriginY=1;
BLACK arrayBlock[19]={
{0,-2,0,-1,0,0,1,0,CYAN,1},
{-1,0,0,0,1,-1,1,0,CYAN,2},
{0,-2,1,-2,1,-1,1,0,CYAN,3},
{-1,-1,-1,0,0,-1,1,-1,CYAN,0},

{0,-2,0,-1,0,0,1,-2,MAGENTA,5},
{-1,-1,-1,0,0,0,1,0,MAGENTA,6},
{0,0,1,-2,1,-1,1,0,MAGENTA,7},
{-1,-1,0,-1,1,-1,1,0,MAGENTA,4},

{-1,0,0,-1,0,0,1,0,YELLOW,9},
{-1,-1,0,-2,0,-1,0,0,YELLOW,10},
{-1,-1,0,-1,0,0,1,-1,YELLOW,11},
{0,-2,0,-1,0,0,1,-1,YELLOW,8},

{-1,0,0,-1,0,0,1,-1,BROWN,13},
{0,-2,0,-1,1,-1,1,0,BROWN,12},
{-1,-1,0,-1,0,0,1,0,BROWN,15},
{0,-1,0,0,1,-2,1,-1,BROWN,14},

{0,-3,0,-2,0,-1,0,0,RED,17},
{-1,0,0,0,1,0,2,0,RED,16},

{0,-1,0,0,1,-1,0,BLUE,18},
};
/******************函数void StartGame()***********
* 函数功能:游戏开始时调用的函数,其中绘制界面徐调用函数
* InitializeGameboard(),接下来需初始化游戏面板的额
* 各个方块和一些全局变量的初值*/
void StartGame()
{
int i,j;
/*设置游戏面板中每个方块的初始值*/
for(j=o;j!=BOARD_HEIGHT+1;j++)
for(i=0;i<BOARD_WIDTH+2;i++)
{
if(i==0||i==BOARD_WIDTH+1)
Gameboard[i][j]=FILLED;
else
Gameboard[i][j]=EMPTY;
}
for(i=0;i<BOARD_WIDTH+2;i++)
Gameboard[i][BOARD_HEIGHT+1]=FILLED;
Initializeboard();
/*设置游戏变量的初值*/
nNext_block_index=-1;/*游戏初始,没有下一个形状的索引号*/
nSpeed=0;
nScore=0;
}
/*********************************************************
*函数原型:void ProcessInGame() *
*函数功能:核心函数,主要用于处理游戏中的各种事件 *
********************************************************/
void ProcessInGame()
{
int key;
bioskey(0);
randomize();
while(1)
{
if(!nNext_block_index==-1)
{
nCurrent_block_index=rand()%19;
nNext_block_index=rand()%19;
/*绘制下一个提示形状*/
DrawBlock(nNext_block_index,19,6,arrayBlock[nNext_block_index].nColor);
}
else
{
nCurrent_block_index=nNext_block_index;
DrawBlock(nNext_block_index,19,6,BGCOLOR);/*消除原来的提示形状*/
nNext_block_index=rand()%19;
DrawBlock(nNext_block_index,19,6,arrayBlock[nNext_block_index].nColor);
/*绘制下一个提示形状*/
}

nOriginX=5,nOriginY=1;

TimerCounter=0;

DrawBlock(nCurrent_Block_index,nOriginX,nOriginY,arrayBlock[nCurrent_block_index].nColor);
/*在面板内绘制当前形状*/

while(1)
{
if(bioskey(1))
key=bioskey(0);
else
key=0;

bAccel=FALSE;
switch(key)
{
case VK_LEFT:/*左移*/
HandleLeft(nCurrent_block_index,&nOriginX,&nOriginY);
break;
case VK_RIGHT:/*右移*/
HandleRight(nCurrent_block_index,&nOriginX,&nOriginY);
break;
case VK_UP:/*旋转*/
case VK_SPACE:
HandleUp(&nCurrent_block_index,&nOriginX,&nOriginY);
break;
case VK_DOWN:/*下落加速键*/
bAccel=TRUE;
break;
case VK_END:/*暂停*/
bioskey(0);
break;
case VK_ESC:/*退出游戏*/
bOver=TRUE;
return;
}
if(bAccel||TimerCounter>(20-nSpeed*2))
if(HandleDown(nCurrent_block_index,&nOriginX,&nOriginY))
break;
if(bOver)
return;
}
}
}
/************************************************
*函数原型:void main()
*函数功能:入口函数,包含俄罗斯方块程序的主流程
***********************************************/
void main()
{
InitializeGraph();
SetTimer(newtimer);/*设置新的时钟中断*/
while(1)
{
StartGame();
ProcessInGame();
if(GameOver())
break;
bOver=FALSE;
}
KillTimer();
closegraph();
}

Drawing.c文件:
#include "Russia.h"

/***********************************************
*函数原型:void InitializeGraph()
*函数功能:初始化进入图形模式
**********************************************/
void InitializeGraph()
{
int gdriver=VGA,gmode=VGAHT,errorcode;
/*初始化图形模式*/
initgraph(&gdriver,&gmode,"");

/*读取初始化结果*/
errorcode=graphresult();

if(errorcode!=gr0k) /*错误发生*/
{
printf("Graphics error:%s\n",grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /*返回错误码*/
}
}
/***********************************************************
*函数原型:void InitializeGameboard()
*函数功能:初始化游戏面板以及下一行状提示框,几分框和难度框
**********************************************************/
void InitializeGameBoard()
{
/*绘制游戏面板*/
setfillstyle(SOLID_FILL,BGCOLOR);
bar(BSIZE*BOARD_LEFT_X,BSIZE*BOARD_LEFT_Y,BSIZE*(BOARD_LEFT_X+BOARD_WIDTH),
BSIZE*(BOARD_LEFT_Y+BOARD_HEIGHT);
setcolor(WHITE);
rectangle(BSIZE*BOARD_LEFT_X,BSIZE*BOARD_LEFT_Y,BSIZE*(BOARD_LEFT_X+BOARD_WIDTH),
BSIZE*(BOARD_LEFT_Y+BOARD_HEIGHT);

/*绘制下一行状提示框*/
setcolor(BLUE);
settextjustify(CENTER_TEXT,BOTTON_TEXT);
outtextxy(BSIZE*(25+4),BSIZE*(5+1),"next");
setfillstyle(SOLID_FILL,BGCOLOR);
bar(BSIZE*(24.5+2),BSIZE*6,BSIZE*(24.5+2+5),BSIZE(6+5));
setcolor(YELLOW);
rectangle(BSIZE*(24.5+2),BSIZE*6,BSIZE*(24.5+2+5),BSIZE*(6+5));

/*绘制速度框*/
setcolor(BLUE);
settextjustify(CENTER_TEXT,BOTTON_TEXT);
outtextxy(BSIZE*(25+4),BSIZE*(12+1),"level");
setfillstyle(SOLID_FILL,BGCOLOR);
bar(BSIZE*25,BSIZE*13,BSIZE*(25+8),BSIZE*(13+1));
setcolor(YELLOW);
rectangle(BSIZE*25,BSIZE*13,BSIZE*(25+8),BSIZE*(13+1));
setcolor(RED);
settextjustify(CENTER_TEXT,BOTTON_TEXT);
outtextxy(BSIZE*(25+4),BSIZE*(13+1),"0");

/*绘制计分框*/
setcolor(BLUE);
settextjustify(CENTER_TEXT,BOTTON_TEXT);
outtextxy(BSIZE*(25+4),BSIZE*(19+1),"score");
setfillstyle(SOLID_FILL,BGCOLOR);
bar(BSIZE*25,BSIZE*20,BSIZE*(25+8),BSIZE*(20+1));
setcolor(YELLOW);
rectangle(BSIZE*25,BSIZE*(25+8),BSIZE*(20+1));
setcolor(RED);
settextjustify(CENTER_TEXT,BOTTON_TEXT);
outtextxy(BSIZE*(25+4),BSIZE*(20+1),"0");
}

你看这是一个C的代码,改改能用
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <dos.h>
int ii,jj,yy,j,q,p,fx,fy,s,t,i,c,b,ys,a,ful,score=0;
int nx[5],ny[5],h[5],n[24],m[24]={0};
int o;
int oo=5;
int x[8][4]={0,0,0,0,
0,-2,-1,0,
0,0,1,2,
0,0,0,0,
0,-1,0,1,
0,0,1,1,
0,-1,0,1,
0,-1,0,1,
};

int y[8][4]={0,0,0,0,
0,0,0,1,
0,1,0,0,
0,1,2,3,
0,0,1,0,
0,1,0,1,
0,1,1,0,
0,0,1,1,
};

display(int i,int t)
{
for (j=0;j<=4;j++)
{
nx[j]=x[i][j];
ny[j]=y[i][j];
}
for (j=0;j<4;j++)
{textcolor(i);
q=fy+ny[j];p=fx+nx[j];
gotoxy(p,q);putch(t);
}
textcolor(7);
}

future(int a,int t)
{ textcolor(2);
for (j=0;j<=4;j++)
{
nx[j]=x[a][j];
ny[j]=y[a][j];
}
gotoxy (26,2);
printf("Next");
putch(31);
gotoxy (26,4);
for (j=0;j<4;j++) {textcolor(a);
gotoxy(26+nx[j],6+ny[j]);putch(t);
}
}

test()
{ char tmp[2];
int tt;
s=0;
for (j=0;j<4;j++)
{q=fy+y[i][j];p=fx+x[i][j];
gettext(p,q,p,q,&tmp); tt=tmp[0];
if(tt!=32) s=1;
}
}

left()
{ int ox;
t=32; display(i,t);
ox=fx;fx--;
test();
if(s==1) fx=ox;
t=219; display(i,t);
}

right()
{ int ox;
t=32; display(i,t);
ox=fx;fx++;
test();
if(s==1) fx=ox;
t=219; display(i,t);
}

turn()
{ int j,z;
for (j=1;j<=3;j++)
{
z=x[i][j];
x[i][j]=y[i][j];
y[i][j]=-z;
}
test();
if (s==1)
for(j=1;j<=3;j++)
{
z=y[i][j];
y[i][j]=x[i][j];
x[i][j]=-z;
}
}

qq()
{int gg;
clrscr();
gotoxy (13,4); printf ("Russia square\n\n\n\n ");
delay(30000);
delay(30000);
delay(30000);
delay(30000);
delay(30000);
delay(30000);
for (gg=1;gg<=4;gg++)
{ display(gg,219);printf (" ");
delay(30000);
delay(30000);
delay(30000);
delay(30000);
}
gotoxy (4,16);
printf (" How to Play(H) Let's play(L)");
inkey();
}

full()
{ int fj,fi=0,j,fuy,fux,u;
for (j=0;j<=3;j++)
{
fuy=fy+y[i][j];
m[fuy]++;
fux=fx+x[i][j];
n[fux]++;
gotoxy (3,fuy);printf (" ");
gotoxy (3,fuy);
printf ("%d",m[fuy]);
if (m[fuy]==10) fj=1;
if (n[fux]==20) fi=1;
}
if (fj==1) kill();
if (fi==1)
{
for (u=1;u<=20;u++)
{
delay (55555);
}
gameover();
}
}

choose()
{ char u;
clrscr();
gotoxy (6,6);printf ("I'm a beginner!--Press'e'EASY");
gotoxy (6,10);printf ("I'm just medium!--Press'n'NORMAL");
gotoxy (6,14);printf ("Bring it on!--Press'h'HARD");
textcolor(7);
for(;;)
{
u=getch();
if ((u=='e')||(u=='E')) {o=50;return;}
if ((u=='n')||(u=='N')) {o=35;return;}
if ((u=='h')||(u=='H')) {o=20;return;}
gotoxy(6,20);
printf("Illegal Input, RETRY!");
}
}

helping()
{ int kk;
clrscr();
for (kk=1;kk<=23;kk++)
{
gotoxy(1,kk);
putch(01);
gotoxy(40,kk);
putch(01);
}
for (kk=1;kk<=40;kk++)
{
gotoxy(kk,24);
putch(01);
}
gotoxy (9,2);printf ("HELP of RUSSIA SQUARE");
gotoxy (6,5);printf ("1.Press 'q' for be quick.");
gotoxy (6,7);printf ("2.Press 's' for be slow.");
gotoxy (6,9);printf ("3.Your score is above on left.");
gotoxy (6,11);printf ("4.Each line has any squares,");
gotoxy (10,12);printf ("You can see it on left.");
gotoxy (6,14);printf ("Press 'x' for exit the game.");
getch();qq();
}

kill()
{ char tm[2],tf,z;
textcolor (7);
for(z=23;z>4;z--)
{ if (m[z]==10)
{
for (q=z-1;q>4;q--)
{
for (p=11;p<=20;p++)
{
gettext(p,q,p,q,&tm);tf=tm[0];
if (tf==32) {gotoxy(p,q+1);putch(32); }
else {gotoxy(p,q+1);putch('?); }
}
m[q+1]=m[q];
}
z++;score++;
}
}
full();
}

keyin()
{ int k;
if (kbhit())
{
k=getch();
if (k==27)
{
exit(0);
}
if (k==0)
{
k=getch();
switch(k)
{
case 77: right(); delay(5);break;
case 75: left(); delay(5);break;
case 72: turn(); delay(5);break;
case 80: break;
}
}
}
}

keyinq()
{ char k;
if (kbhit())
{ k=getch();
if (k=='q' || k=='Q') o--;
if (k=='s' || k=='S') o++;
if (k=='x' || k=='X') gameover();
}
}

gameover()
{ int f,g,h;
clrscr();
gotoxy (15,10);
printf ("score:%d",score);
for (h=1;h<=20;h++)
{
for (f=1;f<=20;f++)
{
textcolor (f);
clrscr();
gotoxy (15,10);
printf ("score:%d",score);
gotoxy (12,8);
printf ("GAME OVER!!!");
if (h>=2)
{
gotoxy (3,20);
printf ("Press 'Ctrl+Pause/Break' twice to ESC!");
}
for (g=1;g<=2;g++)
{
delay (44444);
}
gotoxy (12,8);
printf (" ");
if (h>=5)
{
gotoxy (2,20);
printf ("Press 'Ctrl+Pause/Break' twice to ESC!");
}
}
}
getch();
}

load()
{ int s,ss,sss,f,ff,l;
clrscr();
gotoxy (15,6);printf("Loading");
gotoxy (12,8);printf ("赏屯屯屯屯屯屯屯?);
gotoxy (12,9);printf ("? ?);
gotoxy (12,10);printf ("韧屯屯屯屯屯屯屯?);
for (s=13;s<=27;s++)
{
gotoxy (s,9);putch (01);
}
for (s=13;s<=27;s++)
{
ff=ff+1;
if (ff>3)
{
for (sss=22;sss<=24;sss++)
{
gotoxy (sss,6);
printf (" ");
}
ff=1;
}
gotoxy (s,9);
putch(02);
for (f=1;f<=ff;f++)
{ gotoxy (21+f,6);
printf (".");
}
for (l=1;l<=6;l++)
{
delay(55555);
}
}
textcolor (7);
}

inkey()
{ char w;
for(;;)
{
w=getch();
if ((w=='h') || (w=='H'))
{
helping();return;
}
if ((w=='l') || (w=='L'))
{
delay(55555);choose();return;
}
gotoxy(6,20);
printf("Illegal Input, RETRY!");
}

}

main()
{
int k,kk,gg;
char ss;
union REGS r;
r.x.ax=0x0100;
r.x.cx=0x2000;
textmode(C40);
randomize();
int86(0x10,&r,&r);
textcolor (3);
clrscr();
gotoxy (6,9);
for (kk=1;kk<=27;kk++)
{
putch (02);
}
gotoxy (6,10);putch (02);
gotoxy (8,10);printf("Press any key to start! ");
putch(02);
gotoxy (6,11);
for (kk=1;kk<=27;kk++)
{
putch (02);
}
getch();
textcolor (7);
qq();
textcolor(3);
load();
clrscr();
for (ii=1;ii<=23;ii++)
{
gotoxy(10,ii);
putch(178);
gotoxy(21,ii);
putch(178);
}
for (ii=10;ii<=21;ii++)
{
gotoxy(ii,24);
putch(178);
}
fx=16;
fy=4;
i=rand()%7+1;goto go1;
go:
i=a;
go1:
a=rand()%7+1;
for(ii=22;ii<=30;ii++)
{
gotoxy(ii,7);putch(32);
gotoxy(ii,8);putch(32);
gotoxy(ii,3);putch(32);
gotoxy(ii,4);putch(32);
gotoxy(ii,5);putch(32);
gotoxy(ii,6);putch(32);
gotoxy(ii,9);putch(32);
}
gotoxy (1,2);
printf("score:%d",score);
if (score==oo) {o=o-2;oo=oo+5;}
future(a,219);
{ fy=4;fx=16;
while (1)
{ keyin();keyinq();
display(i,219);
for (k=1;k<=o;k++)
{
delay(5000);
}
display(i,32);
fy++;test();
if (s==1)
{ if (i==3) { if (fy==6) exit(1);}
if (i!=3) { if (fy==4) exit(1);}
fy--; display(i,219);full();goto go;}
}

}
}




你是否需要了解?

保研自荐书「特荐」
答:我叫××,是××农业大学 信息科学试验班一名04级学生,由于我们这个班级采用的是学分制教学管理模式,...其本掌握了vc++的mfc的实现功能和一些编程技巧,通过参考一些资料,完成了有自己风格的《俄罗斯方块的

怎样给导师写自荐信,高手及有经验者进
答:简单说一下,你看着给分吧!!哈哈……我也有过你这样的困惑,反正后来问题解决了。向你说得措辞讲究些之类的话,我就不说了,那是肯定的。具体的是要结合你的专业水平来说,发表过论文的话更好,千万不要说论文参见某刊物某杂志第几期之类的话,复印一份,装订整齐,随信邮寄去。如果没有论文之类...

游戏编程
答:说明:本书适合已有VC++使用经验的读者,书中共分十个章节,从最基本的RPG的角色扮演游戏设计要素开始...声音效果以及游戏程序检测等一系列从设计到编制的全部工程;学习编制实时游戏,为RPG游戏创建编辑器等高级

跪求VC++俄罗斯方块工程~~全分送上
答:求助一个俄罗斯方块的工程~需要包括窗体界面~以及dsw等等~~越完整越好啊万分感激啊~~发可用的链接下载也可以~~~或者有的可以留下QQ我想要的是整个工程哈~最好是封装完整的~~谢谢... 求助一个俄罗斯方块的工程~需要包括窗体界面~以及dsw等等~~越完整越好啊万分感激啊~~发可用的链接下载也可以~~~或者有的可以留...

windows环境,多线程情况下,C语言向文件写入数据。
答:C#:C#里集合了当代和前沿计算机科学里最先进的一些语法(虽然执行效率一直被人质疑),但是你学完C#并深入后,至少能够算是对计算机语言有一个更加深刻的理解了。如何证明你C#学的不错了?也很简单,再次写一个随便什么游戏,比如俄罗斯方块。如果更加证明自己呢?用它写一个P2P网络对战游戏。(如果你...

求大专计算机论文题目
答:论文1.4万字,开题报告,源程序(VC+SQL SERVER 2000)002 人力资源管理系统 论文1.4万字,开题报告 003 研究生信息系统 论文1.4万字,开题报告 004 水雨情数据模拟生成器 论文1.6万字,源程序(Dephi+SQL SERVER)005 全球卫星定位系统(GPS系统)论文1.6万字,部分源程序(VC++)006 俄罗斯方块游戏 论文2...

如何用vc编一个俄罗斯方块
答:思路:画面板--画不能移动的方块--定义7种组件并初始化--画下落的部件---判断是否有足够的空位显示新的部件--产生新的部件--判断部件是否可以左移 右移 落下--判断部件是否可以旋转--添加刷新代码--添加键盘响应代码--添加菜单的消息代码和设置定时器--判断游戏是否结束和是否可以消去一行代码 /...

VC++6.0 下 C语言做俄罗斯方块 (<graphics.h> )图形函数库问题_百度知 ...
答:求救很急急救~~~我想在VC++6.0下用C语言运行俄罗斯方块已近有了一套成型的代码了可是在VC++6.0下运行不了一运行就说有一个错误是“#include<graphics.h>/*图形函数库*/”这里的错误这... 求救 很急 急救~~~我想在 VC++6.0下 用C语言运行俄罗斯方块 已近有了一套成型的代码了 可是 在VC++6.0下运行不了...

高分请教VC++的学习问题
答:我归纳的,可以参考下!过程比较漫长,得一步一个脚印 VC之路 一:第一阶段 C语言---《C语言设计》 作者:谭浩强 二:第二阶段 C++ Primer, 4rd Edition (入门类:C++ Primer, 4rd Edition Thinking in C++, 2nd Edition The C++ Standard Library: A Tutorial and Reference 进阶类:The C...

VC6.0中无"graphics.h”怎么解决
答:把TC安装目录下的"graphics.h"拷贝到源码目录,注意修改include中对应的路径。不过TC编的程序,最好还是用TC来编译。要称值到VC6的话,可能很多代码要改动。当然,也不要需改动就可以在V6下编译成功的。