C语言实现飞机大战

本文实例为大家分享了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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言用封装方法实现飞机大战游戏

    目录 一.项目描述和最终的成果展示 二.用函数进行封装 三.新型的发射子弹功能 四.实现移动的敌机功能和更正屏幕闪烁,清除光标功能 五.订正一些BUG和完成一些美化 本文实例为大家分享了C语言用封装方法实现飞机大战游戏的具体代码,供大家参考,具体内容如下 这是上一次的飞机大战游戏的项目.项目: 最简单的飞机大战游戏 上次没有用函数进行的封装.这次在上次的基础上进行封装和一些功能的优化. 一.项目描述和最终的成果展示 项目描述:   在上一次的基础上用函数进行了封装,对于一些功能也进行了一些优化.

  • C语言控制台实现字符飞机大战

    本文实例为大家分享了C语言实现字符飞机大战的具体代码,供大家参考,具体内容如下 先看看效果吧 大一的时候做的,当时没有好的代码习惯,所以代码有点乱,代码直接复制就能用了,功能可以自行拓展. 代码: #include <stdio.h> #include <stdlib.h> #include <conio.h> int main () { int life=6;//生命 int i,j/*循环*/,plane_x,plane_y/*飞机所在坐标*/,a; plane_x

  • C语言实现飞机大战小游戏完整代码

    大一课设做的飞机大战,可以进行登入和注册,这个是利用单链表做的,源代码已经给出,这个是最基本的飞机大战模式,我设置了几个功能,比如排行榜之类的.排行榜是用结构体数组做的,已及冒泡排序,并且在文件里保存信息.比较简单. 这个是注册页面规范: 这个是登入页面: 游戏菜单:  飞机大战页面:  话不多说,直接上代码 以下是源代码  #include"stdio.h" #include"windows.h" //用于获取窗口的句柄与屏幕控制 #include"co

  • C语言代码实现飞机大战

    本文实例为大家分享了C语言实现简单飞机大战的具体代码,供大家参考,具体内容如下 这个游戏的功能很单一,也就是"飞机大战",哈哈哈哈.总共只有300多行代码左右,你也可以想想它会有多简陋,把它复制下来编译一下可以直接执行,需要的同学可以自取~ PS:我运行的环境是 dev c++,前提你要在C99的环境中执行 以下是源代码 #include<stdio.h> #include<stdio.h> #include<windows.h> //将用户从键盘获

  • C语言实现飞机大战程序设计

    本文实例为大家分享了C语言实现飞机大战的具体代码,供大家参考,具体内容如下 作业要求: 1.游戏当中出现多类型敌人2.游戏中能进行存档和读档3.玩家控制的飞机由多字符组成4.游戏过程中没有出现BUG 5.游戏显示制作者信息6.游戏当中带有BGM7.其他个性化设定 成效: 代码: #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<windows.h> #include<mmsy

  • C语言实现简单飞机大战

    本文实例为大家分享了C语言实现飞机大战的具体代码,供大家参考,具体内容如下 定义四个函数实现飞机大战 #include<stdio.h> #include<windows.h> #include<conio.h> //定义全局变量 int high,width; //定义边界 int position_x,position_y; //飞机位置 int bullet_x,bullet_y; //子弹位置 int enemy_x,enemy_y; int score; in

  • C语言实现简单的飞机大战游戏

    目录 一.项目描述和最终的成果展示 二.输出一个飞机模型 三.实现控制飞机移动的功能 四.添加发射激光功能 五.添加靶子和分数统计功能 本文实例为大家分享了C语言实现简单飞机大战游戏的具体代码,供大家参考,具体内容如下 一.项目描述和最终的成果展示 项目描述: 显示出一个飞机,并可以控制移动,发出激光,打靶练习. 效果展示: 二.输出一个飞机模型 先输出一个飞机模型.后面再进一步完成控制飞机的功能. 代码如下: //输出飞机图案 #include<stdio.h> #include<st

  • C语言版飞机大战游戏

    C语言版飞机大战,供大家参考,具体内容如下 不多说直接上代码 #include<iostream> #include<windows.h> #include<conio.h> #include<time.h> #include<string> using namespace std; /*=============== all the structures ===============*/ typedef struct Frame { COOR

  • C语言之飞机大战游戏

    本文实例为大家分享了C语言之飞机大战游戏的具体代码,供大家参考,具体内容如下 技术原型 1.void gotoxy(int x, int y) 函数,该函数可以使光标去到(x,y)的位置进行打印: 2.链表,用于存储状态: 3.windows.h中有非阻塞输入,_kbhit(): 4.随机生成数: 5.视觉暂留: 6.碰撞检测: 7.清屏函数: 8.设置边界: 技术路线 1.设置一个边界: 2.维护一个子弹的列表: 3.维护一个敌机的列表: 4.初始化飞机的位置: 5.每隔一秒钟生成一架敌机,生

  • C语言实现飞机大战

    本文实例为大家分享了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;

  • C语言实现飞机大战小游戏

    本文实例为大家分享了C语言实现飞机大战小游戏的具体代码,供大家参考,具体内容如下 技术原型 1.void gotoxy(int x, int y) 函数,该函数可以使光标去到(x,y)的位置进行打印:2.链表,用于存储状态:3.windows.h中有非阻塞输入,_kbhit():4.随机生成数:5.视觉暂留:6.碰撞检测:7.清屏函数:8.设置边界: 技术路线 1.设置一个边界:2.维护一个子弹的列表:3.维护一个敌机的列表:4.初始化飞机的位置:5.每隔一秒钟生成一架敌机,生成位置x坐标随机,

  • 基于Java语言在窗体上实现飞机大战小游戏的完整步骤

    目录 小组项目 模块需求描述 总体开发思想 功能实现 1.登录与结束界面 2.播放音乐 3.子弹 运行测试 登陆界面 发射子弹 总结 小组项目 飞机大战:用 Java 语言在窗体上实现飞机大战小游戏,运行程序后,出现一个窗体,在窗体上用鼠标控制英雄机的移动,通过子弹打击敌机进行分数的计算,以及英雄机血量的计算等. 主要模块:登陆界面.音乐.子弹.敌机.英雄机.背景图.结束界面.BOSS 机.分数计算.血量计算. 负责模块:登陆界面.音乐.子弹.结束界面. 模块需求描述 登陆界面:运行程序后,弹出

随机推荐