游戏系列~拳皇(7)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<conio.h>
#define N 100
int n=0;
int Checktoseek(char name[]);//查找
void mainmenu();//菜单
void Register();//登记注册
void Showplayer();//显示当前人物数据
void Showallplayer();//显示所有人物数据
void Chooseopponent();//选择对手
void Chooseplayer(int i);//选择角色
void vs(int i,int j);//PK
void Attack(int i,int j);//攻击
void recovery(int i,int j);//防御
void Energy(int i,int j);//能量
struct Kof
{
char name[20];
int Hp;
int AP;
int Dp;
int Rp;
}player[N];
int main()
{
srand(unsigned(time(NULL)));
mainmenu();
}
void login()
{
}
void mainmenu()
{
while(1)
{
int x;
printf("\n");
printf("\n");
printf(" ***************************************************************\n");
printf(" *** ***\n");
printf(" *** ***\n");
printf(" *** 欢迎进入Kof ***\n");
printf(" *** ***\n");
printf(" *** ***\n");
printf(" ***************************************************************\n");
printf("\n\n\t\t\t\t\t=======选择项=======");
printf("\n\t\t\t\t\t||1----注册 ||\n");
printf("\t\t\t\t\t||2----查看玩家信息||\n");
printf("\t\t\t\t\t||3----查看自己信息||\n");
printf("\t\t\t\t\t||4----选择对手 ||\n");
printf("\t\t\t\t\t||5----结束 ||\n");
printf("\t\t\t\t\t=====================\n\n");
printf("\n\n请选择菜单:");
scanf("%d",&x);
if(x==5) break;
switch(x)
{
case 1:Register();break;
case 2:Showallplayer();break;
case 3:Showplayer();break;
case 4:Chooseopponent();break;
}
printf("\n\n\n\n\n按任意键继续:");
getch();
system("cls");
}
}
void Register()
{
char name[20];
printf("输入名称:");
fflush(stdin);
gets(name);
if(Checktoseek(name)==-1)
{
strcpy(player[n].name,name);
player[n].Hp=rand()%1000;
player[n].AP=rand()%(100+1)+50;
player[n].Dp=rand()%(10-5+2)+5;
player[n].Rp=rand()%(60+2)+60;
n++;
printf("人物创建成功\n");
}
else
{
Register();
}
}
void Showplayer()
{
char name[20];
printf("角色名:");
fflush(stdin);
gets(name);
int i=Checktoseek(name);
if(i!=-1)
{
printf("人物名称:%s\n",player[i].name);
printf("Hp:%d\n",player[i].Hp);
printf("Ap:%d\n",player[i].AP);
printf("Dp:%d\n",player[i].Dp);
printf("Rp:%d\n",player[i].Rp);
}
else
{
printf("请重新输入角色名");
Showplayer();
}
}
void Showallplayer()
{
printf("%-10s%-10s%-10s%-10s%-10s\n","Name","Hp","Ap","Dp","Rp");
for(int i=0;i<n;i++)
{
printf("%-10s%-10d%-10d%-10d%-10d\n",player[i].name,player[i].Hp,player[i].AP,player[i].Dp,player[i].Rp);
}
}
void Chooseopponent()
{
char name[20];
int i;
Showallplayer();
printf("你选择PK谁:");
fflush(stdin);
gets(name);
i=Checktoseek(name);
if(i!=-1)
{
Chooseplayer(i);
}
else
{
printf("你选择PK的人物找不到?\n");
Chooseopponent();
}
}
int Checktoseek(char name[])
{
for(int i=0;i<n;i++)
{
if(!strcmp(player[i].name,name))
{
return i;
}
}
return -1;
}
void Chooseplayer(int i)
{
char name[20];
int j;
printf("请你选择一个角色:");
fflush(stdin);
gets(name);
j=Checktoseek(name);
if(j!=-1 && j!=i)
{
vs(i,j);
}
else
{
Chooseplayer(i);
}
printf("=================================\n");
}
void vs(int i,int j)
{
int count=1;
while(player[i].Hp>0 && player[j].Hp>0)
{
printf("==================第%d局==================\n\n",count);
if(count%2==0)
{
Attack(i,j);
recovery(i,j);
Energy(i,j);
}
else
{
Attack(j,i);
recovery(i,j);
Energy(i,j);
}
count++;
_sleep(3344);
}
if(player[i].Hp>0)
{
printf("%s 获得了胜利 \n",player[i].name);
}
else
{
printf("%s 获得了胜利 \n",player[j].name);
}
printf("******************************\n");
}
void Attack(int i,int j)
{
int x;
int s;
x=rand()%5;
switch(x)
{
case 0:
printf("\n%s发出波动伤害%s\n",player[i].name,player[j].name);
s=rand()%100;
player[j].Hp-=s;
printf("%s受到%d点伤害\n\n",player[j].name,s);
break;
case 1:
printf("\n%s使用连招攻击%s\n",player[i].name,player[j].name);
s=rand()%100*2;
player[j].Hp-=s;
printf("%s受到%d点伤害\n\n",player[j].name,s);
break;
case 2:
printf("\n%s释放超杀技\n",player[i].name);
s=(rand()%100)*4;
player[j].Hp-=s;
printf("%s受到%d点伤害\n\n",player[j].name,s);
break;
}
}
void recovery(int i,int j)
{
int s;
int x;
s=rand()%3;
switch(s)
{
case 0:
printf("\n%s防御%s的攻击\n",player[i].name,player[j].name);
x=rand()%(10-5+2)+5;
player[i].Dp==x;
printf("%s抵挡%d点伤害\n\n",player[i].name,x);
break;
case 1:
printf("\n%s防御%s的攻击\n",player[j].name,player[i].name);
x=rand()%(10-5+2)+5;
player[j].Dp==x;
printf("%s抵挡%d点伤害\n\n",player[j].name,x);
break;
}
}
void Energy(int i,int j)
{
int x;
int s;
x=rand()%6;
switch(x)
{
case 0:
printf("\n%s大怒,使用超必杀技\n",player[i].name);
s=(rand()%100)*6;
player[j].Hp-=s;
printf("%s受到%d点伤害\n\n",player[j].name,s);
break;
case 1:
printf("\n%s大怒,使用超必杀技\n",player[j].name);
s=(rand()%100)*6;
player[i].Hp-=s;
printf("%s受到%d点伤害\n\n",player[i].name,s);
break;
}
}
转载于:https://www.cnblogs.com/yszhyhm/p/8969592.html
游戏系列~拳皇(7)相关推荐
- WPF编游戏系列 之四 用户控件
在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2.2中使用的C#代码过多,其实我在写这些代码时也有同感, ...
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):目录
本系列教程的示例代码下载(感谢 银光中国 提供资源分流): 第一部分源码:WPFGameTutorial_PartI(1-20节) 第二部分源码:WPFGameTutorial_PartII(21-2 ...
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二)让物体动起来②
第二种方法,CompositionTarget动画,官方描述为:CompositionTarget对象可以根据每个帧回调来创建自定义动画.其实直接点,CompositionTarget创建的动画是基于 ...
- 【C++】2048游戏系列---优化模块第一稿【加载图片】
[C++]2048游戏系列---优化模块第一稿[加载图片] (更新中--) 参考博客: https://blog.csdn.net/qq_39151563/article/details/104283 ...
- 什么样的恐怖才是真恐怖?由最近所看的一部电影以及最喜欢的游戏系列想到的。
春节长假即将结束,想想已经有好久没更新自己的blog了,正在等Arsenal和Crystal Palace的比赛转播,也睡不着,就写写最近的一些感想吧. 这些天除了走亲访友.合家团聚.请客吃饭之外,也 ...
- HTML5开发 页游/手游动画及游戏系列教程(Game Tutorial):(一)物体动起来吧
前言 所谓高手,也就是熟悉别人制定的游戏规则.并且能在规则内跳舞的人.(随笔,转自王哲的博客) 09年的时候,为了跳槽和兴趣,转型游戏行业,因此去网上找资料学习各种游戏相关的资料.也是缘分吧,看到了深 ...
- fcn从头开始_从头开始:简单游戏系列1-抓鱼
fcn从头开始 Recently, I've decided to take a break from coding on IDE's and go back to the basics of exp ...
- C++桌面图标游戏系列之二【俄罗斯方块】
最近写了一个C++桌面图标游戏系列之一[贪吃蛇]. https://blog.csdn.net/Yang9325/article/details/111031297 没想到还挺受欢迎,那么系列之二[俄 ...
- Laya官方不会告诉你的坑(微信小游戏系列)
Laya官方不会告诉你的坑(微信小游戏系列) 使用laya2系列调试微信小游戏的时候, 发现了以下问题, 看了一圈官网也没提及, 所以记录一下供大家参考和讨论. 1.报错 ReferenceError ...
最新文章
- 红外线可程序化?遥控器Motedem控制自家居住环境
- Linux命令中的Z原来是这个意思
- Chapter 2 Open Book——16
- HBase Shell基本操作
- [Android]如何减小APK的大小
- linux之tr命令使用和总结
- python aiompq集群_国内首款基于AIO(异步IO)支持集群的高性能开源WebSocket服务器 宝贝鱼 CshBBrain V4.0 发布...
- 电脑取消撤销快捷键是什么_必须掌握的十个电脑使用技巧
- SVN安装和使用详细教程
- android 远程控制工具,安卓版远程协助软件
- Symbol数据类型
- .bat 是什么? (批处理脚本)
- Ubuntu系统没有声音解决方案
- python面向对象编程
- window系统安装msysgit(Git客户端软件)教程
- 汇编工具DOSBOX安装使用
- 洛谷P1796 汤姆斯的天堂梦【DP-数字三角形模型】【橙】
- 电商平台关键词监控价格API接口,店铺监控API接口调用展示
- Xcode 项目运行不成功,有没有朋友可以指导一下
- OpenSea钓鱼攻击事件得到的启发警惕
热门文章
- java网络 可视化_Java可视化AWT
- ERROR ITMS-90165: “Invalid Provisioning Profile Signature. The provisioning profile included in the
- Presto RBO之 Sort算子优化
- 世界杯的狂热,让区块链蹭个热点
- 从商用到家庭 服务机器人产业将爆发?
- 江西计算机二级考试模拟题,江西计算机二级试卷1
- MQTT心跳 Keep Alive
- 如何利用h5将视频设置为背景
- Epson机器人细节点总结
- hdu 1279 验证角谷猜想(简单的模拟)