C语言王者农药[2023-03-30]
程序设计题: 王者农药
【问题描述】
腾讯公司的《王者荣耀》风靡全国,在国外都有不少玩家,带给人很多乐趣,让不少人沉迷其中。《王者荣耀》中有上百位英雄,每位英雄都有自己的特点和个性。现在让我们有C语言来编写一个游戏,名字为《王者农药》。
【游戏规则】
《王者农药》有15位英雄,每位英雄拥有数量不同的3种招数,招数使用数量耗尽之后就不能再使用。
三种招数分别为:剪刀、石头、布;
招数相克关系:剪刀克布,布克石头,石头克剪刀;
15位英雄属性表及所有招数数量:
英雄 | 剪刀 | 石头 | 布 |
---|---|---|---|
赵云 | 2 | 2 | 2 |
宫本武藏 | 4 | 1 | 1 |
凯 | 2 | 3 | 1 |
白起 | 5 | 0 | 1 |
韩信 | 1 | 2 | 3 |
诸葛亮 | 2 | 1 | 3 |
刘邦 | 2 | 0 | 4 |
后羿 | 0 | 3 | 3 |
王昭君 | 1 | 1 | 4 |
妲己 | 4 | 1 | 1 |
安琪拉 | 1 | 4 | 1 |
貂蝉 | 3 | 2 | 1 |
露娜 | 1 | 3 | 2 |
不知火舞 | 4 | 2 | 0 |
蔡文姬 | 0 | 5 | 1 |
游戏开始时,由玩家选取三位己方英雄,对阵电脑随机选取的三位英雄,采取以下模式进行游戏:
第一步:对方在三位英雄中随机选取一位,随机出招(招数可使用数量不为0),对应可用招数数量减一;
第二步:我方选取一位英雄,英雄随机出招,对应可用招数数量减一。
第三步:如我方胜,我方胜利次数加1,否则对方胜利次数加1。
第四步:如果总次数<9则跳到第一步,否则本场游戏结束,跳到第五步。
第五步:统计我方和对方胜利场数。
【开发要求】
1、 将每场游戏敌我双方英雄出招情况记录在文件中;
2、 游戏开始前需要登录玩家,如无账号需先注册;
3、 对玩家胜利场数进行排行,可以查看所有玩家的排名;
4、 统计每位英雄的生路并进行排名;
选做要求:
对每次出招的时间进行限制,如果超过时间,则会导致我方随机出招。
【其它要求】
1, 变量、函数命名符合规范;
2. 注释详细;
3. 程序层次清晰,可读性强;
4. 界面美观,交互方便
【结构体定义】
可以采用类似如下结构体定义:
/*英雄信息结构体*/
typedef struct _tHero {
char id[STR_LEN]; /*编号*/
char name[STR_LEN]; /*名字*/
int skill_1; /*剪刀*/
int skill_2; /*石头*/
int skill_3; /*布*/
int residue_1; /*剪刀*/
int residue_2; /*石头*/
int residue_3; /*布*/
int win; /*赢的次数*/
int lose; /*输的次数*/
int select; /*是否被选*/
}Hero, * pHero;
【程序演示】