游戏金币系统

题目:
现在要你定义一种资源,叫玩家货币PlayerCoin类,这个类是这样的,包括金银铜三种币。其中1000铜币=1银币,1000银币=1金币,铜币和银币在超过1000的情况下就需要自动转换为其它资源。
现在要你设计这么一个类。需要实现资源的创建,表示(打印),资源增加,减少,以及倍乘(总资源翻一定倍数)

思路:
1、实现金币的加法比较容易,但是减法可以使用转换为铜币进行减法处理
2、可以设置两个通用的方法,对货币进行转换(转换为金银铜、转为铜币)
3、把类的方法当做接口,提供给用户使用

问题:
1、当金币数量太多,铜币转换可能溢出
2、拓展性不强,应该引入变长参数
实现:
package com.wut.wcz;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		PlayerCoin player1 = new PlayerCoin(50, 900, 300);
		PlayerCoin player2 = new PlayerCoin(100, 300, 50);
		player1.Add(player2);
		Show(player1);
		
		
		PlayerCoin player3 = new PlayerCoin(50, 900, 300);
		PlayerCoin player4 = new PlayerCoin(100, 300, 50);
		player4.Reduce(player3);
		Show(player3);
		
		PlayerCoin player5 = new PlayerCoin(50, 900, 300);
		player5.DoubleCoin(3);
		Show(player5);
		
	}
	public static void Show(PlayerCoin player) {
		System.out.println(player.getGold()+"金\t"+player.getSilverCoin()+"银\t"+player.getCopperCoin()+"铜");
	}

}
package com.wut.wcz;

import java.util.Scanner;

public class PlayerCoin {
	private long  gold = 0;
	private long silverCoin = 0;
	private long copperCoin = 0;
	private void TranslateHigh() {//金币自动转换
		
		while(copperCoin>999) {
			silverCoin++;
			copperCoin-=1000;
		}
		while(silverCoin>999) {
			gold++;
			silverCoin-=1000;
		}
	}
	private void TranslateLow() {//金币转换为铜币
		while(gold>0) {
			silverCoin+=1000;
			gold--;
		}
		while(silverCoin>0) {
			copperCoin+=1000;
			silverCoin--;
		}
	}
	/*public void DoubleCoin() {//资源翻倍
		System.out.println("请输入要增加的倍数:"); 
		int multiple = input.nextInt();
		TranslateLow();
		copperCoin = copperCoin*multiple;
		TranslateHigh();
		
	}*/
	/*public void MoneyAdd() {//资源增加
		System.out.println("请输入您增加的金币数量");
		gold+= input.nextInt();
		System.out.println("请输入您增加银币的数量");
		silverCoin+=input.nextInt();
		System.out.println("请输入您增加的铜币的数量");
		copperCoin+=input.nextInt();
		TranslateHigh();
	}*/
	/*public void MoneyReduce() {//资源减少
		System.out.println("请输入您减少的金币数量");
		gold+= input.nextInt();
		System.out.println("请输入您减少银币的数量");
		silverCoin+=input.nextInt();
		System.out.println("请输入您减少的铜币的数量");
		copperCoin+=input.nextInt();
		TranslateHigh();
	}*/
	public PlayerCoin(long gold, long silverCoin, long copperCoin) {
		super();
		this.gold = gold;
		this.silverCoin = silverCoin;
		this.copperCoin = copperCoin;
	}
	public PlayerCoin() {
		super();
	}

	public void Add(PlayerCoin player2) {
		// TODO Auto-generated method stub
		this.copperCoin+=player2.copperCoin;
		this.silverCoin+=player2.silverCoin;
		this.gold+=player2.gold;
		TranslateHigh();
	}
	public void Reduce(PlayerCoin player2){//把两者的金币数都转换为铜币数进行减法
		player2.TranslateLow();
        this.TranslateLow();
        long num = this.copperCoin-=player2.copperCoin;
        if(num<0) {
        	this.copperCoin = -this.copperCoin;
        	
        	this.TranslateHigh();
        	this.copperCoin = -this.copperCoin;
        	this.silverCoin = -this.silverCoin;
        	this.gold = -this.gold;
        	
        }else {
		TranslateHigh();
		}
		
	}
	public void DoubleCoin(int multiple) {
		this.TranslateLow();
		this.copperCoin = this.copperCoin*multiple;
		this.TranslateHigh();
	}
	public long getGold() {
		return gold;
	}
	public long getSilverCoin() {
		return silverCoin;
	}
	public long getCopperCoin() {
		return copperCoin;
	}
	
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这套系统是之前为一个朋友开发的一套游戏币交易系统,开发语言asp javascript 数据库是Access。 现在提供免费下载给新人学习,请不要用于商业用处。 大分类为: 商品管理 现金转虚拟币管理 虚拟币转现金管理 历史转换记录 ID搜索虚拟币管理 用户管理 前台用户管理 被停权的会员 后台管理员添加 后台用户员管理 数据表备份 分类管理 游戏名称管理 服务器名管理 数据统计 查询交易类型数据 信息管理 修改重要公告 添加首页新闻 新闻删除功能 用户留言管理 管理登陆日志 短信发送管理 行情报价管理 网站参数设置 信用相关设置 物品交易管理 查看计数器 解压及上传 1.将我们提供给你的安装包解压至本地目录; 2.将目录中的所有文件传至网站根目录下. 3.数据库名:57571.asp在根目录下 配置 1.修改数据库路径 a.打开根目录:CONN.ASP b.找到db="/57571.asp" 2.修改后台路径(重要程度:一般) 将原系统的admin 路径修改成其它目录名,尽量不要使用常见的,如:Admin、Manage、Administrator,同时在系统配置中将后台目录对应的地址做相应的修改。 3.修改系统后台登录用户名和密码(重要程度:非常) SERCMS默认用户和密码都是Admin,用户在正式应用前一定要修改这两项,如果拿到该用户和密码则可以对网站的内容进行修改。 后台管理员用户名:Admin 密码:Admin
一、需求分析 本系统是一个吃金币游戏系统,玩家需要通过操作角色来吃到金币并累积分数。需要实现的功能包括: 1. 角色移动控制 2. 金币生成和位置控制 3. 角色吃金币并计分 4. 游戏结束判定和分数统计 二、系统架构设计 本系统采用MVC架构,将游戏分为三个模块:模型层、视图层和控制层。 1. 模型层:负责游戏逻辑的实现,包括金币的生成和位置控制、角色的移动和金币的吃取、游戏结束判定和分数统计等。 2. 视图层:负责展示游戏画面,包括背景、角色和金币等。 3. 控制层:负责接收玩家的操作指令,控制角色的移动和吃金币等。 三、数据库设计 本系统不需要使用数据库。 四、游戏逻辑设计 1. 角色移动控制:玩家可以通过方向键或鼠标控制角色的移动,角色移动的速度可以通过设定控制。 2. 金币生成和位置控制:在游戏开始时,随机生成若干个金币并分别放置在不同的位置上。 3. 角色吃金币并计分:当角色接触到金币时,金币将被吃掉,同时计分器加一。 4. 游戏结束判定和分数统计:当角色与敌人碰撞或者时间用完时,游戏结束,统计玩家的得分。 五、技术选型 本系统采用HTML5+CSS3+JavaScript实现,JavaScript库使用Phaser.js。 六、界面设计 1. 游戏开始界面:包括游戏标题、开始按钮、游戏说明等。 2. 游戏主界面:包括游戏画面、计分器、时间计时器等。 3. 游戏结束界面:包括游戏结束提示、得分统计、重新开始按钮等。 七、开发流程 1. 确定需求和系统架构设计。 2. 进行数据库设计和游戏逻辑设计。 3. 进行技术选型和界面设计。 4. 进行编码和测试。 5. 完成上线部署和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值