Java 实现回合格斗游戏
(一)、格斗制游戏
1.游戏规则
回合制游戏是一种游戏打怪形式,所有游戏内玩家轮流自己的回合,只有轮到自己的回合,才能够进行操纵。早期战略由于硬件运算能力有限,在考量游戏乐趣与操作简易得情况下,多半采取这种型式。
2.基本思路:
本章节采用JAVA语言《面向对象》章节进行操作,首先我们要进行分析:
问题分析:我们要设置角色的姓名和血量,采用私有的方法进行设置。然后根据阿里巴巴JAVA手册的规定,我们分别要设置相应的无参构造函数、有参构造函数。私有变量的set()和get()进行赋值和返回操作.然后我们开始设置攻击函数。攻击函数attack,以及可以调用私有变量的对象。注意:谁调用方法就是谁是攻击者。形参是被攻击者。然后利用随机函数进行伤害划分。得到剩余血量,然后把剩余血量赋值给私有变量.
算法方程:随机函数、this内存规则
数字转换:
类:
import java.util.Random;
public class Sort {
private String name; //姓名
private double blood; //血量
public Sort(){} //无参
public Sort(String name,double blood){ //有参
this.name=name;
this.blood=blood;
}
public void setBlood(double blood) { //设置血量
this.blood=blood;
}
public double getBlood(){
return blood;
}
public void setName(String name){ //设置姓名
this.name=name;
}
public String getName(){
return name;
}
//方法调用者攻击对方
public void attack(Sort s){
Random r=new Random();
int boold1=r.nextInt(20)+1; //1~20点伤害随机造成
double remainBlood=(s.getBlood()-boold1);
remainBlood=remainBlood<0?0:remainBlood; //剩余血量判断
System.out.println(this.getName()+"攻击了"+s.getName()+"一下,造成了"+boold1+"还剩下血量为:"+remainBlood);
s.blood=remainBlood;
}
}
主方法:
public class hello {
public static void main(String []avgs)
{
Sort s1=new Sort("李明",100); //创建第一个角色
Sort s2=new Sort("李四",100);
while(true)
{
s1.attack(s2);
if(s2.getBlood()==0)
{
System.out.println(s1.getName()+"K*O"+s2.getName());
break;
}
Sleep()
s2.attack(s1);
if(s1.getBlood()==0)
{
System.out.println(s2.getName()+"K*O"+s1.getName());
break;
}
}
}
}
3.视频效果
回合制游戏
(二)调用画板
1.框架类
什么是框架?就好比如说我们正常看到画家画画,它们都是背着一个大支架满地的跑来跑去,在我们java中,画家背的那个支架就是我们所需要的框架。
2.框架的定义格式:
所在的包
impo java.awt.*;
框架类的定义:
Frame f=new Frame();
设置窗体的宽度
f.setSize(800,800);//设置窗体的宽和高。
框架加入画板
panel myplane=new panel(); //创建画板对象
f.add(myplane); //把画板对象放入窗体
java 框架展示:
f.setVisible(true); //是否可见?
3.画板类(Panel)
创建画笔g
public void paint(Graphics g) //创建一个画笔 固定格式话
改变画笔颜色
Color c=new Color(255,0,120);
g.setColor(c); //颜色类
设置矩形
g.fillRect(175,125,400,480); //设置矩形
设置椭圆
g.fillOval(200,150,60,45); //设置椭圆
设置字体款式
Font f=new Font("黑体",Font.BOLD,25); //设置字体款式
g.setFont(f);
写字
g.drawString("C++面向对象程序设计(第二版)",195,255);
4.代码展现:
主文件 (frame类)
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String[] avgs) {
Frame f=new Frame("程序设计");
f.setSize(800,800);//设置窗体的宽和高。
panel myplane=new panel(); //创建画板对象
f.add(myplane); //把画板对象放入窗体
f.setVisible(true); //是否可见?
}
}
类文件
import java.awt.*;
public class panel extends Panel { //继承包中的类,创建画板
public void paint(Graphics g) //创建一个画笔 固定格式话
{
// g.drawLine(0,0,50,50);
Color c=new Color(255,0,120);
g.setColor(c); //颜色类
g.fillRect(175,125,400,480); //设置矩形
Color c1=new Color(0,0,120);
g.setColor(c1);
g.fillOval(200,150,60,45); //设置椭圆
Font f=new Font("黑体",Font.BOLD,25); //设置字体款式
g.setFont(f);
g.setColor(Color.white);
g.drawString("C++面向对象程序设计(第二版)",195,255);
Font f1=new Font("黑体",Font.BOLD,15); //设置字体款式
g.setFont(f1);
g.drawString("————————————————————————————",175,275);
g.drawString("谭浩强 编著",400,285);
g.drawString("中国高等院校计算机基础教育课程体系规划教材",195,210); //写字
Color c2=new Color(255,255,10);
g.setColor(c2);
g.drawString("全国高校出版社优秀畅销书一等奖",275,175);
g.drawString("十一五",205,175);
Color c3=new Color(0,0,0);
g.setColor(c3);
g.drawString("清华大学出版社",325,575);
g.drawOval(225,340,300,175); //椭圆框假
g.drawOval(225,340,290,165);
g.drawOval(225,340,280,155);
g.drawOval(225,340,270,145);
g.drawOval(225,340,260,135);
g.drawOval(225,340,250,125);
g.drawOval(225,340,240,115);
g.drawOval(225,340,230,105);
g.drawOval(225,340,220,95);
g.drawOval(225,340,210,85);
g.drawOval(225,340,200,75);
g.drawOval(225,340,190,65);
g.drawOval(225,340,180,55);
}
}
5.效果展示:
Java 调用框架和画板
(三)、银行金额进行转换系统
1.基本思路:
首先我么要键盘输入一个整数,然后设置一个回调函数,这个回调函数的目的是为了,通过我们传过来的数字把它变成一个大写的语文符号,然后我们进行一系列的操作进行获取个位数的函数,得到个位数的函数然后进行反过来整一下,可以得到数字的正确排序 从而我们只剩下来一个单位系统。进行单位系统替换即可。
2.数字转换:
public static String capNumber(int money)//进行数字转换
{
String []arr=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
return arr[money];
}
3.获取个位
public static String getNumber(int money)//获取个位
{
String s="";
while(true)
{
int gw=money%10;
s=capNumber(gw)+s;
money=money/10;
if(money==0)break;
}
return s;
}
4.添加单位:
public static void addCompany(String s)
{
String []arr={"亿","千万","百万","十万","万","千","百","十","元"};
int count=s.length();
for(int i=0;i<s.length();i++){
System.out.print(s.charAt(i));
System.out.print(arr[9-count+i]);
}
}
5.主函数:
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs)
{
System.out.println("请输入您的金额:");
Scanner sc=new Scanner(System.in);
int money;
while (true) {
money=sc.nextInt();
if(money<0&&money>999999999)
{
System.out.println("您输入的金额错误!重新输入!!!");
}
else{
break;
}
}
System.out.println(money);
System.out.println(getNumber( money));
addCompany(getNumber( money));
}
6.代码展示:
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs)
{
System.out.println("请输入您的金额:");
Scanner sc=new Scanner(System.in);
int money;
while (true) {
money=sc.nextInt();
if(money<0&&money>999999999)
{
System.out.println("您输入的金额错误!重新输入!!!");
}
else{
break;
}
}
System.out.println(money);
System.out.println(getNumber( money));
addCompany(getNumber( money));
}
public static void addCompany(String s)
{
String []arr={"亿","千万","百万","十万","万","千","百","十","元"};
int count=s.length();
for(int i=0;i<s.length();i++){
System.out.print(s.charAt(i));
System.out.print(arr[9-count+i]);
}
}
public static String getNumber(int money)//获取个位
{
String s="";
while(true)
{
int gw=money%10;
s=capNumber(gw)+s;
money=money/10;
if(money==0)break;
}
return s;
}
public static String capNumber(int money)//进行数字转换
{
String []arr=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
return arr[money];
}
}