飞机大战控制台小游戏代码(包括个人记录和玩家排名)(纯C,多文件)(大一课程设计)

这篇博客介绍了作者大一C语言课程设计的成果——一个飞机大战的控制台小游戏,包括个人记录和玩家排名功能。游戏采用多文件结构,如main.c、game.c等,代码约500行,适用于Windows10下的CodeBlocks 17.12。记录功能利用链表和文件操作,游戏循环是核心。博主认为记录模块设计合理,欢迎经验丰富的开发者提供反馈。
摘要由CSDN通过智能技术生成

大一的C语言课程设计,用到的方法都很基础。记录部分主要是链表和文件操作,游戏部分主要是循环。用了多文件的方式去写,所有代码加起来估计有五百多行。

运行环境:
Windows10 下的 codeblocks17.12
语言:
C语言

完整代码,拿去可以直接运行
全程傻瓜式操作
换游戏直接更改游戏模块即可

本蒟蒻暂时觉得记录模块写的还可, 有不足之处欢迎大佬们指正~

源文件

main.c

#include "head.h"
#include "struct.h"
stu *bigh;                                             //永远的主链头
int  AL=0;                                                //主链节点数,即玩家总数
int check(char n[]){
   
    int l=strlen(n);
    int i;
    for(i=0;i<l;i++)
        if(!((n[i]<='z'&&n[i]>='a')||(n[i]>='0'&&n[i]<='9')||(n[i]<='Z'&&n[i]>='A')))
            return 1;
    return 0;
}

int main()
{
   
    system("color 75");
    HideCursor();
    int choice=0,bo,no;
    char name[30];
    bigh=(stu*)malloc(sizeof(stu));
    bigh->next=NULL;
    readPastB();
    while(1){
   
        printf("            WELCOME TO PLANE WARS!\n\n\n");
        printf("     1.进入游戏\n");
        printf("     2.退出游戏\n\t请按2退出游戏,直接关闭窗口会无法保存本次记录!!!\n");
        printf("     3.删除个人记录\n");
        printf("     4.帮助\n\n");
        printf("请输入序号进行选择:");
        scanf("%d",&choice);
        switch(choice){
   
            case 1:
                no=1;
                while(no){
   
                    printf("\n昵称(长度小于15的无空格字母或数字):");
                    scanf("%s",name) ;
                    no=check(name);
                     if(no)
                            printf("输入格式有误,请重新输入");
                }
                if(createBig(name)){
   
                    AL++;
                    update(0,-10,createBig(name));
                }
                to_g2(name);
                break;
            case 2:
                if(bigh->next==NULL)
                    remove("PlaneWar.txt");
                else
                    writeBig();
                exit(0);
                break;
            case 3:
                bo=1;
                while(bo){
   
                    no=1;
                    while(no){
   
                         printf("\n请输入昵称:");
                        scanf("%s",name) ;
                        no=check(name);
                        if(no)
                            printf("输入格式有误,请重新输入");
                    }
                     if(findSon(name)!=NULL){
   
                        printf("\n确认删除%s的所有记录?确认请按0,重新输入请按1\n",name);
                        scanf("%d",&bo) ;
                     }
                     else{
   
                        printf("没有%s的相关记录,重新输入请按1,取消删除操作请按2\n",name);
                        scanf("%d",&bo) ;
                        if(bo==2)
                            break;
                     }
                }
                if(!bo){
   
                    AL-- ;
                    deleteBig(name);
                    remove(generFname(name));
                }
                break;
            case 4:
                system("cls");
                printf("游戏说明...\n\n");
                printf("按回车返回");
                getchar();getchar();
                break;
            default:
                printf("输入有误,请重新输入:");
        }
        system("cls");
    }
	return 0;
}

page.c

#include "head.h"
#include "struct.h"
extern stu* bigh;
void to_g2(char *na)           //进入界面2
{
   
    int choice;
    char name[30];
    stu *bigs;
    while(1){
   
        system("cls");
        printf("            WELCOME TO PLANE WARS!\n\n\n");
        printf("     1.开始游戏\n");
        printf("     2.个人战绩\n");
        printf("     3.榜单\n");
        printf("     4.返回\n\n");
        printf
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值