#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)相关推荐

  1. WPF编游戏系列 之四 用户控件

    在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2.2中使用的C#代码过多,其实我在写这些代码时也有同感, ...

  2. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):目录

    本系列教程的示例代码下载(感谢 银光中国 提供资源分流): 第一部分源码:WPFGameTutorial_PartI(1-20节) 第二部分源码:WPFGameTutorial_PartII(21-2 ...

  3. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二)让物体动起来②

    第二种方法,CompositionTarget动画,官方描述为:CompositionTarget对象可以根据每个帧回调来创建自定义动画.其实直接点,CompositionTarget创建的动画是基于 ...

  4. 【C++】2048游戏系列---优化模块第一稿【加载图片】

    [C++]2048游戏系列---优化模块第一稿[加载图片] (更新中--) 参考博客: https://blog.csdn.net/qq_39151563/article/details/104283 ...

  5. 什么样的恐怖才是真恐怖?由最近所看的一部电影以及最喜欢的游戏系列想到的。

    春节长假即将结束,想想已经有好久没更新自己的blog了,正在等Arsenal和Crystal Palace的比赛转播,也睡不着,就写写最近的一些感想吧. 这些天除了走亲访友.合家团聚.请客吃饭之外,也 ...

  6. HTML5开发 页游/手游动画及游戏系列教程(Game Tutorial):(一)物体动起来吧

    前言 所谓高手,也就是熟悉别人制定的游戏规则.并且能在规则内跳舞的人.(随笔,转自王哲的博客) 09年的时候,为了跳槽和兴趣,转型游戏行业,因此去网上找资料学习各种游戏相关的资料.也是缘分吧,看到了深 ...

  7. fcn从头开始_从头开始:简单游戏系列1-抓鱼

    fcn从头开始 Recently, I've decided to take a break from coding on IDE's and go back to the basics of exp ...

  8. C++桌面图标游戏系列之二【俄罗斯方块】

    最近写了一个C++桌面图标游戏系列之一[贪吃蛇]. https://blog.csdn.net/Yang9325/article/details/111031297 没想到还挺受欢迎,那么系列之二[俄 ...

  9. Laya官方不会告诉你的坑(微信小游戏系列)

    Laya官方不会告诉你的坑(微信小游戏系列) 使用laya2系列调试微信小游戏的时候, 发现了以下问题, 看了一圈官网也没提及, 所以记录一下供大家参考和讨论. 1.报错 ReferenceError ...

最新文章

  1. 红外线可程序化?遥控器Motedem控制自家居住环境
  2. Linux命令中的Z原来是这个意思
  3. Chapter 2 Open Book——16
  4. HBase Shell基本操作
  5. [Android]如何减小APK的大小
  6. linux之tr命令使用和总结
  7. python aiompq集群_国内首款基于AIO(异步IO)支持集群的高性能开源WebSocket服务器 宝贝鱼 CshBBrain V4.0 发布...
  8. 电脑取消撤销快捷键是什么_必须掌握的十个电脑使用技巧
  9. SVN安装和使用详细教程
  10. android 远程控制工具,安卓版远程协助软件
  11. Symbol数据类型
  12. .bat 是什么? (批处理脚本)
  13. Ubuntu系统没有声音解决方案
  14. python面向对象编程
  15. window系统安装msysgit(Git客户端软件)教程
  16. 汇编工具DOSBOX安装使用
  17. 洛谷P1796 汤姆斯的天堂梦【DP-数字三角形模型】【橙】
  18. 电商平台关键词监控价格API接口,店铺监控API接口调用展示
  19. Xcode 项目运行不成功,有没有朋友可以指导一下
  20. OpenSea钓鱼攻击事件得到的启发警惕

热门文章

  1. java网络 可视化_Java可视化AWT
  2. ERROR ITMS-90165: “Invalid Provisioning Profile Signature. The provisioning profile included in the
  3. Presto RBO之 Sort算子优化
  4. 世界杯的狂热,让区块链蹭个热点
  5. 从商用到家庭 服务机器人产业将爆发?
  6. 江西计算机二级考试模拟题,江西计算机二级试卷1
  7. MQTT心跳 Keep Alive
  8. 如何利用h5将视频设置为背景
  9. Epson机器人细节点总结
  10. hdu 1279 验证角谷猜想(简单的模拟)