胡乱写了个简单程序,不过测试程序的时候发现,你的伤害计算有很大的问题。
上面说道:实际伤害=A部队攻击力-B部队防御力
那么攻击最高的骑兵攻击是30,打在防最低为5的弓兵身上,那么伤害等于30-5=25,这里倒是没多大问题,但是又看
实际伤害/B部队单位血量=本次攻击杀死敌兵数量,余数进位
那么杀死弓兵的数量就等于25/200=0125 按余数进位也就是1而已 0125已经是里面最大的伤害了,所以造成每次无论任意兵种攻击任意兵种,死亡的单位都是1
附程序(没怎么思考,期待楼下更精简的算法):
<php
//初始化团队
$team_a=array(
"5"=>set_c("军团A骑兵甲","cavalry"),
"11"=>set_c("军团A弓兵甲","archer"),
"14"=>set_c("军团A弓兵乙","archer"),
"8"=>set_c("军团A步兵甲","infantry"),
"7"=>set_c("军团A步兵乙","infantry")
);
$team_b=array(
"8"=>set_c("军团B骑兵甲","cavalry"),
"9"=>set_c("军团B骑兵乙","cavalry"),
"13"=>set_c("军团B弓兵甲","archer"),
"5"=>set_c("军团B步兵甲","infantry"),
"10"=>set_c("军团B步兵乙","infantry")
);
//按速度对团队进行排序
$team_a=spe_sort($team_a);
$team_b=spe_sort($team_b);
//初始化战斗单位
function set_c($name,$type){
//初始化兵种 infantry 步兵 archer弓兵 cavalry骑兵,兵种=>(攻,防,HP,速度,数量)
$arm=array(
"infantry"=>array("tak"=>20,"def"=>10,"hp"=>250,"spe"=>"20|24","amo"=>120),
"archer"=>array("tak"=>25,"def"=>5,"hp"=>200,"spe"=>"25|27","amo"=>100),
"cavalry"=>array("tak"=>30,"def"=>15,"hp"=>300,"spe"=>"28|30","amo"=>80)
);
$d=$arm[$type];
$d["name"]=$name;
$spe=explode("|",$d["spe"]);
$d["spe"]=rand($spe[0],$spe[1]);
return $d;
}
//速度排序
function spe_sort($array){
foreach($array as $key => $value)
{
$temp[$key] = $value['spe'];
}
arsort($temp);
foreach($temp as $key => $value)
{
$result[$key] = $array[$key];
}
return $result;
}
//战斗函数 $active=攻击团队 $passive=被攻击团队
function fight($active,$passive){
//目标选择规则
$targeting=array(7,4,10,1,13,8,5,11,2,14,9,6,12,3,15);
foreach($active as $k=>$a)
{ foreach($targeting as $t)
{
if(isset($passive[$t]))
{
$hurt=$active[$k]["tak"]-$passive[$t]["def"];
$kill=ceil($hurt/$passive[$t]["hp"]);
$passive[$t]["amo"]=$passive[$t]["amo"]-$kill;
echo "<font color='#0000FF'>"$active[$k]["name"]"</font> 攻击了 <font color='#0000FF'>" $passive[$t]["name"] "</font>,共伤害<font color='#ff000'> $hurt </font>点,杀死<font color='#ff000'> $kill </font>个单位剩余"$passive[$t]["amo"]"个单位</br>";
if( $passive[$t]["amo"]<=0)
{
echo "×<font color='#ff000'>"$passive[$t]["name"]"</font>被消灭了!</br>";
unset($passive[$t]);
if(!count($passive)){echo "<font color='#ff000'>该军团已全军覆没!战斗结束</font>"; die();}
}
break;
}
}
}
echo "-------------------本回合结束,换对方攻击-------------------</br>";
fight($passive,$active);
}
echo "战斗开始!</br>";
fight($team_a,$team_b);
>
《PHP高级程序设计模式框架与测试》百度网盘pdf最新全集下载:
链接:>pwd=uthw 提取码:uthw
简介:PHP高级程序设计:模式、框架与测试详细讲解了对他们为重要的主题:高级面向对象、设计模式、文档、测试和标准PHP库等内容。同时,为适应目前Web开发的新趋势,作者还全面探讨了MVC架构和Zend Framework,以及Ajax、JSON、SOAP等Web 20技术。
php是一种通用开源脚本语言,PHP独特的语法吸收了C语言JavaPerl以及php自创的语法特点PHP语言学习的门槛不高,即使是零基础的同学,只要勤于动手实践,也能由入门到精通如果你是php语言的初学者,不妨和昌平北大青鸟小编了解一下Php是干什么用的,以及学习php从哪些方面入手学PHP就到昌平北大青鸟值得信赖
零基础到精通,新手应该如何学习PHP语言
Php的用途是什么
对于一个php门外汉来说,对php语言存在着较浅的认识,他会觉得php语言就是做网站的但是,更确切地说,php语言是网站后端开发以及后端处理的因为这是一项技能,所以在学习php语言之前,大有必要搞清楚它是做什么的,这一点非常重要!
php学习的框架
下面昌平北大青鸟小编对学习PHP的过程做一下概括:
(1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页
(2)理解动态语言的概念,运做机制,熟悉PHP语法
(3)学习如何将PHP与HTML结合起来完成简单动态页面
(4)接触MYSQL,设计数据库程序
(5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,模板
(6)建立一个功能齐全的动态站点
这整个的学习过程是循序渐进的过程,就拿html来说,只有当你先学会了制作网页,才能为之后建立网站打下基础
学习php语言会遇到的问题
对于一个零基础的php初学者来说,学习过程难免会碰到各种各样的问题,昌平北大青鸟小编在此特别做出说明
就以html学习为例,在学习过程比较常见的问题就是,看了手册中的各种概念,但是回想起来概念相当模糊和零碎然而,php语言的学习并非知识型的,而是技能型的所以,对于手册里每一个标签,每一个属性都敲了一遍,看看它们的效果和反应,这样对概念的认识显然会更深刻一些像html和css的任何元素标记,这些都要亲自动手
另外,在自学的过程中,一个人的视野是有限的,因而仍然需要找些教程视频来看观看这些视频,你可以发现自己学习当中的遗漏和未曾注意的细节问题像学习html的一样,一定要克服惰性,最好建立一个文本,专门用于记录不懂的一些问题,这样有利于你继续前进
搞点项目开发
编程在刚接触有会有些新鲜感,但是接下来就是一些乏味感,因而需要寻找一些刺激搞点项目开发,当你发现编程可以解决生活实际问题,将获得满满的成就感,这也你继续学习的动力源泉之一当你学会HTML的时候,就可以编好几个大表格排板的网页;当你学会PHP,就可以把一加一的运算写在函数里,然后调用啦当然,最好做一个留言板,和helloworldPK一下!
以上就是关于php 简单的程序设计(轮流攻击)全部的内容,包括:php 简单的程序设计(轮流攻击)、《PHP高级程序设计模式框架与测试》pdf下载在线阅读全文,求百度网盘云资源、昌平北大青鸟分享新手应该如何学习PHP语言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)