150809234 赵帅 (飞机游戏)

飞机游戏代码如下:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

#define N 35

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;//全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡

main(void)

{

menu();

int i=0,j=0;

scr[21][pl]=1;

scr[0][5]=3;

while(1){if(kbhit())switch(getch())//控制左右移动和进入菜单

{case ‘a‘:case ‘A‘:if(pl>0)scr[21][pl]=0,scr[21][--pl]=1;break;

case ‘d‘:case ‘D‘:if(pl<width-2)scr[21][pl]=0,scr[21][++pl]=1;

break;

case ‘w‘:case ‘W‘:scr[20][pl]=2;break;case 27 :setting();

break;

}

if(++j%density==0)//控制生产敌机的速度

{j=0;srand(time(NULL));

scr[0][rand()%width]=3;

}

if(++i%speed==0)//控制敌机移动速度,相对于子弹移动速度

movepla(scr);

movebul(scr);

print(scr);

if(i==30000)i=0;//以免i 越界

}

}

void print(int a[][N]){system("cls");

int i,j;

for(i=0;i<22;i++){a[i][width-1]=4;

for(j=0;j<width;j++){if(a[i][j]==0)printf(" ");

if(a[i][j]==1)printf("\5");//输出我机的符号

if(a[i][j]==2)printf(".");//子弹

if(a[i][j]==3)printf("\3"); //输出敌机符号

if(a[i][j]==4)printf("|");

if(i==0&&j==width-1)printf("得分:%d",score);//右上角显示得分

if(i==1&&j==width-1)printf("死亡:%d",death);

if(i==2&&j==width-1)printf("设置:Esc");

if(i==3&&j==width-1)printf("Copyright:王攀");

}

printf("\n");

}

}

void movebul(int a[][N]){int i,j;

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

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

{

if(i==0&&a[i][j]==2)a[i][j]=0;if(a[i][j]==2)

{

if(a[i-1][j]==3)score+=10,printf("\7");

a[i][j]=0,a[i-1][j]=2;

}

}

}

void movepla(int a[][N])

{

int i,j;

for(i=21;i>=0;i--)//从最后一行往上是为了避免把敌机直接冲出数组。

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

{

if(i==21&&a[i][j]==3)a[i][j]=0;//底行赋值0 以免越界。

if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;

}

if(a[20][pl]==3&&a[21][pl]==1)death++;

}

void setting(void)

{

int sw=0,i,j;

system("cls");

do{sw=0;printf("\n 游戏界面的大小:1.大2.小>> ");

switch(getche())

{

case ‘1‘:width=34;break;

case ‘2‘:width=24;break;

default:printf("\n 错误,请重新选择...\n");

sw=1;

}

}

while(sw);

do

{

sw=0;

printf("\n 请选择敌机密度:1.大2.中3.小>> ");

switch(getche())

{

case ‘0‘:density=10;

break;

case ‘1‘:density=20;

break;case ‘2‘:density=30;

break;case ‘3‘:density=40;break;

default:printf("\n 错误,请重新选择...\n");

sw=1;

}

}

while(sw);

do

{

sw=0;

printf("\n 敌机的飞行速度:1.快2.中3.慢>> ");

switch(getche())

{

case ‘1‘:speed=2;

break;

case ‘2‘:speed=3;

break;

case ‘3‘:speed=4;

break;

default:printf("\n 错误,请重新选择...\n");

sw=1;

}

}

while(sw);

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

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

scr[i][j]=0;

scr[21][pl=9]=1;

printf("\n 按任意键保存...");

getch();

}

void menu(void)

{

printf("说明:按A D 控制我机左右飞行,W 发射子弹\n 设置:请按Esc\n 开始游戏:任意键\n                               by yan_xu");

if(getch()==27)setting();

}

在今天的课堂上,老师首次向我们展示了Cfree所变成的小游戏。我们首先将Cfree软件安装好,其次老师将代码传给我们,我们打开后,进入游戏界面。

分析:首先向我们呈现的是一个简单的画面,是一个简单的说明。按AD控制飞机左右,w发射子弹,任意键开始。给我的第一印象是没有腾讯飞机那样的游戏感觉,更像一个文字游戏。当开始游戏时屏幕不断刷新,给人一种游戏的感觉。不过Cfree所制作的小游戏还是给了我很多惊喜。

做一个飞机游戏。用AD控制左右走动,用W控制发射子弹。敌机不断从对面飞来,子弹击中敌机得分,我机被敌机碰撞我机死亡。

定义一个二维数组作为游戏界面。读取键盘按键操作数组内的数据,输出整个数组,刷新,重复。

时间: 2024-10-29 00:47:50

150809234 赵帅 (飞机游戏)的相关文章

150809234 赵帅 (宿舍管理系统)1

首先完善显示欢迎页的界面,这个就是printf("-.")函数显示字符串,但是要注意用空格和"\n"位置定位,使得显示界面美观. void pagedis() { printf(" \n\n\n                   **********************************\n"); printf("                   *                                *\n&

150809234 赵帅 (宿舍管理系统)2

6. 完整的学生成绩管理系统 #include"stdio.h" #include"stdlib.h" #include"string.h" #include"conio.h" #define PAGE 3 #define MAX 1000 #define N 5 int k=0; /*结构体类型*/ typedef struct {   int num;/*学号*/ char name[20];/*姓名*/ char sex

150809234 赵帅 (指针)

1.指针与数组 指针通常指向一片储存空间,而开辟的储存空间地址为指针的量:数组开辟的是一段连续的内存空间,而指针则是单一特定内存地址,因此两者不可互相转换. 数组变量可以赋值给指针(即将数组第一个变量的地址赋予指针). 2.动态内存分配与静态内存分配 (1)动态内存分配 根据程序的需要开辟空间,不需要预先分配,智能自动,可以根据需要增大或减小. (2)静态内存分配 即预先分配好储存空间,缺点显而易见,需要预先知道数据的大小,修改数据的时候需要更改已经分配好的储存空间,浪费内存等. (3)函数 v

13.1-全栈Java笔记:打飞机游戏实战项目|AWT技术|MyGameFrame

简介和项目目标 通过游戏项目学习整个Java基础知识体系,我们做了精心的设计,让每一章知识都能获得应用. 比如:多线程用来实现动画效果.容器实现对于多发炮弹的存取和处理.常用类等等的应用. 寓教于乐,让大家迅速入门,更希望通过喜闻乐见的小游戏,让大家爱上编程,爱上"程序员". 老鸟建议 很多朋友会疑惑:"游戏项目,又不能拿到企业面试中,为什么要讲?" 这是一种太过于功利的想法.就像,我们说:"今天吃个馒头,又不是长高,为什么要吃呢?" 游戏项目的

C语言应用-飞机游戏

在第一次的C语言程序设计课上我们第一次接触到将近200行程序的大型程序.即使现在已经将这个程序分析的十分清楚,但是每次看到这么多的程序还是令我感到头痛不已. 这个大型的程序是一个基础的飞机类型的游戏.虽然比我们现在手机上.电脑上玩的游戏要简陋不止几百倍而且由于它是利用C语言的循环语句进行输出所以在玩的时候总是在不停地闪烁使人有些头晕.但我还是觉得异常有趣. printf这个函数在这个飞机游戏中用来显示和输出整个游戏.发现printf这个函数不仅仅是用来简单的输出,还可以配合getch()这个函数

关于《飞机游戏软件:C语言应用初步感受》的感想

C语言课程设计的第一节课,老师提供了一个C语言的飞机游戏让我们感受. 首先安装c-free,然后是将代码贴进去运行, 界面虽然有点简单,但是真正的游戏,C语言还能做这么有意思的东西,真是没有想到. 这是第一次认为C语言是个神奇的语言,竟然可以编写出游戏来. 用到的语句也很简单. 比如:#include<stdio.h>等,都是以前学过的知识,真的是想要好好学习一下C语言,争取自己编写个小程序出来.

飞机游戏程序

C语言的基本语句功能的体会和"飞机游戏"的结构分析 通过今天对于C语言结构的学习,我对于C语言的基本功能语句所能时限的功能感到不可思议,短短的几段简单的程序就能完成看似如此复杂的事情. 就如今天学习的"飞机游戏",我们可以把如此复杂的程序分成main,print,movebul, movepla,setting和menu6大块. 1 首先是main 函数 /全局变量:界面.我机初始位.界面宽度.敌机速度.敌机密度.得分.死亡 main(void) { menu();

彭界博-飞机游戏

根据老师提供的飞机游戏,经过自己的理解,稍有改动.其源代码如下: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #define N 35 void print(int [][N]);//输出函数 void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting(v

飞机游戏程序修改及感想

根据老师提供的飞机游戏程序,我仔细观察了游戏的运行方式及一些程序的细节,并做出了一些修改,程序如下: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #define N 35 void print(int [][N]);//输出函数 void movebul(int [][N]);//子弹移动函数     (通过两个函数来控制子弹和敌机的移动) void