氪金游戏的抽卡代码

文章介绍了使用Java编程实现的一个氪金游戏抽卡系统,包括充值、抽卡和查询详情功能。充值板块允许用户输入金额并按1:10比例转换为游戏货币原石;抽卡板块设有不同等级的道具和角色,采用随机数生成抽卡结果;查询详情板块展示了游戏道具的掉率信息。整个系统通过Scanner类获取用户输入,使用静态变量存储数据,并有简单的UI界面。
摘要由CSDN通过智能技术生成


项目介绍

        通过java语言,编写了一个氪金游戏的抽卡系统,具备充值抽卡查看卡池详情的功能


整体架构流程

         

板块分析

        1.充值板块 

import java.util.Scanner;
import java.util.Random;
public class Dram {
	public static int yuanShi=0;
	static Scanner sc=new Scanner(System.in);
	public static void Spend(){	
		//此方法封装着充值板块	
        System.out.println("------------------------");
		System.out.println("请输入您的充值金额(元)");
		int money=sc.nextInt();		
		int yuanShiC=money*10;
		System.out.println("邮箱提醒:到账原石"+yuanShiC);
		yuanShi+=yuanShiC;
		System.out.println("原石:"+yuanShi);
        System.out.println("------------------------");
	}

         需求1:用户需要输入数据

         方案:Scanner类,static关键字,静态方法System.in打开输入流,nextInt()方法获取充值金额 

         需求2:系统需要保存数据

         方案:static关键字,创建静态变量yuanShi,运行全过程可被操作 

                    创建int类型数据,yuanShiC,标记为用户,通过充值渠道,获取的游戏货币 

                    根据货币与虚拟货币1:10的比例,建立公式,通过+=自加运算符,记录到yuanShi变量

          需求3:此板块需要简单的UI设计

          方案:println方法,打印出“---”,对板块进行分隔,打印出引导充值语,充值获得反馈 

                     在每个板块下打印出,静态变量yuanShi,实时显示用户拥有的虚拟货币数量

        2.抽卡板块 

public static void Draw() {
		//此方法封装着抽卡板块
		Random num=new Random();
		String pool[]=new String[100];
		for(int a=0;a<=21;a++) {
			pool[a]="新手剑";
		}
		for(int b=22;b<=43;b++) {
			pool[b]="新手长弓";
		}
		for(int c=44;c<=65;c++) {
			pool[c]="新手大剑";
		}
		for(int d=66;d<=89;d++) {
			pool[d]="新手长枪";
		}
		pool[90]="\u001B[35m西风长枪\u001B[0m";
		pool[91]="\u001B[35m西风大剑\u001B[0m";
		pool[92]="\u001B[35m西风剑\u001B[0m";
		pool[93]="\u001B[35m西风长弓\u001B[0m";
		pool[94]="\u001B[35m安柏\u001B[0m";
		pool[95]="\u001B[35m诺艾尔\u001B[0m";
		pool[96]="\u001B[35m凯亚\u001B[0m";
		pool[97]="\u001B[35m香菱\u001B[0m";
		pool[98]="\u001B[33m迪卢克\u001B[0m";
		pool[99]="\u001B[33m胡桃\u001B[0m";
        System.out.println("------------------------");
		System.out.println("抽一次请按1,抽十次请按10");
		int time=sc.nextInt();
		if(time==1) {
			if(yuanShi>=160) {
				yuanShi-=160;
				System.out.println(pool[num.nextInt(100)]);
				System.out.println("原石:"+yuanShi);
			}else {
				System.out.println("抱歉,您的原石已不足");
			}
		}if(time==10) {
			if(yuanShi>=1600) {
				yuanShi-=1600;
				for(int i=1;i<=10;i++){
					System.out.print("--"+pool[num.nextInt(100)] );
				}
				System.out.println();
				System.out.println("原石:"+yuanShi);
			}else {
				System.out.println("抱歉,您的原石已不足");
			}
		}
        System.out.println("------------------------");
	}

           需求1:抽卡池子需要100个空缺,并且装上对应的游戏道具

           方案:建立String类型数组,创建数组容量为100,通过for循环,根据业务需要,填充相应比例的等级道具的字符串

           需求2: 抽卡池子需要随机生成出玩家的抽卡结果

           方案:Random类,创建Random对象,标定生成数字的范围在0-99,通过println打印出

           需求3:抽卡池子需要具备抽一次和抽十次的功能

           方案: 通过Scanner类中的nextInt()方法,获取用户选定的抽取次数

                       通过if条件判断,抽一次,静态变量yuanShi,-=自减160,用println打印出一次随机结果

                       抽十次,静态变量yuanShi,-=自减1600,用for循环十次,用print打印出十次随机结果

            需求4:游戏道具需要根据对应等级,显示对应颜色

            方案:通过\u001B[色号数字m文案\u001B[0m   显示紫色,金色

        3.查询详情板块 

public static void Check() {
		//此方法封装着查询详情板块
		/*	三星武器掉率		90%
		  	四星武器|角色掉率	 8%
		 	五星常驻角色|活动角色掉率	 2%	*/
		System.out.println("------------------------");
        System.out.println("该池为活动池");
        System.out.println("活动角色:胡桃");
        System.out.println("四星武器|角色掉率: 8%");
        System.out.println("五星活动角色掉率:  1%");
        System.out.println("注:该活动池没有保底机制");
        System.out.println("-------------------------");
	}

            需求:系统需要显示卡池物品掉率等信息

            方案:通过println方法,逐条显示用户想要查询的内容

        4.抽卡主板块

public static void main(String[] args){
	Scanner scan=new Scanner(System.in);
	System.out.println("胡桃活动池(模拟抽卡)");
	for(int j=0;j<1000000000;j++) {		
			System.out.println("充值请按1,抽卡请按2,查看池子详情请按3");
			int choose=scan.nextInt();
			if(choose==1) {
				Spend();
			}if(choose==2) {
				Draw();
			}if(choose==3) {
				Check();
			}
		}
	scan.close();	
	}
}

         需求1:系统需要判断用户想使用的板块

         方案:通过Scanner类的nextInt()方法获取用户的选择,根据选择,if语句调用对应的方法

         需求2:抽卡主板块需要重复的运行

         方案:通过for循环将主板块核心代码进行嵌套

         需求3:用户需要知道活动池的主题

         方案:通过println方法于开头打印活动池主题

实操展示

        1.充值板块

 

 

        2.抽卡板块

        3.查询详情板块

 

        4.整体展示

       注:概率没有问题,只不过我运气很好罢了

小结

        以上就是抽卡代码了,如果有疑问,可以私信或评论,觉得有意思的话,不妨点个赞,支持一下。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵果森森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值