姓名大战c语言,c语言姓名大作战游戏
结构体内容为 玩家名字 血量,攻击力,防御力
通过名字来计算出两个玩家各自的初始血量,攻击力,防御力
#include
#include
#include
#include
#include
typedef struct st
{
char name[20];
int hp;
int stk;
int fangyu;
}STU;
void set_color(int color)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
void js(STU *p)
{
int i,s=0;
for(i=0; iname); i++)
{
s += abs(p->name[i]);
}
p->hp = s % (200-150+1)+150;
p->stk = s % (50-30+1)+30;
p->fangyu = s%(5-1)%5;
}
int zhangdou(STU *p1, STU *p2)
{
int tstk; //保存p1的攻击力
int tfy; //保存p2的防御力
tstk = p1->stk;
tfy = p2->fangyu;
printf("[%s]向[%s]发起攻击--",p1->name, p2->name);
if (rand()%100 > 70)
{
set_color(4);
printf(" *暴击* ");
set_color(7);
tstk+=tstk/2;
}
if (rand()%100<10)
{
set_color(4);
printf(" *超级防御* ");
set_color(7);
tfy=tfy+5;
}
tstk-=tfy;
if (tstk < 0)
tstk=0;
p2->hp -= tstk;
if (p2->hp < 0)
{
p2->hp = 0;
}
printf("[%s]受到了%d点伤害并抵挡%d点伤害,HP剩余%d\n\n",p2->name, tstk, tfy, p2->hp);
if (p2->hp == 0)
{
return 1;
}
return 0;
}
main()
{
STU p1,p2,*p;
srand(time(NULL));
printf("输入两个玩家姓名:");
scanf("%s%s",p1.name, p2.name);
system("cls");
//计算hp和stk
js(&p1);
js(&p2);
printf("姓名: %s hp: %d 攻击力: %d 防御力: %d\n",p1.name,p1.hp,p1.stk, p1.fangyu);
printf("姓名: %s hp: %d 攻击力: %d 防御力: %d\n",p2.name,p2.hp,p2.stk, p2.fangyu);
//z战斗过程
while (1)
{
if (zhangdou(&p1, &p2) == 1)
{
set_color(3);
printf("[%s]",p1.name);
printf("胜利!\n");
set_color(7);
break;
}
Sleep(500);
if (zhangdou(&p2, &p1) == 1)
{
set_color(3);
printf("[%s]",p2.name);
printf("胜利!\n");
set_color(7);
break;
}
Sleep(500);
}
}
从文件中读取技能
#include
#include
#include
#include
#include
#include
typedef struct st
{
char name[20];
int hp;
int stk;
}STU;
typedef struct
{
char name[20];
int stk;
}JN;
void set_color(int color)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
void js(STU *p)
{
int i,s=0;
for(i=0; i < strlen(p->name); i++)
{
s += abs(p->name[i]);
}
p->hp = s % (200-150+1)+150;
p->stk = s % (50-30+1)+30;
}
//初始化技能
int JN_init(JN jn1[100])
{
int k=0;
FILE *fp = NULL;
fp = fopen("E://aa//JN.txt","r");
if (fp == NULL)
{
printf("技能文档不存在");
exit(0);
}
while (1)
{
JN t;
if (feof(fp)!=0)
{
break;
}
fscanf(fp,"%s%d",t.name,t.stk);
jn1[k++]=t;
}
fclose(fp);
return k;
}
void zhangdou(STU *p1, STU *p2,JN *p3)
{
int p2hp;
printf("[%s]对[%s]发出%d攻击",p1->name,p2->name , p1->stk);
p2hp = p1->stk + p3->stk;
p2->hp -= p2hp;
printf("使出技能[%s]增加%d点伤害",p3->name, p3->stk);
if (p2->hp < 0)
p2->hp = 0;
printf("[%s]剩余血量%d\n",p2->name, p2->hp);
}
int main()
{
int i,k=0,t=0,t1,t2,c=0,jk=0,tk;
JN jn[100];
STU play[100],*p;
FILE *fp = NULL;
srand(time(NULL));
fp = fopen("e://aa//name.txt","r");
if (fp == NULL)
{
printf("玩家文档不存在!");
return 0;
}
//从文件中读取名字
while (1)
{
STU temp;
if (feof(fp) != 0)
{
break;
}
fscanf(fp,"%s",temp.name);
play[k++]=temp;
}
fclose(fp);
//计算hp和stk
for (i=0; i
{
js(&play[i]);
printf("姓名: %s hp: %d 攻击力: %d\n",play[i].name, play[i].hp, play[i].stk);
}
//读取技能文档
fp = NULL;
fp = fopen("E://aa//JN.txt","r");
if (fp == NULL)
{
printf("技能文件缺失");
return 0;
}
while (1)
{
JN Temp;
if (feof(fp)!=0)
break;
fscanf(fp,"%s%d",Temp.name, &Temp.stk);
jn[jk++] = Temp;
}
fclose(fp);
//z战斗过程
while (1)
{
t1=rand()%k;//k为玩家数
t2=rand()%k;//随机获取玩家id
tk=rand()%jk;//随机技能
if (t1 == t2)
continue;
//血量同时不为0才能战斗
if (play[t1].hp != 0 && play[t2].hp !=0)
zhangdou(&play[t1], &play[t2], &jn[tk]);
else
{
t=0;
for (i=0;i
{
if (play[i].hp != 0)
{
t++;
c=i;
}
}
if (t==1)
{
printf("胜利者:%s",play[c].name);
break;
}
}
Sleep(100);
}
return 0;
}
姓名大战c语言,c语言姓名大作战游戏相关推荐
- c语言球球半径,C/C++编程笔记:C语言开发球球大作战(源码分享),你想试试吗?...
原标题:C/C++编程笔记:C语言开发球球大作战(源码分享),你想试试吗? 游戏背景 <球球大作战>是Superpop一款自主研du发的免费手机网络游戏. 以玩家间的实时互动PK产生游戏乐 ...
- html5小游戏 typescript,使用TypeScript和Canvas编写移动端贪吃蛇大作战游戏
基本介绍 一款移动端贪吃蛇大作战游戏.(只支持移动端) 这是一个临近 deadline 的课设项目,为了方便地使用TS,我直接使用angular-cli生成了TypeScript的项目结构.如果你有好 ...
- c语言编程球球大作战,C/C++项目源码——球球大作战
C/C++项目源码--球球大作战 这是一个球球大作战的小程序,能够运行,需要下载一个easyx库 初始产生一个小球,可以慢慢吃零食长大 游戏没有写完整,不能吃别的玩家(单机初始化产生的玩家) 有兴趣可 ...
- 【项目实战】轻松实现C/C++大作业:贪吃蛇大作战游戏!
这是一个贪吃蛇大作战类游戏,修改特性为 AI 不互杀: 该程序有四个类:蛇基类 SnakeBase,玩家类 Player,AI 类,Game 类:SnakeBase 和 AI 均继承自 SnakeBa ...
- 原谅帽大作战游戏程序
原谅帽大作战 制作人:崔帅宽 时间:2020.11.10 一.如何创建原谅帽大作战的窗体: (1)先创建一个原谅帽的类包,然后创建:游戏客户端GameClinet类. /* 游戏客户端 */ publ ...
- 面向对象版贪吃蛇大作战游戏创作
贪吃蛇大作战 创作思路: 1.创建蛇头蛇身-----2.让蛇动起来-----3.随机投放食物-----4.吃掉创建的食物------5.判断游戏开始结束 前期准备工作: 创建一个宽1200 高800的 ...
- Python—飞机大作战游戏(附源代码及素材)
目录 过程说明: 主函数 键盘控制 创建类 01.飞机基类 02.子弹基类 03. Hero飞机类 04.enemy飞机类 源代码及素材 过程说明: 应用到的库: import pyg ...
- 球球大作战c语言源代码,球球大作战,源码分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "qiu.h" int main() { initgraph(800, 600); mciSendString(&q ...
- 贪吃蛇大作战游戏——C语言
是你想要的贪吃蛇吗? 快来看看吧~ #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <string.h> ...
- java写潜艇大作战游戏_基于Java实现的潜艇大战游戏
一.需求分析 本次游戏课程设计小组成员团队合作的方式,通过游戏总体分析设计,场景画面的绘制,游戏事件的处理,游戏核心算法的分析实现,游戏的碰撞检测,游戏的反复测试,游戏的打包运行等一个完整的游戏设计编 ...
最新文章
- android shape的使用
- 12.3、Libgdx的图像之截屏
- 剖析nodejs的事件循环
- Ajax请求Session超时的解决办法:拦截器 + 封装jquery的post方法
- SpringCloud教程-注册中心(Consul)(SpringCloud版本Greenwich.SR4)
- EF Core 生成数据库
- jquery --- 监听input框失效
- python处理json数据_python处理json格式的数据
- Celery多个定时任务使用RabbitMQ,Queue冲突解决
- python处理txt文件的一种情况
- java执行 scp_Java执行SSH/SCP之JSch
- access升级mysql_将现有的Access数据库升级为SQL
- Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖
- Python基础之键盘操作
- 解决linux kernel 提交gerrit时,运行checkpatch.pl产生的xxxx64_defconfig not generated by savedefconfig问题
- mysql mpm_Zabbix和MPM监控MySQL
- 【微信小程序】问卷调查/答题类小程序实现
- 智能快递柜在小区的应用
- JAVA基础之设计模式和枚举
- 以太坊链上的二层(layer2)扩容方案Matic(Polygon)
热门文章
- 微信小游戏 资源下载解压
- linux非root用户添加rzsz,linux RZSZ RZSZ 安装
- breakall lisp文件_cad中pl线画的粗线转线框后,能转到su里封面么,求解
- 广州坐标系转换大地2000_城市坐标系转换2000国家大地坐标系分析
- 整理iOS9适配中出现的坑(图文)
- 计算机网络课程设计 学校园网设计
- VLFeat中SIFT特征点检测
- 前端开发【WEUI框架H5网页开发】—— WEUI+Node.js+fis3 项目开发
- 用python处理DEA模型--CCR
- PaddleOCR 手写识别模型:标注到训练