From f31d0cd0ef4c64db7df12347c38d861092ed850d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B7=8D?= <2258804840@qq.com> Date: Thu, 10 Jan 2019 09:08:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=88=E5=AE=97=E5=AE=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test1.c | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 test1.c diff --git a/test1.c b/test1.c new file mode 100644 index 0000000..3e1f5ec --- /dev/null +++ b/test1.c @@ -0,0 +1,261 @@ +#include "test2.c" +#include "elsfk.c" +/**开始游戏**/ +void Gameplay() +{ + int n; + struct Tetris t,*tetris=&t; + char ch; + tetris->number=0; + tetris->speed=280; + tetris->level=1; + tetris->score=0; + while(1) + { + Flag(tetris); + Temp=tetris->flag; + tetris->x=FrameX+2*Frame_width+6; + tetris->y=FrameY+10; + tetris->flag=tetris->next; + PrintTetris(tetris); + tetris->x=FrameX+Frame_width; + tetris->y=FrameY-1; + tetris->flag=Temp; + + //按键操作 + while(1) + { + label:PrintTetris(tetris); + Sleep(tetris->speed); + CleanTetris(tetris); + Temp1=tetris->x; + Temp2=tetris->flag; + if(kbhit()) + { + ch=getch(); + if(ch==75) + { + tetris->x-=2; + } + if(ch==77) + { + tetris->x+=2; + } + if(ch==80) + { + if(ifMove(tetris)!=0) + { + tetris->y+=2; + } + if(ifMove(tetris)==0) + { + tetris->y=FrameY+Frame_height-2; + } + } + if(ch==72) + { + if(tetris->flag>=2&&tetris->flag<=3) + { + tetris->flag++; + tetris->flag%=2; + tetris->flag+=2; + } + if(tetris->flag>=4&&tetris->flag<=7) + { + tetris->flag++; + tetris->flag%=4; + tetris->flag+=4; + } + if(tetris->flag>=8&&tetris->flag<=11) + { + tetris->flag++; + tetris->flag%=4; + tetris->flag+=8; + } + if(tetris->flag>=12&&tetris->flag<=15) + { + tetris->flag++; + tetris->flag%=4; + tetris->flag+=12; + } + if(tetris->flag>=16&&tetris->flag<=19) + { + tetris->flag++; + tetris->flag%=4; + tetris->flag+=16; + } + } + if(ch==32) + { + PrintTetris(tetris); + while(1) + { + if(kbhit()) + { + ch=getch(); + if(ch==32) + { + goto label; + } + } + } + } + if(ch==27) + { + system("cls"); + memset(a,0,6400*sizeof(int)); + welcome(); + } + if(ifMove(tetris)==0) + { + tetris->x=Temp1; + tetris->flag=Temp2; + } + else + {goto label; + } + } + tetris->y++; + if(ifMove(tetris)==0) + { + tetris->y--; + PrintTetris(tetris); + Del_Fullline(tetris); + break; + } + } + for(i=tetris->y-2;iy+2;i++) + { + if(i==FrameY) + { + system("cls"); + gotoxy(38,12); + printf("游戏结束\n"); + + gotoxy(17,18); + printf("我要重新玩一局--------1"); + gotoxy(44,18); + printf("不玩了,退出吧-------2\n"); + int n; + gotoxy(32,20); + printf("选择【1/2】:"); + scanf("%d",&n); + switch(n) + { + case 1: + system("cls"); + Replay(tetris); + break; + case 2: + exit(0); + break; + } + } + } + tetris->flag=tetris->next; + tetris->x=FrameX+2*Frame_width+6; + tetris->y=FrameY+10; + CleanTetris(tetris); + } +} + +/** +* 重新开始游戏 +*/ + void Replay(struct Tetris *tetris) + { + system("cls"); + memset(a,0,6400*sizeof(int)); + DrawGameframe(); + Gameplay(); + } + /** + *按键说明 + */ +void explation() +{ + int i,j=1; + system("cls"); + gotoxy(32,3); + printf("按键说明"); + for(i=6;i<=16;i++) + { + for(j=15;j<=60;j++) + { + gotoxy(j,i); + if(i==6||i==16) + { + printf("="); + } + else if(j==15||j==59) + { + printf("||"); + + } + } + } + gotoxy(18,7); + printf("tip1:玩家可以通过←→方向键来移动方块"); + gotoxy(18,9); + printf("tip2:通过↑使方块旋转"); + gotoxy(18,11); + printf("tip3:通过↓加速方块下落"); + gotoxy(18,13); + printf("tip4:按空格键暂停游戏,再按空格键继续"); + gotoxy(18,15); + printf("tip5:按ESC退出游戏"); + getch(); + system("cls"); + main(); +} + +/** +*游戏规则 +*/ +void regulation() +{ + int i,j=1; + system("cls"); + gotoxy(34,3); + printf("游戏规则"); + for (i=6;i<=18;i++) + { + for(j=12;j<=70;j++) + { + gotoxy(j,i); + if(i==6||i==18) + { + printf("="); + } + else if(j==12||j==69) + { + printf("||"); + } + } +} + gotoxy(16,7); + printf("tip1:不同形状的小方块从屏幕上方落下,玩家通过调整"); + gotoxy(22,9); + printf("方块的位置和方向,使他们在屏幕底部拼出完整的"); + gotoxy(22,11); + printf("一条或几条"); + gotoxy(16,13); + printf("tip2:每消除一行,积分增加100"); + gotoxy(16,15); + printf("tip3:每累计1000分,会提升一个等级"); + gotoxy(16,17); + printf("tip4:提升等级会使方块下落速度加快,游戏难度加大"); + getch(); + system("cls"); + main(); + + } + /** + *退出游戏 + */ + void close() + { + exit(0); + } + +