C语言实现飞机大战

Echo ·
更新时间:2024-09-21
· 1891 次阅读

本文实例为大家分享了C语言实现飞机大战的具体代码,供大家参考,具体内容如下

#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<Windows.h> int score = 0; int plane_col, plane_row;//·É»úλÖà int bullet_col,bullet_row;//×Óµ¯µÄλÖà int area_height, area_width;//ÓÎÏ·ÇøÓò  0-n-1 int enemy_col, enemy_row; int enemy_vh, enemy_vv; int a[100][100] = { 0 }; void gotoxy(int x, int y) {//ˢР     HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);     COORD pos;     pos.X = x;     pos.Y = y;     SetConsoleCursorPosition(handle, pos); } void HideCursor() {     CONSOLE_CURSOR_INFO cursor_info = { 1,0 };     SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); } void startup()//³õʼ»¯  {     area_height = 20;     area_width = 30;     plane_col = 14;     plane_row = 10;     bullet_col = 0;     bullet_row = -1;     enemy_col = rand() % area_width;     enemy_row = 0;     enemy_vh = 0;     enemy_vv = 1; } //int[][] planeArray() { //     //    a[plane_col][plane_row] = 1; //    for (int i = plane_col - 2; i < plane_col + 2; i++) //        a[i][plane_row + 1] = 1; //    a[plane_col - 1][plane_row + 2] = 1; a[plane_col + 1][plane_row + 2] = 1; // //    return a; //} void show()//Öð¸ö×Ö·ûɨÃè²¢´òÓ¡  {     gotoxy(0, 0);     int i, j;     //ÏÔʾ     //system("cls");     for (i = 0; i < area_height; i++)//ÐбéÀú     {         for (j = 0; j < area_width; j++)//ÁбéÀú         {             if (i == plane_row && j == plane_col)             {                 printf("*");             }             else if (i == bullet_row && j == bullet_col)                 printf("|");             else if (i == enemy_row && j == enemy_col)                 printf("@");             else printf(" ");         }         printf("\n");     }     printf("score:%d\n",score); } void updateWithInput()//½»»¥£¬¿ØÖÆ·É»úÒƶ¯£¬Éä»÷ {      char input;     //µÈ´ýÓû§µÄÊäÈ룬½»»¥     if (kbhit()) {         input = getch();         switch (input)         {         case 'w':             if(plane_row != 0)             plane_row--; break;         case 'a':             if(plane_col != 0)             plane_col--; break;         case 'd':             if(plane_col != area_width)             plane_col++; break;         case 's':             if(plane_row != area_height)             plane_row++; break;         case ' ':             if (bullet_row < 0)//ÆÁÄ»ÀïûÓÐ×Óµ¯             {                 bullet_row = plane_row - 1;                 bullet_col = plane_col;             }             break;         default:             break;         }     } } int IsCrash() {     //ÅжÏÎÒ·Å·É»úÊÇ·ñ×¹»Ù      if (enemy_col == plane_col && enemy_row == plane_row) {         return 1;     }     return 0; } void updateWithourInput()//×Óµ¯Òƶ¯ÓëµÐÈËÒƶ¯  {     //¸üР    bullet_row--;     static int count = 0;     count ++;     if (count == 40) {         enemy_row += enemy_vv;         enemy_col += enemy_vh;         count = 0;     } } void crack() {//»÷»ÙµÐÈË      if(enemy_row > area_height){         bullet_row = -1;         enemy_row = -1;         enemy_col = rand() % area_height;     }     else if (bullet_col == enemy_col && bullet_row == enemy_row) {         score += 10;         bullet_row = -1;         enemy_row = -1;         enemy_col = rand() % area_height;     } } int IsFinish() {//ÓÎÏ·ÊÇ·ñ½áÊø      if (score == 100) {         system("cls");         printf("congretulations!!!");         score = 0;         _sleep(500);//ÏÈÔÝÍ£ÔÚÏÖʵ·ûºÏÈËÐÔ»¯          system("pause");         return 1;     }     else if (IsCrash() == 1) {         system("cls");         printf("you have lost!!!");         score = 0;         _sleep(500);         system("pause");         return 1;     }               return 0; } int main() {     HideCursor();     startup();     while (1)     {         show();         updateWithInput();         updateWithourInput();         crack();         if(IsFinish()==1){             startup();             continue;         }     }     return 0; }



飞机大战 C语言

需要 登录 后方可回复, 如果你还没有账号请 注册新账号