当前位置:文档之家› 憋死牛游戏(C语言小游戏)

憋死牛游戏(C语言小游戏)

憋死牛游戏(C语言小游戏)
憋死牛游戏(C语言小游戏)

#include

#include

#include

char qipan[23][23];

void csh();//初始化棋盘

void printfqipan();//输出棋盘

void yxjs();//游戏介绍

int main()

{

int a,b,c,d,p,q;

char e;//用于存储谁先走

bool who;

int x=1;

int n=0;

static bool t=true;//定义静态变量,递归调用时不会被初始化

SetConsoleTitle("石家庄学院---“憋死牛”儿时游戏"); // 设置控制台标题

system("mode con cols=78 lines=43");//设置控制台缓冲区大小

system("color 02");//设置字体颜色

yxjs(); //输出游戏介绍

if(t)//再来一局时不会执行

{

printf("按回车键开始游戏!");

getchar();

t=false;

}

csh();//初始化棋盘

printfqipan();//输出棋盘

printf("请输入谁先开始:");

while(x)//获取先走的一方

{

fflush(stdin);//清空键盘缓冲区

e=getchar();

fflush(stdin);//清空键盘缓冲区

if(e=='a'||e=='A')

{who=true;x--;}//获取到有效值则终止循环

else if(e=='b'||e=='B')

{who=false;x--;}//获取到有效值则终止循环

else

printf("请输入A或B:");

}

printf("输入要走棋子的坐标,使其补到空位。例如将坐标0,0的棋子补到空位请输入00。\n坐标表示方式为:横坐标纵坐标\n");

{ printf("请%c方走,请输入要走棋子的坐标:",(who?'A':'B'));

if(qipan[0][0]=='\ ')//找出哪个位置为空位

{c=0;d=0;}

else if(qipan[11][11]=='\ ')

{c=11;d=11;}

else if(qipan[0][22]=='\ ')

{c=0;d=22;}

else if(qipan[22][0]=='\ ')

{c=22;d=0;}

else if(qipan[22][22]=='\ ')

{c=22;d=22;}

fflush(stdin);//清空键盘缓冲区

q=-1;

scanf("%1d%1d",&p,&q);//输入要走的棋子

if(q==-1)//判断是否获取完整的坐标

{printf("请输入完整坐标!");fflush(stdin);}//如果只输入一个坐标提示并清空键盘缓冲区

else

{b=p*10+p;a=q*10+q;}//换成数组数值

if(n==0&&((a==22&&b==22)||(a==22&&b==0)))//第一步不能获胜

{

printf("第一步不能走这里哟!\n");

continue;

}

n++;

if((a!=0&&a!=22&&a!=11)||(b!=0&&b!=22&&b!=11)||qipan[a][b]=='\ ')//判断是否输错数值

{

printf(" 输入不正确,请重新输入!\n");

printf("例如将坐标0,0的棋子补到空位请输入0 0。\n");

continue;

}

if((abs(a-c)==22)&&(abs(b-d)==22)||(a==22&&c==22))//判断是否违反行棋规则{

printf(" >_< 此路貌似走不通哟!\n");

continue;

}

if(qipan[a][b]==(who?'B':'A'))//判断是否为对方的棋子

{

printf(" 不要乱动别人的棋子啊~!难不成你想作弊?\n");

continue;

qipan[a][b]='\ ';qipan[c][d]=(who?'A':'B');//更新棋盘

system("cls");//清屏

yxjs();//打印游戏介绍

printf(" ");

printfqipan();

if((qipan[0][0]==(who?'B':'A'))&&(qipan[22][0]==(who?'B':'A'))&&

(qipan[11][11]==(who?'A':'B'))&&(qipan[0][22]==(who?'A':'B'))||

((qipan[0][22]==(who?'B':'A'))&&(qipan[22][22]==(who?'B':'A'))&&

(qipan[11][11]==(who?'A':'B'))&&(qipan[0][0]==(who?'A':'B'))))//列举出所有胜利的方式,判断是否胜利

{

if(who==true)

{

if (MessageBox(NULL, "恭喜A方胜利啦~ B方不要气馁,下次加油!\n 要再来一局吗?", "胜负已分败者节哀", MB_OKCANCEL)==IDCANCEL)

exit(0);//结束程序,而不是返回值

else

main();//再来一局则递归调用main()

}

else

{

if (MessageBox(NULL, "恭喜B方胜利啦~ A方不要气馁,下次加油!\n 要再来一局吗?", "胜负已分败者节哀", MB_OKCANCEL)==IDCANCEL)

exit(0);//结束程序,而不是返回值

else

main();//再来一局则递归调用main()

}

}

who=!who;//换对方走

}

return 0;

}

void csh()//初始化棋盘

{

int i,j;

for(i=0;i<23;i++)

for(j=0;j<23;j++)

qipan[i][j]='\ ';

for(i=1;i<22;i++)

qipan[0][i]='=';//第一行“====”

for(j=1;j<22;j++)

{

qipan[j][0]='|';//两边的竖线

qipan[j][22]='|';

}

printf(" ");//第一行“0”之前的空格

for(i=0;i<22;i++)//斜线“=”

for(j=0;j<22;j++)

{

if(i==j&&i!=11)

qipan[i][j]='=';

if(i+j==22&&i!=11)

qipan[i][j]='=';

}

qipan[0][0]='A';qipan[0][22]='B';

qipan[22][0]='A';qipan[22][22]='B';qipan[11][11]='\ ';//初始化棋子位置for(i=17;i<23;i++)//绘制“井”

for(j=6;j<17;j++)

qipan[i][j]='~';

}

void printfqipan(void)//输出棋盘

{

int i,j;

for(i=0;i<23;i++)//输出横坐标

{

if(i==11||i==0||i==22)

printf("%3d",i/10);

else printf(" ");

}

printf("\n");

for(i=0;i<23;i++)//输出纵坐标

{

if(i==11||i==0||i==22)

printf("%2d",i/10);

else printf(" ");

for(j=0;j<23;j++)//输出棋盘数组

{printf("%3c",qipan[i][j]);}

printf("\n");

}

printf("\n");

}

void yxjs()//游戏介绍

{

printf(" “憋死牛”游戏介绍\n");

printf("------------------------------------------------------------------------------\n");

printf(" 这是我们小时候经常玩的一种游戏,希望这个游戏能带你重温小时候的乐趣。\n");

printf(" 游戏规则:对弈双方各两子,分放棋盘两边,其中一A============B\n");

printf(" 方,先下,但先走者第一步不能将靠井的棋子走到| = = |\n");

printf(" 棋盘中间位置(否则对方马上就进入死局),沿棋| = = |\n");

printf(" 盘直线或斜线走,只要四粒就可以了,该游戏比较| B |\n");

printf(" 适合小孩子玩易学易下,每次只走一步,不得过人| = = |\n");

printf(" 或连步,一直走到死局的阵势,其中一方无法走棋| = ~~~~ = |\n");

printf(" ,只等跳井(棋盘下方的圆圈)了(如右图为B胜)。 A ~~~~ \n");

printf(" 这里我们以~~组成的图为井.\n 那么你还在等什么?让我们一起回味童年的乐趣吧!\n");

printf("------------------------------------------------------------------------------\n");

}

c语言小游戏编程

程序设计实践 大作业 学号:20100302XXXX 姓名:XXX 班级:信息10-3班 实验题目:射击类飞机游戏 页脚内容1

成绩: 一.实验题目: 射击类飞机游戏 二.实验目的: 通过c语言编写一个射击类的打飞机小游戏,可以通过键盘来进行游戏,操作方法是“a”“d”“w”或者“←”“↑”“→”来控制,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏…… 三.对游戏的改进: 这个游戏是我对一个小游戏进行的改造升级版,添加了颜色函数、终止函数,选择类函数,使游戏实现了可以终止,不再是分数、死亡数一直增加但是没有结束的情况;增加了颜色函数,使得游戏看起来更加的舒适;增加了终止函数,使游戏在死亡三次后自动结束游戏,并且可以选择是否重新开始游戏;另外增添了设置函数,使得可以对游戏进行设置,改变游戏大小,调整飞机运行速度等等,是游戏更加的人性化…… 四.实验内容 页脚内容2

编写出c语言代码,运行程序,并调试程序,最终实现游戏的功能。本程序主要包含游戏控制函数、设置是否继续游戏函数、输出函数、子弹移动函数、敌机移动函数、设置函数、菜单函数等7个主要函数,包含了不同的功能,对原来的程序作出了很大的改进,用到的主要语句有getche语句、for语句、while语句、printf语句、switch语句等等,添加了颜色函数,实现了诸多功能。可以在页面上显示制作人的主要信息等等…… 【流程图见打印版】 五.源程序: #include 页脚内容3

#include #include #include #define N 35 #define up 72 #define left 75 #define right 77 void run();//游戏控制函数 void yn();//设置是否继续游戏函数 void print(int [][N]);//输出函数 void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting(void);//设置函数 void menu(void);//菜单函数 int scr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡 页脚内容4

c语言小游戏

简单的c语言迷宫小游戏 一、内容: 1、本游戏主要实现了人控制键盘方向键使小人(*)走出迷宫。 2、具有的功能: 1)、在游戏菜单里人可以选择不同难度的游戏进行游戏; 2)、在游戏过程中,可以通过键盘方向键使小人移动,走出迷宫; 3)、在游戏过程中,当人碰到墙壁(#)的时候小人过不去; 4)、当人顺利完成游戏之后,输出“========you are win!======”字样,30秒钟后自动返回到游戏菜单; 5)、在游戏过程中,人可以通过按Esc键返回游戏菜单;也可以可以按0直接退出游戏; 6)、在游戏菜单里,按0键可以退出游戏。 3、具体应用: 1)、人主要同过键盘的1,2,3数字键来选择游戏难度; 2)、在游戏中通过Esc键来返回菜单; 3)、同过0键退出游戏。 二、上机环境操作系统:windows7 开发工具:VC6.0 三、各函数功能说明 main() 主函数; menu() 游戏菜单; roadcake() 消去小人路径; introduce() 游戏介绍; system(“cls”)消屏函数; exit(0) 退出游戏; drawmg1() 画初级难度迷宫; drawmg2() 画中级难度迷宫; drawmg3() 画高级难度迷宫; control1() 控制初级难度游戏; control2() 控制中级难度游戏; control3() 控制高级难度游戏; 四、算法流程图

首先定义三个全局数组mg1[20][20]、mg2[30][30]、mg3[30][30]用于画出迷宫的地图;1表示墙(#),0表示空地(); Introduce( )函数里如果按Enter键,则调用menu( )函数,从键盘中输入相应的提示数字,进入难度不同的游戏;游戏的执行在此只初级难度进行描述,其余的难度与其类似; 选了1后调用system(”cls”)进行清屏;drawmg1()函数进行迷宫的地图的绘制, for(i=0;i<20;i++) { printf("\t\t\t"); for(j=0;j<20;j++) { ch=mg1[i][j]; switch(ch) { case 4: printf("*");break; case 0: printf(" ");break; case 1: printf("#");break; } if(num++%20==0) /*每行只能输出20个字符*/ printf(”\n”); } } 之后调用控制函数control1()进行控制小人移动路径,在control1()函数里用do—while()语句进行循环,while(1)进行死循环,再定义四个整型a,b,m,n即: for(n=0;n<30;n++) for(m=0;m<30;m++) if(mg3[n][m]==4) { a=n; /*为后面调用roadcake()实现消除小人路径进行初始赋值*/ b=m;break; } 用switch()语句选择方向键,在调用roadcake()函数进行消除小人路径 void roadcake(int *i,int *j) {

C语言编程游戏代码

#include #include #include #include #include #define L 1 #define LX 15 #define L Y 4 static struct BLOCK { int x0,y0,x1,y1,x2,y2,x3,y3; int color,next; intb[]={{0,1,1,1,2,1,3,1,4,1},{1,0,1,3,1,2,1,1,4,0},{1,1,2,2,1,2,2,1,1,2},{0,1,1,1,1,0,2,0,2,4}, {0,0,0,1,1,2,1,1,2,3},{0,0,1,0,1,1,2,1,3,8},{1,0,1,1,2,2,2,1,2,5},{0,2,1,2,1,1,2,1,2,6},{0,1,0,2,1,1,1 ,0,3,9},{0,1,1,1,1,2,2,2,3,10},{1,1,1,2,2,1,2,0,3,7},{ 1,0,1,1,1,2,2,2,7,12},{0,1,1,1,2,1,2,0,7,13},{0 ,0,1,2,1,1,1,0,7,14},{0,1,0,2,1,1,2,1,7,11},{0,2,1,2,1,1,1,0,5,16},{0,1,1,1,2,2,2,1,5,17},{1,0,1,1,1, 2,2,0,5,18},{0,0,0,1,1,11,2,1,5,15},{0,1,1,1,1,0,2,1,6,2,0},{0,1,1,2,1,1,1,0,6,21},{0,1,1,2,1,1,2,1,6 ,22},{1,0,1,1,1,2,2,1,6,19}}; static int d[10]={33000,3000,1600,1200,900,800,600,400,300,200}; int Llevel,Lcurrent,Lnext,Lable,lx,ly,Lsum; unsigned Lpoint; int La[19][10],FLAG,sum; unsigned ldelay; void scrint(),datainit(),dispb(),eraseeb(); void throw(),judge(),delayp(),move(0,note(0,show(); int Ldrop(),Ljudge(),nextb(),routejudge(); } main() { char c; datainit(); Label=nextb(); Label=Ldrop(); while(1){ delayp(); if(Label!=0) { Ljudge(); Lable=nextb(); } ldelay--; if(ldelay==0)

C语言小游戏程序设计

程序设计实验 大作业 学院: 班级: 学号: 指导老师: 姓名: 实验项目名称:猜数字游戏成绩:

一、实验要求 根据所学知识编写一个小游戏--猜数字游戏 二、实验目的 为了加深对编程课程的基本知识的理解和掌握,并且掌握编程和程序调试的技巧通过程序的设计训练和提高学生的基本技能,掌握字符串的表示方法和字符串函数的功能、编程软件操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高解决实际问题的能力,巩固语法规则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。 三、功能模块分析 1.系统能够随机产生一个1到1000的数字 2.比较输入数字与随机产生数字的大小 3.选择是否继续游戏 四、修改处 1.将输出内容由英文变为汉字 2.改变背景及输出字体的颜色 3将随机产生的数值范围由1-100变为1-1000 四、设计思路 # include # include # include main() { void textbackground(int color); system("color fc"); int a,b; char c; srand(time(NULL)); a=1+(rand()%1000); printf("这有一个数字从1到1000.\n你能猜出它吗?\n输入你猜的数字.\n"); scanf("%d",&b); while(b!=-1) { if(b==a) { printf("恭喜你猜对了!\n你喜欢再玩一遍吗?(y or n)?");

c语言小游戏

c语言小游戏 #include #include//基本型态定义。支援型态定义函数。使用者界面函数图形装置界面函数。 #include //用户通过按键盘产生的对应操作(控制台) #include #include //日期和时间头文件 #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); //获取标准输出的句柄 //句柄:标志应用程序中的不同对象和同类对象中的不同的实例方便操控,void gotoxy(int x, int y)//设置光标位置

COORD pos = {x,y}; //定义一个字符在控制台屏幕上的坐标POS SetConsoleCursorPosition(h Console, pos); //定位光标位置的函数 } void Hide_Cursor()//隐藏光标固定函数

C编写的小游戏

C编写的小游戏 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

#i n c l u d e usingnamespacestd; constcharMOUSE='*'; constcharWAY=''; constcharWALL='@'; constcharPASS='.'; constcharIMPASS='X'; classGame{ public: Game(size_tuWidth,size_tuHeight):m_uWidth(uWidth),m_uHeigh t(uHeight),m_pcMaze(newchar[uWidth*uHeight]),m_mouse(0,1){ srand(time(NULL)); char(*pcMaze)[m_uWidth]=reinterpret_cast(m_pcMaze); for(size_ti=0;im_uWidth-5)) pcMaze[i][j]=WAY;

elseif(i==0||i==m_uHeight- 1||j==0||j==m_uWidth-1) pcMaze[i][j]=WALL; else pcMaze[i][j]=rand()%4WAY:WALL; } ~Game(void){ if(m_pcMaze){ delete[]m_pcMaze; m_pcMaze=NULL; } } voidRun(void){ for(Show();!Quit()&&Step();); } private: classMouse{ public: Mouse(size_tx,size_ty):m_x(x),m_y(y){} size_tGetX(void){returnm_x;} size_tGetY(void){returnm_y;} voidStepRight(void){

C语言小游戏代码

#include #include #include void pass(int*charge)); void road(char*s,int*step,char count); void ouch(char*t,int a1,int a2); int wins(int count1,int count2); main() {char line[72]; int hare[11]={0,0,0,9,9,-12,1,1,1,-2,-2}; int tie[11]={0,3,3,3,3,3,-6,-6,1,1,1}; int i,b,c1=1,c2=1; printf("bang!!!!!\n""and thay're off!!!!!\n"); while(!wins(c1c2)){ srand(time(null)); for(b=0;b<=70;b++) line[b]=''; line[71]='\0'; i=1+rand()%10; c1+=hare[i]; c2+=tie[i]; road(line,&c1,'h');

road(line,&c2,'t'); ouch(line,c1,c2); sleep(1); } getch(); return0; } void pass(int*charge) {if(*charge>70) *charge=70; else if(*charge<1) *charge=1; } void rode(char*s,int*step,char count) { pass(step); s[*step]=count; } int wins(int count1,int count2) {if(count1==70){

使用C语言编写简单小游戏

纯真童趣的《泡泡堂》,还有武林情仇,笑傲江湖的《剑侠情缘on line》.它是e 时代常谈的话题,是交互式娱乐的主力军,是一种高层次的综合艺术,更是一个民族的文化,世界观的全新传播方式 .作为游戏玩家的我们,是不是想设计一个属于自己的游戏呢? 爱玩是人的天性,而C语言是我们计算机专业都要学习的一门基础学科.一般来说,是比较枯燥的.那么,我们能不能通过编一些小游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦 ,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣. 1,总是从Hello,world开始学习编程的第一个程序,一般就是打印一个亲切的词语——"Hell o,world!".让我们来看看这个最简单的C程序: #incolude <> /*把输入输出函数的头文件包含进来*/ int main() { printf("Hello, world!");/*在屏幕上输出字符串"Hello,world!"*/ return 0;/*退出main函数,并返回0*/ } 下面我们发现几个值得改进的地方,1,程序的运行结果一闪而过 .2,每执行这个程序一次都能看见上次运行留下的字符.3,我们还希望屏幕输出一个笑脸来欢迎我们. 让我们来改进一下这个程序吧! 1,在return语句的前面加一句:getch ();,表示按任意键结束.2,在printf语句前用clrscr函数清屏,要使用这个函数和getch函数,需要在程序开头再包含头文件码也有许多非常好玩的字符,比如ASCII码值为2的就是一个笑脸,我们可以用printf("%c", 2)来输出一个笑脸. 现在我们把Hello,world程序改成一个更好看的Hello,world了.下面让我们开始做游戏吧! 2,心动的开始,一个运动中的笑脸大家小时侯喜欢看动画片吗?哈哈,我猜你们都喜欢吧!下面就让我们来做一个小动画吧.在屏幕上显示一个运动的小笑脸,而且当它到达屏幕的边缘时会自动弹回来.先在程序定义一个在屏幕中运动的点的结构: struct move_point { int x, y;/*该点的位置,包括x坐标和y坐标*/ int xv, yv;/*该点在x轴,y轴的速度*/ }; 运动的原理是,先擦去物体先前的轨迹,让物体按其速度移动一段距离,再画出该物体.让我们看到以下代码: gotoxy, ;/*把光标移到指定的坐标*/ printf(" ");/*输出一个空格,把先前的字符擦去*/ 然后我们让物体按其速度运动: += ;/*水平方向按x轴的速度运动*/ += ;/*垂直方向按y轴的速度运动*/ 运动后还要判断物体是否出界,如果出了界,就令物体反弹,即让它下一刻的速度等于现在的速度的相反数.最后打印出这个笑脸: gotoxy, ; printf("%c\b", 2); /*输出ASCII码值为2的"笑脸"字符*/ 怎么样?是不是很有趣呢?不过这个笑脸一直是自己运动,能不能让我们来控制它运动呢?答案是肯定的,让我们继续往下学吧! 3,交互的实现——让我们来控制笑脸运动 这个程序的主要功能是接受按键,如果接收的是方向键,就让笑脸顺着方向移动,如果接收的是ESC键就退出程序,其他按键则忽略处理.接受按键我们用以下两条语句: while (bioskey(1) == 0);/*等待按键*/ key = bioskey(0);/*把接收的按键的键盘码赋给变量key*/ 然后用switch语句来判断按键以及执行相关操作,如下: switch (key) /*对变量key的值进行判断*/ { case UP: /*如果按的是向上键*/ … break; /*让物体向上运动,并退出switch*/

C编写的小游戏

C编写的小游戏集团档案编码:[YTTR-YTPT28-YTNTL98-UYTYNN08]

#i n c l u d e usingnamespacestd; constcharMOUSE='*'; constcharWAY=''; constcharWALL='@'; constcharPASS='.'; constcharIMPASS='X'; classGame{ public: Game(size_tuWidth,size_tuHeight):m_uWidth(uWidth),m_uHeight(uHe ight),m_pcMaze(newchar[uWidth*uHeight]),m_mouse(0,1){ srand(time(NULL)); char(*pcMaze)[m_uWidth]=reinterpret_cast(m_p cMaze); for(size_ti=0;im_uWidth-5)) pcMaze[i][j]=WAY; elseif(i==0||i==m_uHeight- 1||j==0||j==m_uWidth-1) pcMaze[i][j]=WALL; else pcMaze[i][j]=rand()%4?WAY:WALL; } ~Game(void){ if(m_pcMaze){ delete[]m_pcMaze; m_pcMaze=NULL; } } voidRun(void){ for(Show();!Quit()&&Step();); } private: classMouse{ public: Mouse(size_tx,size_ty):m_x(x),m_y(y){} size_tGetX(void){returnm_x;} size_tGetY(void){returnm_y;} voidStepRight(void){

c语言编写的小游戏代码

用vc6.0新建一个Win32 Application工程,把附件代码拷贝进去即可。上下左右键控制蛇的方向,空格键用于启动或者停止游戏。 上下左右空格键 #include #include #include #define C_W 516 #define C_H 548 //#define C_W 1024 //#define C_H 1024 #define GO_RIGHT 0x01 #define GO_DOWN 0x02 #define GO_LEFT 0x03 #define GO_UP 0x04 #define SNAKE_NUMBER 30 typedef struct node_struct { unsigned char direction; unsigned char cnt; }s_node,*s_node_handle; s_node s_count[SNAKE_NUMBER ]; typedef struct SNAKE { unsigned char Head_X; unsigned char Head_Y; unsigned char Tail_X; unsigned char Tail_Y; unsigned char h_index; unsigned char t_index;

unsigned char food_state; unsigned char score; unsigned char snake_state; } Snake_Data,*Snake_Data_handle; Snake_Data snk_1; #define MAP_X 64 #define MAP_Y 64 unsigned char game_map[MAP_Y][MAP_X]; LRESULT CALLBACK Win_tetris_Proc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state ) { snk_1.Head_X = 0x01;//head x snk_1.Head_Y = 0x00;//head y snk_1.Tail_X = 0x00;//tail x snk_1.Tail_Y = 0x00;//tail y snk_1.h_index=0; snk_1.t_index=0; snk_1.food_state=0; snk_1.score=0; snk_1.snake_state = 1; s_count[snk_1.h_index].cnt=2; s_count[snk_1.h_index].direction=GO_RIGHT; s_count[snk_1.t_index].cnt=2; s_count[snk_1.t_index].direction=GO_RIGHT; WNDCLASS wndcls; wndcls.cbClsExtra=0;

如何用c语言编写小游戏

如何用c语言编写小游戏 ----------------------------精品word文档值得下载值得拥有---------------------------------------------- 纯真童趣的《泡泡堂》,还有武林情仇, 笑傲江湖的《剑侠情缘on line》.它是e时代常谈的话题,是交互 式娱乐的主力军,是一种 高层次的综合艺术,更是一个民族的文 化,世界观的全新传播方式 .作为游戏玩家的我们,是不是想设计一 个属于自己的游戏呢? 爱玩是人的天性,而C语言是我们计算机 专业都要学习的一门基础 学科.一般来说,是比较枯燥的.那么,我 们能不能通过编一些小 游戏来提高它的趣味性呢?这样学习程 序设计,就不会是一件艰苦 ----------------------------精品word文档值得下载值得拥有---------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------- ----------------------------精品word文档值得下载值得拥有----------------------------------------------

,枯燥的事,它变得象电脑游戏一样充满 好奇,富有乐趣.这正是 我发贴的目的. 1, 总是从Hello,world开始 学习编程的第一个程序,一般就是打印 一个亲切的词语——"Hell o,world!".让我们来看看这个最简单的 C程序: #incolude /*把输入输出函 数的头文件包含进来*/ int main() { printf("Hello, ----------------------------精品word文档值得下载值得拥有---------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------- ----------------------------精品word文档值得下载值得拥有---------------------------------------------- world!");/*在屏幕上输出字符串"Hell o,world!"*/ return 0;/*退出main函数,并返回0*/ } 下面我们发现几个值得改进的地方,1,

c语言贪吃蛇小游戏程序课程设计

学生课程设计报告

一、课程设计内容 贪吃蛇小游戏程序设计 (贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中身体交叉蛇头撞倒自己身体则游戏结束。) 二、技术路线 使用VC++6.0作为开发环境, 采用控制台的形式完成整个游戏的开发,没有用到MFC。 加入了pcc32.h的头文件及库文件,用于对控制台打印效果的控制。 同时也加入了PlaySound()函数,实现了对菜单选择,游戏开始,游戏结束的音效控制。游戏栏和输出栏的同时打印,数据的更新打印效果,没有采用双线程的方法实现。 接收用户键盘输入信息,实现游戏暂停,重新开始,菜单选择和进入菜单。 三、设计与实现 1.游戏基本功能: 游戏有开始菜单界面,并有开始游戏,游戏帮助,关于游戏,退出游戏四个选项 游戏初始化后,一条蛇在密闭的围墙内,在围墙内随机出现一个食物, 通过按键盘上的四个方向键控制蛇移动, 蛇在移动过程中撞到墙壁将不会死亡,而是穿过围墙继续行进, 但是如果蛇身体交叉蛇头撞到自己的身体,则游戏结束。 同时,游戏过程中可暂停游戏,并有积分系统, 且积分每满一定值,蛇的运行速度也会逐步增加。 2.函数定义和声明 (1)头文件 #include #include #include #include #include #include "mmsystem.h" #pragma comment (lib,"winmm.lib") #include"pcc32.h" #pragma comment (lib, "pcc32_vc6.lib") using namespace std; #define UP 72 //定义上下左右常量 #define DOWN 80 #define LEFT 75 #define RIGHT 77

C语言编写的迷宫小游戏_源代码

C语言编写的迷宫小游戏源代码 #include #include #include #include #include #define N 20/*迷宫的大小,可改变*/ int oldmap[N][N];/*递归用的数组,用全局变量节约时间*/ int yes=0;/*yes是判断是否找到路的标志,1找到,0没找到*/ int way[100][2],wayn=0;/*way数组是显示路线用的,wayn是统计走了几个格子*/ void Init(void);/*图形初始化*/ void Close(void);/*图形关闭*/ void DrawPeople(int *x,int *y,int n);/*画人工探索物图*/ void PeopleFind(int (*x)[N]);/*人工探索*/ void WayCopy(int (*x)[N],int (*y)[N]);/*为了8个方向的递归,把旧迷宫图拷贝给新数组*/ int FindWay(int (*x)[N],int i,int j);/*自动探索函数*/ void MapRand(int (*x)[N]);/*随机生成迷宫函数*/ void PrMap(int (*x)[N]);/*输出迷宫图函数*/ void Result(void);/*输出结果处理*/ void Find(void);/*成功处理*/ void NotFind(void);/*失败处理*/ void main(void)/*主函数*/ { int map[N][N]; /*迷宫数组*/ char ch; clrscr(); printf("\n Please select hand(1) else auto\n");/*选择探索方式*/ scanf("%c",&ch); Init(); /*初始化*/ MapRand(map);/*生成迷宫*/ PrMap(map);/*显示迷宫图*/ if(ch=='1') PeopleFind(map);/*人工探索*/ else FindWay(map,1,1);/*系统自动从下标1,1的地方开始探索*/ Result();/*输出结果*/ Close(); } void Init(void)/*图形初始化*/ {

c语言编写小游戏系列教程之推动箱子,C_C++,自学去

设为首页收藏本站 快捷导航论坛视频教程c/c++PHP 问答平台编程文章 个人空间搜索QQ 群 热搜:c 语言java 编程教程自学去 学 论坛 编程语言 C/C++ c 语言编写小游戏系列教程之推动箱子 返回列表 电梯直达 楼主admin 在线 |每日签到 |我的 |设置 |消息 |提醒(2) |门户管理 |管理中心 |退出积分: 9681 | 用户组: 管理员请输入搜索内容帖子 索删除主题|升降|置顶|直播|高亮|精华|图章|图标|关闭|移动|分类|复制|合并|分割|修复|警告|屏蔽|标签|生成文章 查看: 519|回复: 1[精品文章] c语言编写小游戏系列教程之推动箱子 [复制链接] admin 790主题3975帖子9681积分 管理员 发表于 2015-1-4 18:47:19 | 只看该作者 上节课:https://www.doczj.com/doc/fd12758414.html,/thread-15448-1-1.html 上节课中 我们已经实现了人物的移动,大家的可以发现,人物可以移动,但是却不能推动箱子,还能穿过障碍物和箱子。 这节课,我们的人物,就是解决这两个问题,推动箱子,还有障碍物检测。 在这之前不得不先说一个问题,随着程序代码越来越多,我们一个文件中代码已经很长了,这样不利于代码的阅读和维护,所以这节课我们决定将代码 按照功能来分成不同的文件,类似模块化编程,每个功能就是一个模块。如何把代码放到多个文件呢? 把代码的申明部分放到,头文件中,实现部分 放到源文件中。 消息 新听众(3)坛友互动(1) 我的帖子(1)

积分 9681 IP 编辑禁止帖子清理 比如,关于箱子操作的函数以及箱子的结构体定义,我们就放在 box.h 中 函数的具体功能实现就放在 box.c 中。人物操作 就放在 person.h 和 person.c 中。其他的也是 类似。 头文件如何写? 我们看看例子,下面是 box.h 的所有内容 01. #ifndef _BOX_H_02. #define _BOX_H_ 03. 04. #include 05. 06. //定义箱子结构体07. typedef struct{08. int x;09. int y;10. char flag;11. int state;12. } box_t; 13. 14. //设置箱子位置 15. void set_box(box_t*, int x, int y); 16. //移动箱子,返回0表示成功移动,返回非0表示不能移动17. int move_box(box_t*, dir_t);18. //根据地图坐标获取指定box 19. box_t* get_box(int x, int y);20. 21. #endif 复制代码

纯C语言写的一个小型游戏-源代码

纯C语言写的一个小型游戏-源代码

/* A simple game*/ /*CopyRight: Guanlin*/ #include #include #include #include #include #include struct object_fix { char name[20]; char id[5]; char desc[500]; char action[30]; char im[5]; }; struct object_move { char name[20]; char id[5]; char desc[500]; int loc; int pwr; int strg; char im[5]; }; struct rover { char name[20]; char id[5]; char desc[500]; int pwr; int strg; int location[2]; char im[5]; }; struct map /* this is the map structure*/ { char data[20]; char add_data[20]; int amount; int x; /* this were the successor keeps it's x & y values*/ int y; }; struct location /*this structure is for the successor lister*/ { float height; char obj;

纯C语言写的一个小型游戏源代码

/* A simple game*/ /*CopyRight: Guanlin*/ #include #include #include #include #include #include struct object_fix { char name[20]; char id[5]; char desc[500]; char action[30]; char im[5]; }; struct object_move { char name[20]; char id[5]; char desc[500]; int loc; int pwr; int strg; char im[5]; }; struct rover { char name[20]; char id[5]; char desc[500]; int pwr; int strg; int location[2]; char im[5]; }; struct map /* this is the map structure*/ { char data[20]; char add_data[20]; int amount; int x; /* this were the successor keeps it's x & y values*/ int y; }; struct location /*this structure is for the successor lister*/ { float height;

如何用c语言编写小游戏

如何用 c 语言编写小游戏 ------------------ 精品word 文档值得下载值得拥有---------------- 纯真童趣的《泡泡堂》, 还有武林情仇, 笑傲江湖的《剑侠情缘on line 》. 它是e 时代常谈的话题, 是交互式娱乐的主力军, 是一种高层次的综合艺术, 更是一个民族的文化, 世界观的全新传播方式 . 作为游戏玩家的我们, 是不是想设计一个属于自己的游戏呢? 爱玩是人的天性,而C语言是我们计算机专业都要学习的一门基础 学科.一般来说,是比较枯燥的.那么,我们能不能通过编一些小游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦 ------------------ 精品word 文档值得下载值得拥有---------------- 精品word 文档值得下载值得拥有

, 枯燥的事, 它变得象电脑游戏一样充满 好奇, 富有乐趣. 这正是我发贴的目的. 1, 总是从Hello,world 开始学习编程的第一个程序, 一般就是打印一个亲切 的词语——"Hell o,world!". 让我们来看看这个最简单的 C程序: #incolude /* 把输入输出函数的头文件包含进来*/ int main() { printf("Hello, ------------------ 精品word 文档值得下载值得拥有---------------- 精品word 文档值得下载值得拥有------ world!");/* 在屏幕上输出字符串"Hell o,world!"*/ return 0;/* 退出main 函数, 并返回0*/ } 面我们发现几个值得改进的地方,1, 程序的运行结果一闪而过 .2, 每执行这个程序一次都能看见上次运行留下的字符.3, 我们还希望屏幕输 出一个笑脸来欢迎我们. ( 大家不要小看了这个笑脸曾经有人发贴专门问呢) 让我们来改进一下这个程序吧!

C语言编程2048小游戏

C语言编程2048小游戏 /*By Reason*/ #include #include #include #include #include #include //为了读取方向键 #include using namespace std; //srand( (unsigned)time( NULL ) ); //随机数种子不能用在这里 int pane[4][4]; //棋盘 int N=1; //2的n次方 void showpane() //显示棋盘 { cout<

cout<

相关主题
文本预览