c语言编程一个最简单游戏代码(c语言最简单小游戏代码)

http://www.itjxue.com  2023-03-04 02:01  来源:未知  点击次数: 

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

/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++6.0、turbo????)上都能运行,你还可以进一步改进。这是一个类似贪吃蛇的小游戏。祝你好运*/\x0d\x0a/*贪吃蛇*/\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0aint head=3 ,tail=0;\x0d\x0aint main()\x0d\x0a{\x0d\x0aint i,j,k=0;\x0d\x0aint zuobiao[2][80];\x0d\x0along start;\x0d\x0aint direction=77;\x0d\x0aint gamespeed;\x0d\x0aint timeover;\x0d\x0aint change(char qipan[20][80],int zuobiao[2][80],char direction);\x0d\x0azuobiao[0][tail]=1;zuobiao[1][tail]=1;zuobiao[0][1]=1;zuobiao[1][1]=2;zuobiao[0][2]=1;zuobiao[1][2]=3;zuobiao[0][head]=1;zuobiao[1][head]=4;\x0d\x0a/*处理棋盘*/\x0d\x0achar qipan[20][80];//定义棋盘\x0d\x0afor(i=0;i for(j=0;jqipan[i][j]=' ';//初始化棋盘\x0d\x0afor(i=0;iqipan[0][i]='_';\x0d\x0afor(i=0;iqipan[i][0]='|';\x0d\x0afor(i=0;iqipan[i][79]='|';\x0d\x0afor(i=0;iqipan[19][i]='_';\x0d\x0aqipan[1][1]=qipan[1][2]=qipan[1][3]='*';//初始化蛇的位置\x0d\x0aqipan[1][4]='#';\x0d\x0aprintf("This is a game of a SNAKE.\nGOOD LUCK TO YOU !\n");\x0d\x0aprintf("Input your game speed,please.(e.g.300)\n");\x0d\x0ascanf("%d",gamespeed);\x0d\x0a\x0d\x0awhile(direction!='q')\x0d\x0a{\x0d\x0asystem("cls");\x0d\x0afor(i=0;ifor(j=0;jprintf("%c",qipan[i][j]);\x0d\x0atimeover=1;\x0d\x0astart=clock();\x0d\x0awhile(!kbhit()(timeover=clock()-startif(timeover)\x0d\x0a{\x0d\x0agetch();\x0d\x0adirection=getch();\x0d\x0a}\x0d\x0aelse\x0d\x0adirection=direction;\x0d\x0aif(!(direction==72||direction==80||direction==75||direction==77))\x0d\x0a{\x0d\x0areturn 0;\x0d\x0asystem("cls");\x0d\x0aprintf("GAME OVER!\n");\x0d\x0a}\x0d\x0aif(!change(qipan,zuobiao,direction))\x0d\x0a{\x0d\x0adirection='q';\x0d\x0asystem("cls");\x0d\x0aprintf("GAME OVER!\n");\x0d\x0a}\x0d\x0a}\x0d\x0areturn 0;\x0d\x0a}\x0d\x0aint change(char qipan[20][80],int zuobiao[2][80],char direction)\x0d\x0a{\x0d\x0aint x,y;\x0d\x0aif(direction==72)\x0d\x0ax=zuobiao[0][head]-1;y=zuobiao[1][head];\x0d\x0aif(direction==80)\x0d\x0ax=zuobiao[0][head]+1;y=zuobiao[1][head];\x0d\x0aif(direction==75)\x0d\x0ax=zuobiao[0][head];y=zuobiao[0][head]-1;\x0d\x0aif(direction==77)\x0d\x0ax=zuobiao[0][head];y=zuobiao[1][head]+1;\x0d\x0aif(x==0||x==18||y==78||y==0)\x0d\x0areturn 0;\x0d\x0aif(qipan[x][y]!=' ')\x0d\x0areturn 0;\x0d\x0aqipan[zuobiao[0][tail]][zuobiao[1][tail]]=' ';\x0d\x0atail=(tail+1)%80;\x0d\x0aqipan[zuobiao[0][head]][zuobiao[1][head]]='*';\x0d\x0ahead=(head+1)%80;\x0d\x0azuobiao[0][head]=x;\x0d\x0azuobiao[1][head]=y;\x0d\x0aqipan[zuobiao[0][head]][zuobiao[1][head]]='#';\x0d\x0areturn 1;\x0d\x0a}

用C语言编写一个简单的打字母游戏,给出基本思路及完整程序。

# includestdio.h

# include conio.h

# include graphics.h

# include time.h

# pragma comment(lib,”Winmm.lib”) //引用Windows Multimedia APT

int score =0; //全局变量********整型的分数

char s[5]; //全局变量****字符型的分数

struct player_ //自定义的结构体,并顺便定义一个结构体变量

{

char name[20];

int score_;

}player[11];

/***************函数声明*****************/

void record_(); //记录彼此成绩函数

void welcome( ); //欢迎界面函数

void instructions( ); //游戏说明界面函数

void gane (int rank2); //游戏函数

void record ( ); //显示记录函数

int rank_(char rank1); //等级选择函数

void goodbye ( ); //退出界面函数

/**************主函数**************/

int main ()

{

char rank1; //rank1接受从键盘输入的字符,根据字符判断等级

int rank2=15; // 控制延时时间,从而控制速度

intsign=1; // 当做标记,用于标记是否弹出MessageBox对话框

welcome ( ); //调用欢迎界面函数

instructions ( ); //调用游戏什么函数

record( ); //调用显示记录函数

InputBox(player[10].name,20,"请输入玩家昵称"; //以对话框形式获取用户输入函数

rank1=getch();//读入一个字母

rank2=rank_(rank1); //调用等级函数

game (rank2); //调用游戏函数

HWND wnd =GetHWnd();

while (sign) //sign作为标记,执行循环

if (MessageBox(wnd,"游戏结束!!!\n再来一局,挑战更高分数","询问",MB_YESNO|MB_ICONQUESTION)==IDYES)

game (rank2);

else

{

sign=0;

goodbye( );

}

closegraph( );

return 0;

}

/***************记录本次成绩函数***************/

void record_()

{

FILE*fp; //文件指针

int i,j;

struct player_t; //定义结构体变量t,冒泡法比较大小时用

player[10].score_=score; //把该局的分数赋给该局用户的结构体变量中

fp=fopen("记录.dat","rb"); //打开二进制文件

for (i=0;i10;i++)

{

fread(player[i].name,20,l,fp); //读入记录中的成绩和名字

fread (player[i].score_,4,l,fp);

}

fclose(fp); //关闭二进制文件

for (j=0;j10;j++) //冒泡法排序

for (i=0;i10-j;i++)

if (player[i].score_)

{

t=player[i];

player[i]=player[i+1];

player[i+1]=t;

}

fp=fopen("记录.dat","wb"); //打开文件

for (i=0;i10;i++) //把排好序列的数据存入记录文件

{

fwrite(player[i].name,20,l,fp);

fwrite (player[i].score_,4,l,fp);

}

fclose(fp); //关闭文件

}

/****************欢迎界面函数****************/

void welcome ( )

{

char ch;

mciSendString("open\"res\\Sleep Away.mp3\"alias mymusic",NULL,0,NULL);

initgraph(640,480); //初始化画图界面

IMAGE img; //定义IMAGE对象

loadimage (img,"res\\00.jpg"); //读取图片到img对象中

putimage (0,0,img); //在坐标(0,0)位置显示IMAGE对象

ch=getch(); //吸收掉一个按键

cleardevice(); //清屏

}

/***************游戏说明界面函数**************/

void instructions()

{

int c=255; //控制变色的变量

setcolor(YELLOW); //设置颜色

setfont (30,0,"黑体"); //设置字体

outtextxy(0,0,"游戏说明"); //输出文字

setcolor(WHITE);

setfont(28,0,"宋体");

outtextxy(0,30,"一、每次游戏下落200个字母"); //输出文字

outtextxy(0,58,"二、请按数字键选择游戏等级");

outtextxy(0,86,"三、统计被击中的个数");

setfont(30,0,"华文行楷")

outtextxy (20,220,"等级一二三四 五六七八九");

outtextxy(20,260,“按键 1 2 3 4 5 6 7 8 9”);

while (!kbhit()) //kihit()作用是判断是否有字幕输入

{

setcolor(RGB(c,255,0));

setfont (80,0,"楷体");

outtextxy(140,130,"请选择等级");

setcolor(RGB(c,0,255));

setfont(100,0,"Wickenden Cafe NDP");

outtextxy(100,135,"Let's go!!!");

c-=25; //控制颜色的变量自减

if(c0)c=255; //控制颜色的变量小于0时,再把255赋给c

cleardevice(); //清屏

}

/***************退出界面函数***************/

void goodbye()

{

int c=255; //控制变色变量

cleardevice(); //清屏

setcolor(YELLOW);

setfont (48,0,"黑体");

outtextxy (104,120,"的最终成绩是: ");

setfont (48,0,"华文楷体");

setcolor(RGB(255,255,0));

outtextxy(140,320,"按任意键退出游戏");

setcolor(YELLOW);

setfont(48,0,"黑体");

outtextxy (104,120,"的最终成绩是: ");

outtextxy(104,70,player[10].name);

record_(); //调用记录本次成绩函数

while(!kbhit())

{

setcolor(RGB(255,0,c-100)); //设置颜色

setfont(100,0,”Wickenden Café NDP”);

outtextxy(400,90,s); //输出数字

setcolor(RGB(c,0,255));

setfont(48,0,”黑体”);

if (score==200)

outtextxy(100,200,”全部击中!!!”);

else

if(score190)

outtextxy(100,200,”不错!继续加油!”);

else

outtextxy(100,200,”不要灰心!继续加油!”);

c-=25;

if(c0)

c=255;

Sleeep(20); //延时20秒

}

getch( ); //提供给用户时需要等待输入后再退出

}

/**************等级选择函数**************/

int rank_(char rank1)

{

int rank2;

switch(rank1) //判断字符,确定等级

{

case’0’:rank2=11;break;

case’1’:rank2=10;break;

case’2’:rank2=9;break;

case’3’:rank2=8;break;

case’4’:rank2=7;break;

case’5’:rank2=6;break;

case’6’:rank2=5;break;

case’7’:rank2=4;break;

case’8’:rank2=3;break;

case’9’:rank2=2;break;

default:rank2=15;break;

}

return rank2;

}

/**************显示记录函数***********/

void record( )

{

FILE *p; //文件指针

int a[10],j;

char b[10][10];

fp=fopen(“记录。dat”,”rb”); //打开文件

for (j=0;j10;j++)

{

fread(player[j].name,20,1,fp); //读取文件中的信息

fread(player[j].score_,4,1,fp);

}

fclose(fp); //关闭文件

setfont(60,0,”Arial”);

setcolor(RGB(250,250,0));

outtextxy(250,0,”TOP10”);

for(j=0;j10;j++)

{

sprintf(“b[j],%d”,player[j].score_); //把整型转换为字符型

setcolor(RGB(0,100,255));

setfont(40,0,”Arial”);

outtextxy(420,50+40*j,b[j]);

outtextxy(120,50+40*j,player[j].name); //输出名字

/**********游戏函数******************/

void game (int rank2)

{

cleardevice( ); //清屏

score=0; //清除掉原有的分数

outtextxy(0,0,”玩家:”);

outtextxy(90,0,player[10].name);

setfont(20,0,”Arial”);

outtextxy(100,460,” 人生有享受片刻优雅恬适的权力,让打字母游戏放松你一下吧!”);

int i;

char target; //目标字母

char key; //用户的按键

intx,y; //字母的位置

int flag =1; //标记是否按了退出键

int sum=0; //成绩计数

int num =200; //规定下落字母的个数

srand (time(NULL)); //随机时间种子,设置第一个随机函数的值

setfillstyle(BLACK); //设置下面矩形内图的颜色

setcolor(YELLOW); //

line(0,450,640,450); //用3条线规定一下工作区

line(0,440,640,440); //用3条线规定一下工作区

line(0,40,640,40); //用3条线规定一下工作区

while (flagnum)

{

setfont(40,0,”宋体”); //设置字母的字体和大小

i=rand()%2; //rand()函数返回0~32767之间的一个整数

if(i)

target=97+rand()%26; //产生任意小写字母

else

target=65+rand()%26; //产生任意大写字母

x=rand()%610; //产生任意下落位置

for (y=41;y380;y++)

{

setcolor (RGB(255,0,255));

outtextxy(x,y,target); //显示字母

if(kbhit())

{

key=getch(); //获取用户按键

if ((key==target)||( key==target-32)||( key==target+32))

{

score++; //分数统计

sprintf(s,”%d”score);

setfont(30,0,”Arial”);

outtextxy(500,0,“分数”);

outtextxy(600,0,s); //输出分数

bar(x-10,y-10,x+35,y+50); // 击中用黑框形擦去字母

break; //跳出循环,进行下一个字母

}

else if (key==27) //判断是否按了

{

flag=0; //若果按ESC,退出游戏主循环

break;

}

}

Sleep(rank2); //控制清除字母的时间爱你也就是控制下落速度

bar(x,y,x+35,y+60); //擦最下面的字符

}

num--; //计数

}

}

如何用devc编写简单游戏

首先需要新建一个源代码,然后输入最基本的程序框架。

然后在printf后输入%d,在%d后面填写你想要运行的算术。

下一步就是检查代码并且保存下来,记得格式是c语言。

最后点击运行就可以了,点击编译运行,点击任意键,代码就可以运行了。

如果你还是不明白具体如何操作,可以去一些app上,有很多人用devc做一些简单的游戏,你可以按照他们的步骤一步一步做,或者是去看教程,按照教程所教的内容一步一步来,这样就可以成功编写游戏了。

(责任编辑:IT教学网)

更多