c语言有趣的编程代码游戏(用c语言编程游戏)

http://www.itjxue.com  2023-03-18 06:14  来源:未知  点击次数: 

c语言小游戏代码

最基础的贪吃蛇的代码

#includestdio.h

#includewindows.h//基本型态定义。支援型态定义函数。使用者界面函数 图形装置界面函数。

#includeconio.h //用户通过按键盘产生的对应操作 (控制台)

#includestdlib.h

#includetime.h //日期和时间头文件

#define LEN 30

#define WID 25

int Snake[LEN][WID] = {0}; //数组的元素代表蛇的各个部位

char Sna_Hea_Dir = 'a';//记录蛇头的移动方向

int Sna_Hea_X, Sna_Hea_Y;//记录蛇头的位置

int Snake_Len = 3;//记录蛇的长度

clock_t Now_Time;//记录当前时间,以便自动移动

int Wait_Time ;//记录自动移动的时间间隔

int Eat_Apple = 1;//吃到苹果表示为1

int Level ;

int All_Score = -1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出的句柄 windows.h

//句柄 :标志应用程序中的不同对象和同类对象中的不同的实例 方便操控,

void gotoxy(int x, int y)//设置光标位置

{

COORD pos = {x,y}; //定义一个字符在控制台屏幕上的坐标POS

SetConsoleCursorPosition(hConsole, pos); //定位光标位置的函数windows.h

}

void Hide_Cursor()//隐藏光标 固定函数

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, cursor_info);

}

void SetColor(int color)//设置颜色

{

SetConsoleTextAttribute(hConsole, color);

//是API设置字体颜色和背景色的函数 格式:SetConsoleTextAttribute(句柄,颜色);

}

void Print_Snake()//打印蛇头和蛇的脖子和蛇尾

{

int iy, ix, color;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy] == 1)//蛇头

{

SetColor(0xf); //oxf代表分配的内存地址 setcolor:34行自定义设置颜色的函数

gotoxy(ix*2, iy);

printf("※");

}

if(Snake[ix][iy] == 2)//蛇的脖子

{

color = rand()%15 + 1; //rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。

//头文件:stdlib.h

if(color == 14)

color -= rand() % 13 + 1; //变色

SetColor(color);

gotoxy(ix*2, iy);

printf("■");

}

if(Snake[ix][iy] == Snake_Len)

{

gotoxy(ix*2, iy);

SetColor(0xe);

printf("≈");

}

}

}

void Clear_Snake()//擦除贪吃蛇

{

int iy, ix;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

gotoxy(ix*2, iy);

if(Snake[ix][iy] == Snake_Len)

printf(" ");

}

}

void Rand_Apple()//随机产生苹果

{

int ix, iy;

do

{

ix = rand() % LEN;

iy = rand() % WID;

}while(Snake[ix][iy]);

Snake[ix][iy] = -1;

gotoxy(ix*2, iy);

printf("⊙");

Eat_Apple = 0;

}

void Game_Over()//蛇死掉了

{

gotoxy(30, 10);

printf("Game Over");

Sleep(3000);

system("pause nul");

exit(0);

}

void Move_Snake()//让蛇动起来

{

int ix, iy;

for(ix = 0; ix LEN; ++ix)//先标记蛇头

for(iy = 0; iy WID; ++iy)

if(Snake[ix][iy] == 1)

{

switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头

{

case 'w':

if(iy == 0)

Game_Over();

else

Sna_Hea_Y = iy - 1;

Sna_Hea_X = ix;

break;

case 's':

if(iy == (WID -1))

Game_Over();

else

Sna_Hea_Y = iy + 1;

Sna_Hea_X = ix;

break;

case 'a':

if(ix == 0)

Game_Over();

else

Sna_Hea_X = ix - 1;

Sna_Hea_Y = iy;

break;

case 'd':

if(ix == (LEN - 1))

Game_Over();

else

Sna_Hea_X = ix + 1;

Sna_Hea_Y = iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1Snake[Sna_Hea_X][Sna_Hea_Y]!=0Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y] 0)//吃到苹果

{

++Snake_Len;

Eat_Apple = 1;

}

for(ix = 0; ix LEN; ++ix)//处理蛇尾

for(iy = 0; iy WID; ++iy)

{

if(Snake[ix][iy] 0)

{

if(Snake[ix][iy] != Snake_Len)

Snake[ix][iy] += 1;

else

Snake[ix][iy] = 0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//处理蛇头

}

void Get_Input()//控制蛇的移动方向

{

if(kbhit())

{

switch(getch())

{

case 87:

Sna_Hea_Dir = 'w';

break;

case 83:

Sna_Hea_Dir = 's';

break;

case 65:

Sna_Hea_Dir = 'a';

break;

case 68:

Sna_Hea_Dir = 'd';

break;

default:

break;

}

}

if(clock() - Now_Time = Wait_Time)//蛇到时间自动行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time = clock();

}

}

void Init()//初始化

{

system("title 贪吃毛毛蛇");

system("mode con: cols=80 lines=25");

Hide_Cursor();

gotoxy(61, 4);

printf("You Score:");

gotoxy(61, 6);

printf("You Level:");

gotoxy(61, 8);

printf("The Lenght:");

gotoxy(61, 10);

printf("The Speed:");

gotoxy(61, 12);

printf("Apple Num:");

int i;

for(i = 0; i Snake_Len; ++i)//生成蛇

Snake[10+i][15] = i+1;

int iy, ix;//打印蛇

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2, iy);

printf("■");

}

}

}

void Pri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score += Level;

printf("%3d", All_Score);

gotoxy(73, 6);

printf("%3d", Level);

gotoxy(73, 8);

printf("%3d",Snake_Len);

gotoxy(73, 10);

printf("0.%3ds", Wait_Time/10);

gotoxy(73, 12);

printf("%d", Apple_Num);

}

void Lev_Sys()//等级系统

{

if(((Apple_Num-1) / 10) == Level)

{

++Level;

if(Wait_Time 50)

Wait_Time -= 50;

else

if(Wait_Time 10)

Wait_Time -= 10;

else

Wait_Time -= 1;

}

}

int main(void)

{

Init();

srand((unsigned)time(NULL));//设置随机数的种子

Now_Time = clock();

int speed1=1000,speed2,a;

printf("\n");

printf("请输入你想要的速度\n");

scanf("%d",speed2);

Level=1;

Wait_Time=speed1-speed2;

printf("请输入你想要的苹果数\n");

scanf("%d",a);

while(a--)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return 0;

}

用C语言编一个小游戏,注明编码,(简单易懂的游戏,不要复杂)

//C语言写的,一个玩石头、剪刀、布的小游戏。下面是源码。

#includestdio.h

#includestdlib.h

int main()

{

char cq[][10]={"石头","剪刀","布"};

int guess=-1,r,youwin=0,mewin=0,daping=0,total=0;

srand(time(NULL));

while(1)

{

r=(int)((rand()/(RAND_MAX+1.0))*3);

printf("0、石头\n1、剪刀\n2、布\n3、退出\n我已出,请你出:");

scanf("%d",guess);

if(3==guess)

{

break;

}

else

{

total++;

printf("这一次你出的是%s,我出的是%s,所以",cq[guess],cq[r]);

if(0==guess1==r || 1==guess2==r || 2==guess0==r)

{

youwin++;

printf("你赢了!\n");

}

else if(guess==r)

{

daping++;

printf("我们打平了!\n");

}

else

{

mewin++;

printf("我赢了!\n");

}

}

}

printf("总共玩了%d次,你赢了%d次,我赢了%d次,打平%d次!\n",total,youwin,mewin,daping);

system("PAUSE");

return EXIT_SUCCESS;

}

C语言代码 过河智力游戏

#include stdio.h#define MAX 100typedef enum BOOL{ FALSE = 0, TRUE = 1 }BOOL。

typedef union Items{struct {char boy : 1;char girl : 1;char boys)。

语言特点

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建。

通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。通过对C语言进行研究分析,总结出其主要特点如下:

(1)简洁的语言

C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

(2)具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

(3)丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

以上内容参考:百度百科-C语音

能不能介绍点C语言编程的小游戏,例如贪吃蛇,。。好玩点的。要有代码,谢谢了

可以学写“俄罗斯方块”代码:

#include stdio.h

#include conio.h

#include time.h

#include windows.h

#define ?ZL ?4? ??//坐标增量, 不使游戏窗口靠边

#define W? 36? ?//游戏窗口的宽度

#define H? 20? ?//游戏窗口的高度

int i,j,Ta,Tb,Tc; ????// Ta,Tb,Tc用于记住和转换方块变量的值

int a[60][60]={0};?? //标记游戏屏幕各坐标点:0,1,2分别为空、方块、边框

int b[4]; ??????//标记4个"口"方块:1有,0无,类似开关

int x,y, level,score,speed;?? //方块中心位置的x,y坐标,游戏等级、得分和游戏速度

int flag,next; ??//当前要操作的方块类型序号,下一个方块类型序号

void gtxy(int m, int n);? //以下声明要用到的自编函数

void setColor(unsigned short p, unsigned short q); //设定显示颜色

void gflag( );? //获得下一方块类型的序号

void csh( );? ?//初始化界面

void start( );? //开始部分

void prfk ( ); ??//打印方块

void clfk( );?? //清除方块

void mkfk( );? //制作方块

void keyD( );? //按键操作

int ?ifmov( );? //判断能否移动

void clHA( );? //清除满行的方块

void clNEXT( );? //清除边框外的NEXT方块

int main( )

{ csh( );

? while(1)

? ? { start( );

? ? ? while(1)

? ? ? { setColor(5, 0);

? ? ? ?? prfk( ); ? Sleep(speed);? clfk( );

? ? ? ?? Tb=x;Tc=flag; ?//临存当前x坐标和序号,以备撤销操作

? ? ? ?? keyD( );

? ? ? ?? y++;???? //方块向下移动

? ? ? ?? if (ifmov( )==0) { y--; setColor(2, 0);prfk( ); clHA( ); break;} //不可动时的操作

? ? ?? }

? ? for(i=y-2;iy+2;i++){ if (i==ZL) { j=0; } } ?//方块触到框顶

? ?? if (j==0) {? system("cls");gtxy(10,10); setColor(6, 0);

? ? ? ? ? ? ? ? ? ? ?? printf("游戏结束!"); getch(); break;? }

? ?? clNEXT( ); ?

? ? }

? return 0;

}

void gtxy(int m, int n) ?//控制光标移动

{COORD pos; ?//定义变量

pos.X = m;? //横坐标

pos.Y = n;? ?//纵坐标

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); //获得显示器句柄

}

void setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)

{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(handle, ForeColor + BackGroundColor * 0x10);

}

void csh( ) ???//初始化界面

{gtxy(ZL+W/2-5,ZL-2); setColor(10, 0); printf("俄罗斯方块"); ?????//打印游戏名称

gtxy(ZL+W+3,ZL+7); setColor(5, 0);printf("******* NEXT:"); ?//打印菜单信息

gtxy(ZL+W+3,ZL+13); setColor(5, 0);printf("************");

gtxy(ZL+W+3,ZL+15); setColor(9, 0);printf("Esc :退出游戏");

gtxy(ZL+W+3,ZL+17); setColor(9, 0);printf("↑键:变体");

gtxy(ZL+W+3,ZL+19); setColor(9, 0);printf("空格:暂停游戏");

gtxy(ZL,ZL); setColor(2, 0); printf("╔"); ?gtxy(ZL+W-2,ZL);? printf("╗");? //打印框角

gtxy(ZL,ZL+H); printf("╚");? gtxy(ZL+W-2,ZL+H); ?printf("╝");

a[ZL][ZL+H]=2; ?a[ZL+W-2][ZL+H]=2;? //记住有图案

for(i=2;iW-2;i+=2) {gtxy(ZL+i,ZL);? printf("═"); } ?//打印上横框

for(i=2;iW-2;i+=2) {gtxy(ZL+i,ZL+H); printf("═"); a[ZL+i][ZL+H]=2; } //打印下横框有图案

for(i=1;iH;i++) { gtxy(ZL,ZL+i); ?printf("║"); a[ZL][ZL+i]=2; }? //打印左竖框记住有图案

for(i=1;iH;i++) {gtxy(ZL+W-2,ZL+i); printf("║"); a[ZL+W-2][ZL+i]=2; } //打印右竖框有图案

CONSOLE_CURSOR_INFO cursor_info={1,0};?? //以下是隐藏光标的设置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);

level=1; score=0; speed=400;

gflag( );? flag=next;? //获得一个当前方块序号

}

void gflag( )? //获得下一个方块类型的序号

{ srand((unsigned)time(NULL)); next = rand()%19+1; }

void start( ) ?//开始部分

{ gflag( ); ?Ta=flag; ?flag=next; ?//保存当前方块序号,将下一方块序号临时操作

x=ZL+W+6; y=ZL+10; setColor(5, 0); prfk( );? //给x,y赋值,在框外打印出下一方块

flag=Ta; x=ZL+W/2; y=ZL-1; ?//取回当前方块序号,并给x,y赋值

}

void prfk ( )? //打印俄罗斯方块

{ for(i=0;i4;i++) {b[i]=1; }? //数组b[4]每个元素的值都为1

mkfk ( );? //制作俄罗斯方块

for( i= x-2; i=x+4; i+=2 )? //打印方块

{ for(j=y-2;j= y+1;j++) { if( a[i][j]==1 jZL ){ gtxy(i,j); printf("□"); } } }

gtxy(ZL+W+3,ZL+1); setColor(9, 0); ?printf("level : %d",level);? //以下打印菜单信息

gtxy(ZL+W+3,ZL+3); setColor(9, 0); ?printf("score : %d",score);

gtxy(ZL+W+3,ZL+5); setColor(9, 0); ?printf("speed : %d",speed);

}

void clfk( ) ?//清除俄罗斯方块

{ for(i=0;i4;i++) { b[i]=0; } ?//数组b[4]每个元素的值都为0

mkfk ( ); ?//制作俄罗斯方块

for( i=x-2; i=x+4; i+=2 )? //清除方块

{ for(j=y-2;j=y+1;j++){ if( a[i][j]==0 jZL ){ gtxy(i,j); printf("? "); } } }

}

void mkfk( )? //制作俄罗斯方块

{ a[x][ y]=b[0];? //方块中心位置状态: 1-有,0-无

switch(flag)?? //共6大类,19种小类型

{ case 1: { a[x][y-1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][y]=b[3]; break; }? //田字方块

case 2: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x+4][y]=b[3]; break; }? //直线方块:----

case 3: { a[x][y-1]=b[1]; a[x][y-2]=b[2]; a[x][y+1]=b[3]; break; }? //直线方块: |

case 4: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x][y+1]=b[3]; break; }? //T字方块

case 5: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y]=b[3]; break; }? //T字顺时针转90度

case 6: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x+2][y]=b[3]; break; }? //T字顺转180度

case 7: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x+2][y]=b[3]; break; }? //T字顺转270度

case 8: { a[x][y+1]=b[1]; a[x-2][y]=b[2]; a[x+2][y+1]=b[3]; break; } //Z字方块

case 9: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x-2][y+1]=b[3]; break; }? //Z字顺转90度

case 10: { a[x][y-1]=b[1]; a[x-2][y-1]=b[2]; a[x+2][y]=b[3]; break; }? //Z字顺转180度

case 11: { a[x][y+1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][ y]=b[3]; break; } //Z字顺转270度

case 12: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y-1]=b[3]; break; }? //7字方块

case 13: {a[x-2][y]=b[1]; a[x+2][y-1]=b[2]; a[x+2][y]=b[3]; break; }? //7字顺转90度

case 14: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x+2][y+1]=b[3]; break; } ?//7字顺转180度

case 15: { a[x-2][y]=b[1]; a[x-2][y+1]=b[2]; a[x+2][y]=b[3]; break; } ?//7字顺转270度

case 16: { a[x][y+1]=b[1]; a[x][y-1]=b[2]; a[x+2][y-1]=b[3]; break; } ?//倒7字方块

case 17: { a[x-2][y]=b[1]; a[x+2][y+1]=b[2]; a[x+2][y]=b[3]; break; }? //倒7字顺转90度

case 18: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y+1]=b[3]; break; } ?//倒7字顺转180度

case 19: { a[x-2][y]=b[1]; a[x-2][y-1]=b[2]; a[x+2][y]=b[3]; break; }? //倒7字顺转270度

}

}

void keyD( )? //按键操作

{ if (kbhit( ))??

{ int key;

key=getch();

if (key==224)

{ key=getch();

if (key==75) { x-=2; }? //按下左方向键,中心横坐标减2

if (key==77) { x+=2; }? //按下右方向键,中心横坐标加2

if (key==72)??? ?//按下向上方向键,方块变体

??????{ if (flag=2 flag=3 ) { flag++; flag%=2; flag+=2; }

???????if ( flag=4 flag=7 ) { flag++; flag%=4; flag+=4; }

??????if (flag=8 flag=11 ) { flag++; flag%=4; flag+=8; }

??????if (flag=12 flag=15 ) { flag++; flag%=4; flag+=12; }

??????if ( flag=16 flag=19 ) { flag++; flag%=4; flag+=16; } }

?}

if (key==32)???? //按空格键,暂停

????{ setColor(5, 0);prfk( ); while(1) { if (getch( )==32) { clfk( );break;} } } //再按空格键,继续游戏

?if (ifmov( )==0) { x=Tb; flag=Tc; } //如果不可动,撤销上面操作

??else { setColor(5, 0); prfk( ); Sleep(speed); clfk( ); Tb=x;Tc=flag;} //如果可动,执行操作

}

}

int ifmov( ) ??//判断能否移动

{ if (a[x][y]!=0) { return 0; }? //方块中心处有图案返回0,不可移动

else{ if ( (flag==1 ( a[x][ y-1]==0 a[x+2][y-1]==0 a[x+2][y]==0 ) ) ||? //田字方块

?(flag==2 ( a[x-2][y]==0 a[x+2][y]==0 a[x+4][y]==0 ) ) ||? //以下为其它方块

?????(flag==3 ( a[x][y-1]==0 a[x][y-2]==0 a[x][y+1]==0 ) ) ||

?????(flag==4 ( a[x-2][y]==0 a[x+2][y]==0 a[x][y+1]==0 ) ) ||

?????(flag==5 ( a[x][y-1]==0 a[x][y+1]==0 a[x-2][y]==0 ) ) ||

?????(flag==6 ( a[x][ y-1]==0 a[x-2][y]==0 a[x+2][y]==0 ) ) ||

?????(flag==7 ( a[x][y-1]==0 a[x][y+1]==0 a[x+2][y]==0 ) ) ||

????(flag==8 ( a[x][y+1]==0 a[x-2][y]==0 a[x+2][y+1]==0 ) ) ||

????(flag==9 ( a[x][y-1]==0 a[x-2][y]==0 a[x-2][y+1]==0 ) ) ||

?????(flag==10 ( a[x][y-1]==0 a[x-2][y-1]==0 a[x+2][y]==0 ) ) ||

?????(flag==11 ( a[x][y+1]==0 a[x+2][y-1]==0 a[x+2][y]==0 ) ) ||

????(flag==12 ( a[x][y-1]==0 a[x][y+1]==0 a[x-2][y-1]==0 ) ) ||

( flag==13 ( a[x-2][y]==0 a[x+2][y-1]==0 a[x+2][y]==0 ) ) ||

????( flag==14 ( a[x][y-1]==0 a[x][y+1]==0 a[x+2][y+1]==0 ) ) ||

(flag==15 ( a[x-2][y]==0 a[x-2][y+1]==0 a[x+2][y]==0 ) ) ||

(flag==16 ( a[x][y+1]==0 a[x][y-1]==0 a[x+2][y-1]==0 ) ) ||

( flag==17 ( a[x-2][y]==0 a[x+2][y+1]==0 a[x+2][y]==0 ) ) ||

????(flag==18 ( a[x][y-1]==0 a[x][y+1]==0 a[x-2][y+1]==0 ) ) ||

????(flag==19 ( a[x-2][y]==0 a[x-2][y-1]==0 a[x+2][y]==0 ) ) ) { return 1; }

}

return 0;? //其它情况返回0

}

void clNEXT( )? //清除边框外的NEXT方块

{ flag = next;? x=ZL+W+6;? y=ZL+10; ?clfk( ); }

void clHA( )? //清除满行的方块

{ int k, Hang=0;? ?//k是某行方块个数, Hang是删除的方块行数

for(j=ZL+H-1;j=ZL+1;j--)? //当某行有W/2-2个方块时,则为满行

{ k=0; for(i=ZL+2;iZL+W-2;i+=2)

??{ if (a[i][j]==1)?? //竖坐标从下往上,横坐标由左至右依次判断是否满行

??{ k++;? //下面将操作删除行

if (k==W/2-2) { for(k=ZL+2;kZL+W-2;k+=2) { a[k][j]=0; gtxy(k,j); printf("? "); Sleep(1); }

????for(k=j-1;kZL;k--)

?????{ for(i=ZL+2;iZL+W-2;i+=2)? //已删行数的上面有方块,先清除再全部下移一行

??????{ if(a[i][k]==1) { a[i][k]=0; gtxy(i,k); printf("? ");a[i][k+1]=1; gtxy(i,k+1);

setColor(2, 0); printf("□"); } }

??????}

?????j++;???? //方块下移后,重新判断删除行是否满行

????Hang++;? //记录删除方块的行数

????}

???}

???}

}

score+=100*Hang;? //每删除一行,得100分

if ( Hang0 (score%500==0 || score/500 level-1 ) ) ?//满500分速度加快,升一级

{ speed-=20; level++; if(speed200)speed+=20;}

}

用C语言编写的小游戏代码是什么?

“猜数字小游戏”,每个数字后按空格,最后按回车确认

#includestdio.h

#includestdlib.h

#includetime.h

int a[4],b[4];

int count=0;? //计算猜测次数

void csh( );? //初始化

void start( );? //开始游戏

int main( )

{ csh( );

start( );

}

void csh( )? //初始化

{ printf("\n\n???????? 猜? 数? 字? 小? 游? 戏\n\n");

printf(“? ??猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B.\n”);

}

void start( )? //开始游戏

{int m,n;? //m是完全猜对的个数,n是顺序不对的个数

while(1)

{srand((unsigned)time(NULL));? //初始化随机数发生器srand( )

while(1) { for(int i=0;i4;i++) a[i]=rand( )%10; ?//rand( )函数每次随机产生一个0-9的数

if( (a[3]!=a[2]a[3]!=a[1]a[3]!=a[0])

(a[2]!=a[1]a[2]!=a[0])a[1]!=a[0] ) break; }? //4个随机数各自不相等

printf("?? ?请依次输入4个一位整数:\n\n? ?");

while(1)

{for(int i=0;i4;i++) scanf(“%d”,b[i]);

printf("?? ?你输入的是:%d? %d? %d? %d ",b[0],b[1],b[2],b[3]);

m=0;n=0;

for(int i=0;i4;i++)

{for(int j=0;j4;j++)

{ if(b[i]==a[j]i==j)m=m+1; if(b[i]==a[j]i!=j)n=n+1; }

}

count=count+1;

printf("????? %dA? %dB?? 你试了%d次\n? ?",m,n,count);

if(m==4)break;

if(count==8){ count=0; break; }

}

printf("\n");

if(m==4)printf("???? 你猜对了(^-^)! 就是:%d %d %d %d\n",a[0],a[1],a[2],a[3]);

else printf("???? 你输了(T-T)!哈哈!应该是:%d %d %d %d\n",a[0],a[1],a[2],a[3]);

int z;

printf("???? (要继续吗?1或0)\n? ?");

scanf(“%d”,z);

if(z==0) break;

}

}

(责任编辑:IT教学网)

更多

推荐PHP+MySQL视频文章