skyrim_chess_game_demo

来源:互联网 发布:淘宝现在什么好做 编辑:程序博客网 时间:2024/04/28 13:03

这只是一个demo,功能极度不全,求勿喷。

C语言写的小游戏

首先先定义一个每个玩家属性的结构体

struct player{    char name[20];    int sex;    int age;    int point;    int stop_flag;};
再是定义各种事件的函数
void event(int *point,int *stop_flag)/*事件函数*/{    if(*point==4){        printf("安杜因攻击雪漫城,停滞一天\n");        *stop_flag=1;    }    if(*point==5){        printf("加入战友团,基佬团任务出现bug,停滞一天\n");        *stop_flag=1;    }    if(*point==6){        printf("到达雪漫城马厩,移动至风舵城外\n");        *point=9;    }    if(*point==10){        printf("遭遇风暴斗篷士兵(抓根宝:为了帝国!风暴斗篷士兵:天际属于诺德人!),发生缠斗,停滞一天\n");        *stop_flag=1;    }    if(*point==11){        printf("到达风舵城,前进3格\n");        *point=14;    }    if(*point==13){        printf("随意杀羊,被风舵城士兵逮捕,拘留一天\n");        *stop_flag=1;    }    if(*point==17){        printf("到达风舵城马厩,移动至寒冬堡外\n");        *point=24;    }    if(*point==19){        printf("进入寒冬领,天太冷迷路,滞留一天\n");        *stop_flag=1;    }    if(*point==25){        printf("到达寒冬堡,前进5格\n");        *point=30;    }    if(*point==29){        printf("加入法师学院,沉迷矮人地下城搜索,停滞一天\n");        *stop_flag=1;    }    if(*point==34){        printf("发现《禁忌的传说》,开始寻找高尔多的碎片,移动到格尔蒙德大厅\n");        *point=60;        sleep(3);        printf("\n");        printf("到达格尔蒙德大厅,停滞三天\n");        *stop_flag=3;    }    if(*point==39){        printf("遭遇吸血鬼攻城,停滞一天\n");        *stop_flag=1;    }    if(*point==40){        printf("招募到神烦大小姐,被烦死,停滞一天\n");        *stop_flag=1;    }    if(*point==45){        printf("成为雪漫男爵,招募到莉迪亚,战斗力大增,前进2格\n");        *point=47;    }    if(*point==57){        printf("帝国万岁!天际属于帝国\nnothing happened\n");    }    if(*point==62){        printf("学会龙吼:旋风冲刺,前进5格\n");        *point=67;    }    if(*point==68){        printf("得骨质石化病,停滞两天\n");        *stop_flag=2;    }    if(*point==73){        printf("获得女士之石的祝福,倒退4格\n");        *point=69;    }    if(*point==80){        printf("我不想写事件了,好烦,下回合你就赢了,请一定要坚持到下回合,请尽情地嘲笑你的队友吧,位移到99\ncode:point=99\n");        *point=99;    }    if(*point==83){        printf("天际属于诺德人!停滞一天\n");        *stop_flag=1;    }    if(*point==99){        printf("恭喜你,这里是第99格\n");        sleep(3);        printf("奥杜因把你吃了,再见抓根宝\nno zuo no die why you try\ncode:stop_flag=9999\n");        *stop_flag=9999;    }    if(*point>=100){        printf("恭喜你,抓根宝,你杀死了傲娇因\n");        exit(0);    }}

然后是玩家注册函数

void login(int n)/*加入玩家信息*/{        int i;       for(i=0;i<n;i++){        printf("请输入%d位玩家资料\n",i+1);        printf("姓名:");        scanf("%s",players[i].name);        printf("性别(1---male,2---female):");        scanf("%d",&players[i].sex);        printf("年龄:");        scanf("%d",&players[i].age);        players[i].stop_flag=0;        players[i].point=0;    }}
玩家确认界面的函数

void check(int n)/*打印玩家信息*/{        int i;    for(i=0;i<n;i++){        printf("第%d位玩家资料:\n姓名:%s\n性别(1---男性,2---女性):%d\n年龄:%d\n"        ,i+1,players[i].name,players[i].sex,players[i].age);    }}

游戏进程函数

void game(int n)/*游戏进程*/{        int c;    int j;    int di;        srand((unsigned)time(NULL));    while(1){        for(j=0;j<n;j++){            if(players[j].stop_flag==0){                printf("%s现在在第%d格,请输入1摇骰子\n",players[j].name,players[j].point);        scanf("%d",&c);                if(c==1){                    di=(int)(rand()%6)+1;                    printf("%s的点数为:%d\n",players[j].name,di);                    printf("如果想直接退出游戏请按Ctrl+c\n");                    players[j].point+=di;                    event(&players[j].point,&players[j].stop_flag);                    printf("%s现在在第%d格\n\n",players[j].name,players[j].point);                }                else                    printf("请输入1摇骰子!\n");                }            else{                players[j].stop_flag=players[j].stop_flag-1;            }        }    }}

主函数

int main()/*main*/{        int amount;    printf("------------欢迎来到天际省------------\n");    printf("版本号:for Linux,demo\n作者:Emrys\n");    printf("请输入玩家数量:");    scanf("%d",&amount);    login(amount);    check(amount);    game(amount);    return 0;}

然后,我为了省麻烦,把主要的几个头文件和结构体还有event函数的声明都放在了gamelib.h里面了

gamelib.h文件

#include <stdio.h>#include <unistd.h>#include <stdlib.h>struct player{    char name[20];    int sex;    int age;    int point;    int stop_flag;};void event(int *point,int *stop_flag)/*事件函数*/{    if(*point==4){        printf("安杜因攻击雪漫城,停滞一天\n");        *stop_flag=1;    }    if(*point==5){        printf("加入战友团,基佬团任务出现bug,停滞一天\n");        *stop_flag=1;    }    if(*point==6){        printf("到达雪漫城马厩,移动至风舵城外\n");        *point=9;    }    if(*point==10){        printf("遭遇风暴斗篷士兵(抓根宝:为了帝国!风暴斗篷士兵:天际属于诺德人!),发生缠斗,停滞一天\n");        *stop_flag=1;    }    if(*point==11){        printf("到达风舵城,前进3格\n");        *point=14;    }    if(*point==13){        printf("随意杀羊,被风舵城士兵逮捕,拘留一天\n");        *stop_flag=1;    }    if(*point==17){        printf("到达风舵城马厩,移动至寒冬堡外\n");        *point=24;    }    if(*point==19){        printf("进入寒冬领,天太冷迷路,滞留一天\n");        *stop_flag=1;    }    if(*point==25){        printf("到达寒冬堡,前进5格\n");        *point=30;    }    if(*point==29){        printf("加入法师学院,沉迷矮人地下城搜索,停滞一天\n");        *stop_flag=1;    }    if(*point==34){        printf("发现《禁忌的传说》,开始寻找高尔多的碎片,移动到格尔蒙德大厅\n");        *point=60;        sleep(3);        printf("\n");        printf("到达格尔蒙德大厅,停滞三天\n");        *stop_flag=3;    }    if(*point==39){        printf("遭遇吸血鬼攻城,停滞一天\n");        *stop_flag=1;    }    if(*point==40){        printf("招募到神烦大小姐,被烦死,停滞一天\n");        *stop_flag=1;    }    if(*point==45){        printf("成为雪漫男爵,招募到莉迪亚,战斗力大增,前进2格\n");        *point=47;    }    if(*point==57){        printf("帝国万岁!天际属于帝国\nnothing happened\n");    }    if(*point==62){        printf("学会龙吼:旋风冲刺,前进5格\n");        *point=67;    }    if(*point==68){        printf("得骨质石化病,停滞两天\n");        *stop_flag=2;    }    if(*point==73){        printf("获得女士之石的祝福,倒退4格\n");        *point=69;    }    if(*point==80){        printf("我不想写事件了,好烦,下回合你就赢了,请一定要坚持到下回合,请尽情地嘲笑你的队友吧,位移到99\ncode:point=99\n");        *point=99;    }    if(*point==83){        printf("天际属于诺德人!停滞一天\n");        *stop_flag=1;    }    if(*point==99){        printf("恭喜你,这里是第99格\n");        sleep(3);        printf("奥杜因把你吃了,再见抓根宝\nno zuo no die why you try\ncode:stop_flag=9999\n");        *stop_flag=9999;    }    if(*point>=100){        printf("恭喜你,抓根宝,你杀死了傲娇因\n");        exit(0);    }}

main.c文件

#include "gamelib.h"struct player players[5];void login(int n)/*加入玩家信息*/{        int i;       for(i=0;i<n;i++){        printf("请输入%d位玩家资料\n",i+1);        printf("姓名:");        scanf("%s",players[i].name);        printf("性别(1---male,2---female):");        scanf("%d",&players[i].sex);        printf("年龄:");        scanf("%d",&players[i].age);        players[i].stop_flag=0;        players[i].point=0;    }}void check(int n)/*打印玩家信息*/{        int i;    for(i=0;i<n;i++){        printf("第%d位玩家资料:\n姓名:%s\n性别(1---男性,2---女性):%d\n年龄:%d\n"        ,i+1,players[i].name,players[i].sex,players[i].age);    }}void game(int n)/*游戏进程*/{        int c;    int j;    int di;        srand((unsigned)time(NULL));    while(1){        for(j=0;j<n;j++){            if(players[j].stop_flag==0){                printf("%s现在在第%d格,请输入1摇骰子\n",players[j].name,players[j].point);        scanf("%d",&c);                if(c==1){                    di=(int)(rand()%6)+1;                    printf("%s的点数为:%d\n",players[j].name,di);                    printf("如果想直接退出游戏请按Ctrl+c\n");                    players[j].point+=di;                    event(&players[j].point,&players[j].stop_flag);                    printf("%s现在在第%d格\n\n",players[j].name,players[j].point);                }                else                    printf("请输入1摇骰子!\n");                }            else{                players[j].stop_flag=players[j].stop_flag-1;            }        }    }}int main()/*main*/{        int amount;    printf("------------欢迎来到天际省------------\n");    printf("版本号:for Linux,demo\n作者:Emrys\n");    printf("请输入玩家数量:");    scanf("%d",&amount);    login(amount);    check(amount);    game(amount);    return 0;}


码云项目查看地址:http://git.oschina.net/EmrysChe/game_demo

CSDN项目查看地址:https://code.csdn.net/EmrysChe/skyrim_chess_game_demo/tree/master

因为实在不习惯英文,所以没上传GitHub


0 0
原创粉丝点击