48.【Java 格斗制游戏-画板-银行金额转换系统】

简介: 48.【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];
    }
}

效果展示:


相关文章
|
13天前
|
运维 自然语言处理 供应链
Java云HIS医院管理系统源码 病案管理、医保业务、门诊、住院、电子病历编辑器
通过门诊的申请,或者直接住院登记,通过”护士工作站“分配患者,完成后,进入医生患者列表,医生对应开具”长期医嘱“和”临时医嘱“,并在电子病历中,记录病情。病人出院时,停止长期医嘱,开具出院医嘱。进入出院审核,审核医嘱与住院通过后,病人结清缴费,完成出院。
43 3
|
17天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1
|
18天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
21天前
|
移动开发 前端开发 JavaScript
java家政系统成品源码的关键特点和技术应用
家政系统成品源码是已开发完成的家政服务管理软件,支持用户注册、登录、管理个人资料,家政人员信息管理,服务项目分类,订单与预约管理,支付集成,评价与反馈,地图定位等功能。适用于各种规模的家政服务公司,采用uniapp、SpringBoot、MySQL等技术栈,确保高效管理和优质用户体验。
|
23天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
46 1
|
28天前
|
Java 关系型数据库 API
介绍一款Java开发的企业接口管理系统和开放平台
YesApi接口管理平台Java版,基于Spring Boot、Vue.js等技术,提供API接口的快速研发、管理、开放及收费等功能,支持多数据库、Docker部署,适用于企业级PaaS和SaaS平台的二次开发与搭建。
|
1月前
|
Java 关系型数据库 MySQL
基于Java的学生成绩管理系统/学生信息管理系统
基于Java的学生成绩管理系统/学生信息管理系统
41 2
|
1月前
|
前端开发 Java 数据库连接
基于Java的校车管理系统(下)
基于Java的校车管理系统(下)
20 0
|
1月前
|
存储 前端开发 Java
基于Java的校车管理系统
基于Java的校车管理系统(上)
20 0
|
1月前
|
Java 数据库
基于java的汽车服务管理系统(Car Service Management System)
基于java的汽车服务管理系统(Car Service Management System)
19 0