第一节课作业电信15-2lhz150206227

俄罗斯方块c语言代码体会

以前都是编写简单的数学计算代码,感觉很枯燥,麻烦。这节课,老师给我们演示了几个c语言游戏代码,感觉很有趣,很期待自己又一天也可以编出这样的代码。

下面是我对俄罗斯方块中基本语句的分析:

提供有关信息:#include <    >

定义变量:int(整型);

float,double(小数);

char(字符);

函数原型声明:struct  名称

{分别定义变量;};

主函数:main(void)(void表示空,执行次函数后不出函数值)

输出函数:printf(“要显示的信息”);

输入函数:scanf(“输入内容”);

循环体:for(初始值;范围;初始值的变化)

{循环内容;}

多分支选择:switch(范围)

{case 常量表达式: 语句;

default:语句}

条件语句:if(条件)

{表达式}else if{表达式}else{表达式}

结束:return 0;

#include <stdio.h>

#include <windows.h>

#include <conio.h>

#include <time.h>

//游戏窗口

#define FrameX 4   //游戏窗口左上角的X轴坐标

#define FrameY 4   //游戏窗口左上角的Y轴坐标

#define Frame_height  20 //游戏窗口的高度

#define Frame_width   18 //游戏窗口的宽度

//定义全局变量

int i,j,temp,temp1,temp2; //temp,temp1,temp2用于记住和转换方块变量的值

int a[80][80]={0};   //标记游戏屏幕的图案:2,1,0分别表示该位置为游戏边框、方块、无图案;初始化为无图案

int b[4];     //标记4个"口"方块:1表示有方块,0表示无方块

//声明俄罗斯方块的结构体

struct Tetris

{

int x;     //中心方块的x轴坐标

int y;     //中心方块的y轴坐标

int flag;    //标记方块类型的序号

int next;    //下一个俄罗斯方块类型的序号

int speed;    //俄罗斯方块移动的速度

int count;    //产生俄罗斯方块的个数

int score;    //游戏的分数

int level;    //游戏的等级

};

//函数原型声明

//光标移到指定位置

void gotoxy(HANDLE hOut, int x, int y);

//制作游戏窗口

void make_frame();

//随机产生方块类型的序号

void get_flag(struct Tetris *);

//制作俄罗斯方块

void make_tetris(struct Tetris *);

//打印俄罗斯方块

void print_tetris(HANDLE hOut,struct Tetris *);

//清除俄罗斯方块的痕迹

void clear_tetris(HANDLE hOut,struct Tetris *);

//判断是否能移动,返回值为1,能移动,否则,不动

int if_moveable(struct Tetris *);

//判断是否满行,并删除满行的俄罗斯方块

void del_full(HANDLE hOut,struct Tetris *);

//开始游戏

void start_game();

int  main()

{

//制作游戏窗口

make_frame();

//开始游戏

start_game();

}

/******光标移到指定位置**************************************************************/

void gotoxy(HANDLE hOut, int x, int y)

{

COORD pos;

pos.X = x;  //横坐标

pos.Y = y;  //纵坐标

SetConsoleCursorPosition(hOut, pos);

}

/******制作游戏窗口******************************************************************/

void make_frame()

{

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);  //定义显示器句柄变量

gotoxy(hOut,FrameX+Frame_width-5,FrameY-2);   //打印游戏名称

printf("俄罗斯方块");

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+7);  //打印选择菜单

printf("**********下一个方块:");

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+13);

printf("**********");

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+17);

printf("↑键:变体");

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+19);

printf("空格:暂停游戏");

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+15);

printf("Esc :退出游戏");

gotoxy(hOut,FrameX,FrameY);       //打印框角并记住该处已有图案

printf("ㄘ");

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY);

printf("ㄛ");

gotoxy(hOut,FrameX,FrameY+Frame_height);

printf("ㄞ");

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY+Frame_height);

printf("ㄡ");

a[FrameX][FrameY+Frame_height]=2;

a[FrameX+2*Frame_width-2][FrameY+Frame_height]=2;

for(i=2;i<2*Frame_width-2;i+=2)

{

gotoxy(hOut,FrameX+i,FrameY);

printf("ㄔ");         //打印上横框

}

for(i=2;i<2*Frame_width-2;i+=2)

{

gotoxy(hOut,FrameX+i,FrameY+Frame_height);

printf("ㄔ");         //打印下横框

a[FrameX+i][FrameY+Frame_height]=2;    //记住下横框有图案

}

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

{

gotoxy(hOut,FrameX,FrameY+i);

printf("ㄕ");         //打印左竖框

a[FrameX][FrameY+i]=2;       //记住左竖框有图案

}

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

{

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY+i);

printf("ㄕ");         //打印右竖框

a[FrameX+2*Frame_width-2][FrameY+i]=2;   //记住右竖框有图案

}

}

/******制作俄罗斯方块********************************************************************/

void make_tetris(struct Tetris *tetris)

{

a[tetris->x][tetris->y]=b[0];    //中心方块位置的图形状态:1-有,0-无

switch(tetris->flag)      //共6大类,19种类型

{

case 1:         //田字方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 2:         //直线方块:----

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y]=b[2];

a[tetris->x+4][tetris->y]=b[3];

break;

}

case 3:         //直线方块: |

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y-2]=b[2];

a[tetris->x][tetris->y+1]=b[3];

break;

}

case 4:         //T字方块

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y]=b[2];

a[tetris->x][tetris->y+1]=b[3];

break;

}

case 5:         //T字顺时针转90度方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y]=b[3];

break;

}

case 6:         //T字顺时针转180度方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 7:         //T字顺时针转270度方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 8:         //Z字方块

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x+2][tetris->y+1]=b[3];

break;

}

case 9:         //Z字顺时针转90度方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x-2][tetris->y+1]=b[3];

break;

}

case 10:        //Z字顺时针转180度方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 11:        //Z字顺时针转270度方块

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 12:        //7字方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y-1]=b[3];

break;

}

case 13:        //7字顺时针转90度方块

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x-2][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 14:        //7字顺时针转180度方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y+1]=b[3];

break;

}

case 15:        //7字顺时针转270度方块

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 16:        //倒7字方块

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y-1]=b[3];

break;

}

case 17:        //倒7字顺指针转90度方块

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x-2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case 18:        //倒7字顺时针转180度方块

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y+1]=b[3];

break;

}

case 19:        //倒7字顺时针转270度方块

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

}

}

//******判断是否可动*************************************************************************/

int if_moveable(struct Tetris *tetris)

{

if(a[tetris->x][tetris->y]!=0)//当中心方块位置上有图案时,返回值为0,即不可移动

{

return 0;

}

else

{

if( //当为田字方块且除中心方块位置外,其他"口"字方块位置上无图案时,返回值为1,即可移动

( tetris->flag==1  && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x+2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]==0 ) ) ||

//或为直线方块且除中心方块位置外,其他"口"字方块位置上无图案时,返回值为1,即可移动

( tetris->flag==2  && ( a[tetris->x-2][tetris->y]==0   &&

a[tetris->x+2][tetris->y]==0 && a[tetris->x+4][tetris->y]==0 ) )   ||

( tetris->flag==3  && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x][tetris->y-2]==0 && a[tetris->x][tetris->y+1]==0 ) )   ||

( tetris->flag==4  && ( a[tetris->x-2][tetris->y]==0   &&

a[tetris->x+2][tetris->y]==0 && a[tetris->x][tetris->y+1]==0 ) )   ||

( tetris->flag==5  && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x][tetris->y+1]==0 && a[tetris->x-2][tetris->y]==0 ) )   ||

( tetris->flag==6  && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x-2][tetris->y]==0 && a[tetris->x+2][tetris->y]==0 ) )   ||

( tetris->flag==7  && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x][tetris->y+1]==0 && a[tetris->x+2][tetris->y]==0 ) )   ||

( tetris->flag==8  && ( a[tetris->x][tetris->y+1]==0   &&

a[tetris->x-2][tetris->y]==0 && a[tetris->x+2][tetris->y+1]==0 ) ) ||

( tetris->flag==9  && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x-2][tetris->y]==0 && a[tetris->x-2][tetris->y+1]==0 ) ) ||

( tetris->flag==10 && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x-2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]==0 ) ) ||

( tetris->flag==11 && ( a[tetris->x][tetris->y+1]==0   &&

a[tetris->x+2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]==0 ) ) ||

( tetris->flag==12 && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x][tetris->y+1]==0 && a[tetris->x-2][tetris->y-1]==0 ) ) ||

( tetris->flag==13 && ( a[tetris->x-2][tetris->y]==0   &&

a[tetris->x-2][tetris->y+1]==0 && a[tetris->x+2][tetris->y]==0 ) ) ||

( tetris->flag==14 && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x][tetris->y+1]==0 && a[tetris->x+2][tetris->y+1]==0 ) ) ||

( tetris->flag==15 && ( a[tetris->x-2][tetris->y]==0   &&

a[tetris->x+2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]==0 ) ) ||

( tetris->flag==16 && ( a[tetris->x][tetris->y+1]==0   &&

a[tetris->x][tetris->y-1]==0 && a[tetris->x+2][tetris->y-1]==0 ) ) ||

( tetris->flag==17 && ( a[tetris->x-2][tetris->y]==0   &&

a[tetris->x-2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]==0 ) ) ||

( tetris->flag==18 && ( a[tetris->x][tetris->y-1]==0   &&

a[tetris->x][tetris->y+1]==0 && a[tetris->x-2][tetris->y+1]==0 ) ) ||

( tetris->flag==19 && ( a[tetris->x-2][tetris->y]==0   &&

a[tetris->x+2][tetris->y+1]==0 && a[tetris->x+2][tetris->y]==0 ) ) )

{

return 1;

}

}

return 0;

}

/******随机产生俄罗斯方块类型的序号**********************************************************/

void get_flag(struct Tetris *tetris)

{

tetris->count++;     //记住产生方块的个数

srand((unsigned)time(NULL));  //初始化随机数

if(tetris->count==1)

{

tetris->flag = rand()%19+1;  //记住第一个方块的序号

}

tetris->next = rand()%19+1;   //记住下一个方块的序号

}

/******打印俄罗斯方块**********************************************************************/

void print_tetris(HANDLE hOut,struct Tetris *tetris)

{

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

{

b[i]=1;         //数组b[4]的每个元素的值都为1

}

make_tetris(tetris);      //制作俄罗斯方块

for( i=tetris->x-2; i<=tetris->x+4; i+=2 )

{

for(j=tetris->y-2;j<=tetris->y+1;j++)

{

if( a[i][j]==1 && j>FrameY )

{

gotoxy(hOut,i,j);

printf("□");     //打印边框内的方块

}

}

}

//打印菜单信息

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+1);

printf("level : %d",tetris->level);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+3);

printf("score : %d",tetris->score);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+5);

printf("speed : %dms",tetris->speed);

}

/******清除俄罗斯方块的痕迹****************************************************************/

void clear_tetris(HANDLE hOut,struct Tetris *tetris)

{

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

{

b[i]=0;         //数组b[4]的每个元素的值都为0

}

make_tetris(tetris);      //制作俄罗斯方块

for( i=tetris->x-2; i<=tetris->x+4; i+=2 )

{

for(j=tetris->y-2;j<=tetris->y+1;j++)

{

if( a[i][j]==0 && j>FrameY )

{

gotoxy(hOut,i,j);

printf("  ");     //清除方块

}

}

}

}

/******判断是否满行并删除满行的俄罗斯方块****************************************************/

void del_full(HANDLE hOut,struct Tetris *tetris)

{       //当某行有Frame_width-2个方块时,则满行

int k,del_count=0;  //分别用于记录某行方块的个数和删除方块的行数的变量

for(j=FrameY+Frame_height-1;j>=FrameY+1;j--)

{

k=0;

for(i=FrameX+2;i<FrameX+2*Frame_width-2;i+=2)

{

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

{

k++;  //记录此行方块的个数

if(k==Frame_width-2)

{

for(k=FrameX+2;k<FrameX+2*Frame_width-2;k+=2)

{  //删除满行的方块

a[k][j]=0;

gotoxy(hOut,k,j);

printf("  ");

Sleep(1);

}

for(k=j-1;k>FrameY;k--)

{  //如果删除行以上的位置有方块,则先清除,再将方块下移一个位置

for(i=FrameX+2;i<FrameX+2*Frame_width-2;i+=2)

{

if(a[i][k]==1)

{

a[i][k]=0;

gotoxy(hOut,i,k);

printf("  ");

a[i][k+1]=1;

gotoxy(hOut,i,k+1);

printf("□");

}

}

}

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

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

}

}

}

}

tetris->score+=100*del_count; //每删除一行,得100分

if( del_count>0 && ( tetris->score%1000==0 || tetris->score/1000>tetris->level-1 ) )

{        //如果得1000分即累计删除10行,速度加快20ms并升一级

tetris->speed-=20;

tetris->level++;

}

}

/******开始游戏******************************************************************************/

void start_game()

{

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);  //定义显示器句柄变量

struct Tetris t,*tetris=&t;       //定义结构体的指针并指向结构体变量

unsigned char ch;         //定义接收键盘输入的变量

tetris->count=0;      //初始化俄罗斯方块数为0个

tetris->speed=300;      //初始移动速度为300ms

tetris->score=0;      //初始游戏的分数为0分

tetris->level=1;      //初始游戏为第1关

while(1)

{//循环产生方块,直至游戏结束

get_flag(tetris);     //得到产生俄罗斯方块类型的序号

temp=tetris->flag;     //记住当前俄罗斯方块序号

//打印下一个俄罗斯方块的图形(右边窗口)

tetris->x=FrameX+2*Frame_width+6;

tetris->y=FrameY+10;

tetris->flag = tetris->next;

print_tetris(hOut,tetris);

tetris->x=FrameX+Frame_width;  //初始中心方块x坐标

tetris->y=FrameY-1;     //初始中心方块y坐标

tetris->flag=temp;     //取出当前的俄罗斯方块序号

while(1)

{//控制方块方向,直至方块不再下移

label:print_tetris(hOut,tetris);//打印俄罗斯方块

Sleep(tetris->speed);   //延缓时间

clear_tetris(hOut,tetris);  //清除痕迹

temp1=tetris->x;    //记住中心方块横坐标的值

temp2=tetris->flag;    //记住当前俄罗斯方块序号

if(kbhit())

{        //判断是否有键盘输入,有则用ch↓接收

ch=getch();

if(ch==75)     //按←键则向左动,中心横坐标减2

{

tetris->x-=2;

}

if(ch==77)     //按→键则向右动,中心横坐标加2

{

tetris->x+=2;

}

if(ch==72)     //按↑键则变体即当前方块顺时针转90度

{

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)     //按空格键,暂停

{

print_tetris(hOut,tetris);

while(1)

{

if(kbhit())   //再按空格键,继续游戏

{

ch=getch();

if(ch==32)

{

goto label;

}

}

}

}

if(if_moveable(tetris)==0) //如果不可动,上面操作无效

{

tetris->x=temp1;

tetris->flag=temp2;

}

else      //如果可动,执行操作

{

goto label;

}

}

tetris->y++;     //如果没有操作指令,方块向下移动

if(if_moveable(tetris)==0)  //如果向下移动且不可动,方块放在此处

{

tetris->y--;

print_tetris(hOut,tetris);

del_full(hOut,tetris);

break;

}

}

for(i=tetris->y-2;i<tetris->y+2;i++)

{//游戏结束条件:方块触到框顶位置

if(i==FrameY)

{

j=0;      //如果游戏结束,j=0

}

}

if(j==0)

{

system("cls");

getch();

break;

}

//清除下一个俄罗斯方块的图形(右边窗口)

tetris->flag = tetris->next;

tetris->x=FrameX+2*Frame_width+6;

tetris->y=FrameY+10;

clear_tetris(hOut,tetris);

时间: 2024-09-30 06:37:26

第一节课作业电信15-2lhz150206227的相关文章

第一节课作业

1 C语言是在国内外广泛使用的一种计算机语言.其语言功能丰富.表达能力强.使用灵活方便.既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件.其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,Unix,Linux,Mac,os/2,无一例外,哪一个不是C语言写的?很多新型的语言如,C++,Java,C#,J#,perl...都是衍生自C语言.掌握了C语言,可以说你就掌握了很多门语言. 学习C程序这门课一年了,这是我们学的第一门专业课,在大学里C语言不

C#第一节课作业,HelloWorld

通过第一节课的学习,我们掌握了一些C#的基本知识.无论是C#的名字的由来还是有关Hello World和Console都让我受益匪浅. 回到家后,我首先实验了一下最简单的Hello World▼ 成功了√ 然后,我实验了一下省去System的写法▼ 成功了√ 这之后我又试了一下同文件中的调用▼ 成功了√ 之后是调节字和背景的颜色▼ 成功了√ 之后我尝试了不同文件的调用▼ 成功了√ 然后我试了下分步执行▼ 成功了√ 然后我设置了变量▼ 成功了√ 最后我试验了一下ResetColor的用法▼ 成功了

软件工程概论第一节课作业

软件工程概论第一节作业 1.网站系统开发需要掌握的技术:       编程语言,编程环境,后期维护       2.本次课堂测试的源程序代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.

第二节课作业电信15-2lhz150206227

设计和编写应用系统 一文件操作 写一个字符串到一个文件中,是什么方式呢?显示到屏幕上是默认的输出文件,如果是硬盘中的一个文件,首先要打开一个文件,然后才能往里写,那么就要告诉程序这个文件在什么地方,按照什么样的方式打开(读.写.读和写.添加.覆盖等),然后打开后要给这个打开的文件一个符号(指针变量),表示后续的读和写都是针对这个文件的,而不是到屏幕的,这个指针变量以后就代表了文件自身了. 定义一个代表文件的符号(指针变量)       FILE *英文指针变量名: 打开文件的语句是      

信管师培训之第一节课作业(信息化基础、信息系统服务管理)

第1章 信息化基础知识 信息的概念 存在两个基本的层次,即本体论和认识论两个层次. 本体论信息:就是事物的运动状态和状态变化方式的自我表述.通俗的说"事物原本是什么,它就是什么.". 认识论信息:就是主体对于该事物的运动状态和以及状态变化方式的具体描述,包括对于它的"状态和方式"的形式.含义和价值的描述.(按薛老师的说法:由于我对某事物认识的不断深入,逐渐发现它的本质.) 认识论信息和本体论信息是相通的,他们共同的核心都是"事物的运动状态和状态变化的方式&

第一节课作业 150206119

c语言首先老师提供一个C语言的飞机游戏让大家感受一下,首先安装c-free,然后是将代码进行运行,游戏以A.S.D.W键位来控制游戏中飞机的上下左右,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏. 飞机游戏采用函数组成模块化结构,首先调用了menu()函数产生菜单,游戏中可以通过菜单中的各种指令来控制游戏的快慢,以及简单的C语言语句,printf表示显示,while表示循环,if else表示判断,switch...case表示多条件判断,ge

第一节课作业 150206306

一.通过c语言编写一个射击类的打飞机小游戏,可以通过键盘来进行游戏,操作方法是"a""d""w"或者"←""↑""→"来控制,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏. 二.飞机游戏(或其他软件)的结构的分析.         1)该程序采用函数组成模块化结构         2)main函数中,首先调用menu()函数产生菜单  

linux第一节课作业

描述计算机的组成和功能描述 组成: 计算机主要可以分为五大单元,包括控制器,运算器,主存储器,输入单元和输出单元 其中控制器和运算器通常意义上就是我们的CPU,主存储器就是我们的内存.输入单元包括鼠标,键盘等等,而输出单元则有屏幕,打印机等等. 功能: 控制器负责计算机各个组件的协同工作,运算器负责逻辑运算,和数学运算. 主存储器负责运算数据的存储,所有CPU调用的数据在主存储器中. 输入单元负责将需要处理的数据从外部输入到主存储器中,输出单元则将CPU处理完毕的数据再返回     给用户. 2

Centos安装自定义布局才能自己划分各个区的大小 CentOS远程连接 第一节课

Centos安装自定义布局才能自己划分各个区的大小 CentOS远程连接 第一节课 swap最好不要超过8G 内存小于8G,swap设置内存的两倍 一般只分三个区 f f f boot:200MB SWAP:swap设置内存的两倍 根分区:20G /data:剩余所有空间,如果服务器跑的是数据库 ---------------------------------------------- 如果不跑数据库,这样分 boot:200MB SWAP:swap设置内存的两倍 根分区:剩余所有空间 f 腾