一队:

3 2 1
6 5 4
9 8 7

二队:

3 2 1
6 5 4
9 8 7
1、两支队伍,每支队伍最多可以上阵五个武将,每支队伍按九宫格排放,可以随意安排上阵人员的位置。
2、打斗过程:例:A、B两支队伍,出手顺序:A1、B1、A2、B2、A3、B3……。直至其中一支队伍没有武将。
3、类介绍:武将类(名你,属性:HP,攻击力,防御力)。战斗过程类。辅助类等。
4、在控制台打印出输出结果,如(A1的**攻击B1的**,B1损失*点体力[B1死亡]……。A队胜利)。
5、公式:攻击力-防御力+(1到20).(如果攻击力-防御力为负值时公式变为:0+(1到20)).(打印)
分析:直到一方死亡,需要用到while循环,攻方和防守方一次一替的交换,直到一方没有人了胜利!
代码如下:
package moni;import manager.LookForManager;public class ZhanDou {public static void main(String[] args) {Sx[][] a = new Sx[3][3];Sx[][] b = new Sx[3][3]; LookForManager lookForManager=new LookForManager();//位置摆放//设置武将在阵中的位置a[0][0]=lookForManager.rwshuxing(1);//设置武将属性a[0][1]=lookForManager.rwshuxing(2);a[1][1]=lookForManager.rwshuxing(3);a[1][0]=lookForManager.rwshuxing(4);a[2][1]=lookForManager.rwshuxing(5);//设置小怪b[0][1]=lookForManager.gwshuxing(1);b[0][2]=lookForManager.gwshuxing(2);b[1][0]=lookForManager.gwshuxing(3);b[1][2]=lookForManager.gwshuxing(4);b[2][2]=lookForManager.gwshuxing(5);lookForManager.zhao(a, b);//打架方法}
}

package moni;

public class Sx {private int gongji;private int fangyu;private int hp;private String name;private boolean ishander=true;public int getGongji() {return gongji;}public void setGongji(int gongji) {this.gongji = gongji;}public int getFangyu() {return fangyu;}public void setFangyu(int fangyu) {this.fangyu = fangyu;}public int getHp() {return hp;}public void setHp(int hp) {this.hp = hp;}public String getName() {return name;}public void setName(String name) {this.name = name;}public boolean isIshander() {return ishander;}public void setIshander(boolean ishander) {this.ishander = ishander;}}

package manager;import java.util.Random;import moni.Sx;public class LookForManager {//武将属性设置public Sx rwshuxing(int ms){Random r=new Random();//武将选中位置,此时带有属性值Sx sx=new Sx();//需要优化sx.setFangyu(r.nextInt(10));sx.setGongji(r.nextInt(10));sx.setHp(r.nextInt(100));sx.setName("A"+ms);return sx;}//怪物属性设置public Sx gwshuxing(int gs){Random r=new Random();//武将选中位置,此时带有属性值Sx sx=new Sx();//需要优化sx.setFangyu(r.nextInt(10));sx.setGongji(r.nextInt(10));sx.setHp(r.nextInt(100));sx.setName("B"+gs);return sx; }//输出互相打斗的信息public void daji(Sx cs,Sx bd){int xie=0;Random r=new Random();if(cs!=null&&bd!=null&&cs.getGongji()-bd.getFangyu()>0){xie=cs.getGongji()-bd.getFangyu()+r.nextInt(20);bd.setHp(bd.getHp()-xie);System.out.println(cs.getName()+"的"+cs.getGongji()+"攻击"+bd.getName()+"的"+bd.getFangyu()+"防御,"+bd.getName()+"损失"+xie+"点体力");cs.setIshander(false);}else{//(如果攻击力-防御力为负值时公式变为:0+(1到20)).xie=0+r.nextInt(20);if(bd!=null&&cs!=null){bd.setHp(bd.getHp()-xie);System.out.println(cs.getName()+"的"+cs.getGongji()+"攻击"+bd.getName()+"的"+bd.getFangyu()+"防御,"+bd.getName()+"损失"+xie+"点体力"); cs.setIshander(false);}}}//主体部分public void zhao(Sx a[][],Sx b[][]){boolean t=true;//回合初始化武将的属性(所有武将未出手)boolean team=true;//true为A出手,false为B出手while(t){//循环找到A谁先出手//全部出手过了,全部设置成未出手boolean ishandl=true;for (int j2 = 0; j2 < 3; j2++) {for (int k = 0; k < 3; k++) {if(a[j2][k]!=null&&a[j2][k].isIshander()!=true){ishandl=false;}if(b[j2][k]!=null&&b[j2][k].isIshander()!=true){ishandl=false;}}}if(ishandl){//所有人初始化未出手                for (int j2 = 0; j2 < 3; j2++) {for (int k = 0; k < 3; k++) {if(a[j2][k]!=null){a[j2][k].setIshander(true);}if(b[j2][k]!=null){b[j2][k].setIshander(true);}  }}}int ii=0;//存储行变量Sx bd=null;//被打人Sx cs=null;//打手if(team){//true为A出手,false为B出手for (int tempi = 2; tempi >= 0; tempi--) { for (int tempj = 2; tempj >= 0; tempj--) {if(a[tempi][tempj]!=null&&a[tempi][tempj].isIshander()&&a[tempi][tempj].getHp()>0){cs=a[tempi][tempj];ii=tempi;}}}if(cs==null){//找出已出手但是还有血的人System.out.println("A队输");break;}for (int tempi = ii; tempi < 3&&tempi > -1;) { for (int tempj = 2; tempj < 3&&tempj > -1; tempj--) {if(b[tempi][tempj]!=null&&b[tempi][tempj].getHp()>0){bd=b[tempi][tempj];}}if(null!=bd){break;}  if(ii!=0){tempi--;}    else{tempi++;}    if(tempi==-1){tempi=2;}  }if(bd==null){System.out.println("B队输");break;}}else{//b队找a队for (int tempi = 2; tempi >= 0; tempi--) { for (int tempj = 2; tempj >= 0; tempj--) {if(b[tempi][tempj]!=null&&b[tempi][tempj].isIshander()&&b[tempi][tempj].getHp()>0){cs=b[tempi][tempj];ii=tempi;}}}if(cs==null){System.out.println("B队输");break;}for (int tempi = ii; tempi < 3&&tempi > -1;) { for (int tempj = 2; tempj < 3&&tempj > -1; tempj--) {if(a[tempi][tempj]!=null&&a[tempi][tempj].getHp()>0){bd=a[tempi][tempj];}}if(null!=bd){break;} if(ii!=0){tempi--;}    else{tempi++;}    if(tempi==-1){tempi=2;}  }if(bd==null){System.out.println("A队输");break;}}/** 攻击*/this.daji(cs, bd); if(team){team=false;}else{team=true;}}}}




神仙道战斗游戏逻辑设计相关推荐

  1. Android拼图游戏的设计逻辑,从切图到交互动画,从关卡到倒计时,实例提高!

    Android拼图游戏的设计逻辑,从切图到交互动画,从关卡到倒计时,实例提高! 群英传的最后一章,我大致的看了一下这个例子,发现鸿洋大神也做过,就参考两个人的设计逻辑,感觉都差不多,就这样实现起来了 ...

  2. 1个安装包2款游戏?!Cocos《神仙道》黑科技闪瞎眼

    近期,触控科技在北京国际会议中心举办了以"挑战 变革"为主题的Cocos 2016开发者大会(春季),心动网络主程陈剑做了以"<神仙道>5年修炼的转世轮回&q ...

  3. 大话AI技术辅助游戏NPC设计

    在电子游戏开始之初,游戏的乐趣很大程度上依赖于游戏开发者设计的世界,在世界里有各种NPC(Non-Player Character),我们通过与之互动推动游戏的进行.游戏NPC作为游戏中的一个重要组成 ...

  4. FPGA逻辑设计回顾(1)新手易犯的逻辑综合错误之always块

    前言 注:本文首发自FPGA逻辑设计回顾(1)新手易犯的逻辑综合错误之always块 本文中用到了如下的小标题: "心中有路"与综合推断 "心中无路"与无从推断 ...

  5. c语言五子棋开题报告,基于VC的五子棋游戏的设计与实现(附答辩记录)

    基于VC的五子棋游戏的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期检查报告,毕业论文12300字,程序) 摘 要:以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以 ...

  6. 少儿编程:玩游戏不如设计游戏!

    当手机成为必须品之后,不仅是成人开始对它产生依赖,作为下一代的孩子,也深受其影响.手机.平板电脑取代了洋娃娃小汽车在孩子们心中的位置,游戏.动画成为日常,家长在感叹孩子聪明的同时,又担心孩子会&quo ...

  7. 游戏框架设计的一些心得

    游戏框架设计的一些心得 1,设计的原子化,正交化 2,根据现有需求设计,不做太通用的设计,敏捷开发,根据需求重构 3,逻辑嵌套的展开,类似递归展开为for循环的思想.如技能系统常常需要复杂的回调时 p ...

  8. java 3d游戏_不放一行代码分享一下java实现3D游戏逻辑

    这篇日记是对最近几周Java大作业写的一个3D打怪挖矿游戏进行记录和总结.另一个目的也是因为我发现身边很多朋友对3D游戏逻辑很有兴趣.所以写这篇日记可以介绍一下一个3D游戏是如何实现基础功能的.即使没 ...

  9. wpf 使子ui元素可视区域不超过父元素_对游戏UI设计的一点思考

    UI决定了一个游戏的初体验,甚至决定了玩家的初始留存,甚至可以说决定了一个游戏的品质,虽然看起来是表象的,却是直指游戏核心的.简单讲,玩家认可一款游戏永远都是造型场景好,剧情好,画质棒:但是玩家骂一款 ...

最新文章

  1. phar.php error 139,composer.phar 安装出现PHP Fatal error解决办法
  2. mysql 安装更改目录权限设置密码_mysql-8.0 安装教程(自定义配置文件,密码方式已修改)...
  3. acctmod-ftp.sh
  4. 十一、Android学习第十天——项目开始(转)
  5. 1.Tomcat配置
  6. mysqldump导入导出mysql数据库
  7. SpringBoot用容器IoC管理Bean
  8. OpenCV图像操作的实例(附完整代码)
  9. 角色操作-查询所有角色流程分析
  10. 为什么我们知道那么多道理(理论),却依然处理不好目前的生活
  11. shell 进入hadoop_Hadoop Shell命令
  12. java ha_java – Haproxy Bad Gateway 502
  13. 时间序列预测系统α版本迭代总结
  14. oracle秒级查询,oracle 中查询超过10秒以上的sql语句(性能优化)
  15. Hyperledger Fabric教程(14)--动态添加组织的步骤
  16. extjs tree下拉列表_Extjs中ComboBoxTree实现的下拉框树效果(自写)_extjs
  17. 【短时能量】基于matlab语音信号短时能量【含Matlab源码 1719期】
  18. Activiti会签
  19. outlook客户端怎么看html,谷歌浏览器根据html网页启动邮件客户端Outlook(示例代码)...
  20. HBuilder创建App并打包发布

热门文章

  1. PSINS惯性器件误差模拟与分析
  2. 如何在 BGP 中通告网络
  3. 看完《三体》,我顿悟了5个最残酷的职场生存法则
  4. SII-Slave Information Interface
  5. 简述适配器的概念、作用以及主机适配器的概念
  6. linux bt客户端 命令行,Linux下的Bt客户端
  7. 使用思科模拟器设计和配置校园网络
  8. Linux期末复习笔记(太原理工大学)
  9. 计算机科学技术考研内容,计算机科学与技术考研考哪些科目?
  10. SAT OG 写作辅导:良知是一种比金钱名望和权力更有力的激励?