#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define N 35
void print (int [][n]);//Output function
void Movebul (int [][n]);//bullet Move function
void Movepla (int [][n]);//enemy Movement function
void setting (void);//Set function
void menu (void);//Menu function
int scr[22][n]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//Global Variables: interface, my machine initial position, interface width, enemy speed, enemy plane density, score, death
Main (void)
{
menu ();
int i=0,j=0;
Scr[21][pl]=1;
scr[0][5]=3;
while (1)
{
if (Kbhit ())
Switch (Getch ())//control move around and enter menu
{
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)//control the speed of production of enemy aircraft
{
J=0;srand (Time (NULL));
Scr[0][rand ()%width]=3;
}
if (++i%speed==0)//control enemy movement speed, relative to the speed of the bullet movement
Movepla (SCR);
Movebul (SCR);
Print (SCR);
if (i==30000)
i=0;//lest I cross the border
}
}
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");//output the symbol of my machine
if (a[i][j]==2)
printf ("."); /Bullets
if (a[i][j]==3)
printf ("\3"); Output enemy Symbol
if (a[i][j]==4)
printf ("|");
if (i==0&&j==width-1)
printf ("Score:%d", score);//The top right corner shows the score
if (i==1&&j==width-1)
printf ("Death:%d", death);
if (i==2&&j==width-1)
printf ("Settings: Esc");
if (i==3&&j==width-1)
printf ("Copyright: Wang Yu");
}
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--)//from the last line up is to avoid the enemy aircraft directly rushed to the group.
for (j=0;j<width;j++)
{
if (i==21&&a[i][j]==3)
a[i][j]=0;//the bottom row is assigned a value of 0 to avoid crossing.
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 the size of the game interface: 1. Big 2. >>");
Switch (Getche ())
{
Case ' 1 ':
width=34;
Break
Case ' 2 ':
width=24;
Break
Default
printf ("\ n error, please re-select ... \ n");
Sw=1;
}
}
while (SW);
Do
{
sw=0;
printf ("\ n Please select enemy aircraft density: 1.2. Medium 3. Small >>");
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 error, please re-select ... \ n");
Sw=1;
}
}while (SW);
Do
{
sw=0;
printf ("\ nthe enemy aircraft speed: 1. Fast 2.3. Slow >>");
Switch (Getche ())
{
Case ' 1 ':
speed=2;
Break
Case ' 2 ':
speed=3;
Break
Case ' 3 ':
speed=4;
Break
Default
printf ("\ n error, please re-select ... \ 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 Press any key to save ...");
Getch ();
}
void menu (void)
{
printf ("Description: Press a D to control my flight, W fired bullets \ n set: Please press esc\n to start the game: any key \ n by Yan_xu");
if (Getch () ==27)
Setting ();
}
The above is a C language production of small game aircraft game code
In simple terms, a main function consisting of 5 sub-functions is then controlled by these 5 sub-functions to control the entire game.
Here is a brief summary of the 5 separate functions:
void print (int [][n]);//Output function
This function is the backbone definition of the function that is the central axis of the entire function game
All of the function models are defined by the output function, such as the model of the enemy aircraft, model bullets, and so on.
and a border display.
2.void Movebul (int [][n]);//bullet Move function
This function is to control the movement of the bullets his principle is quite simple is a for statement from the bottom of the i--loop in connection with the output function to replace the model with bullets can be critical of this sentence
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");
He's controlling the bullets moving and adding points when the bullet moves upwards, the original position a[i][j] becomes 0 and a space defined by print, and then the position is a[i+1][j] the axis moves up one to 2 and "." And there is the position of the enemy position with the coordinates of 1 o'clock Score+10
3.void movepla (int [][n]);//enemy Movement function
The same with 2 the only difference is death
4.void setting (void);//Set function
The set function is controlled by the character of the menu function and ESC is pressed to enter
Case "" Control interface size break; Go directly to the next option
Default is Enter printf ("Display error") when input is not related to case ""
5.void menu (void);//Menus function
The most basic meet by printf () Getche and if statement control is easy to understand
First Taste C language