氪金游戏的抽卡代码

简介: 氪金游戏的抽卡代码

项目介绍

       通过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.整体展示

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

小结

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

相关文章
|
算法 程序员
从《阴阳师》到《原神》,抽卡中的程序算法
收集类的抽卡手游,是玩家们喜闻乐见的一类游戏,他们背后又有哪些程序算法?我们一起来探讨
3546 0
从《阴阳师》到《原神》,抽卡中的程序算法
|
人工智能 搜索推荐 算法
豆包角色制作指南
这篇文章是一份豆包角色制作指南,介绍了如何使用虚拟角色生成器创建IP或非IP角色,以及创作对话人物sp的技巧和Bot主动发消息的技巧。
|
4月前
|
数据采集 人工智能 监控
从 Agent 到模型推理:端到端的可观测性实践
本文探讨了AI领域的最新发展趋势及应用挑战,详细分析了模型、框架与应用场景的进展,并针对如何用好AI、节省资源与确保合规提出了见解。同时,文章深入剖析了AI应用的典型架构,强调实现端到端可观测性的关键步骤,包括全链路追踪与数据平台构建。此外,还介绍了阿里云提供的全栈可观测解决方案,以及Tracing技术的具体实现细节。通过对关键性能指标(如TTFT和TPOT)的监控,优化数据采集与探针性能,解决了Dify等平台的实际问题。最后,阐述了模型质量评估与Token黑洞监控的重要性,并展示了阿里云监控平台的统一观测能力,助力用户全面掌握AI应用表现。
网页课程设计-期末大作业-简单设计【原神狂喜】
本文介绍了一个以“原神”为主题的网页课程设计项目,包括登录页、博客首页、文件上传页面、相册页面和留言板页面的设计与实现,并提供了完整的源代码下载链接。
网页课程设计-期末大作业-简单设计【原神狂喜】
|
11月前
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
|
存储 人工智能 弹性计算
从“云+原神”到“云上星穹”,阿里云支持米哈游新游全球首发
近日,阿里云支持米哈游新作《崩坏:星穹铁道》正式上线,首发当天全网下载量突破2000万,当日登上iOS免费榜与畅销榜的总榜第一及其他多国榜首。
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
827 6
|
存储 安全 Cloud Native
阿里云支持米哈游新游《绝区零》全球开服!
阿里云支持米哈游新游《绝区零》全球开服!
1151 3
|
数据安全/隐私保护
[SWPUCTF 2021 新生赛]原来你也玩原神
[SWPUCTF 2021 新生赛]原来你也玩原神
356 0
|
Linux 网络安全 数据安全/隐私保护
Linux——配置SSH免密登录
Linux——配置SSH免密登录
313 0