这里写自定义目录标题

  • 话不多说,直接贴所有代码
  • 运行效果
  • 需要用到的两张图片

话不多说,直接贴所有代码


import random
import sys
import tkinter as tk  # 导入一个第三方库,用于制作桌面软件
import tkinter.font as tf# 数据部分
R = {"name": "R","color": "blue","size": "20","font": "微软雅黑","data": ["冷刃", "黑缨枪", "白缨枪", "翡玉法球", "飞天大御剑", "暗铁剑", "旅行剑", "钢轮弓","吃鱼虎刀", "沾染龙血的剑", "以理服人", "异世界行记", "甲级宝钰", "翡玉法球"],"person": []
}SR = {"name": "SR","color": "purple","size": "20","font": "微软雅黑","data": ["腐殖之剑", "祭礼剑", "西风剑", "试作斩岩", "笛剑", "螭骨剑", "钢轮弓", "西风猎弓","钢轮弓", "绝弦", "祭礼弓", "万国诸海图谱", "匣里日月", "千岩古剑", "黑岩绯玉"],"person": ["香菱", "菲谢尔", "菲谢尔", "北斗", "芭芭拉", "北斗", "凝光", "托马", "重云","砂糖", "烟绯", "安柏", "凯亚", "丽莎", "诺艾尔"]
}SSR = {"name": "SSR","color": "yellow","size": "20","font": "微软雅黑","data": ["天空之卷", "四风原典", "天空之傲", "天空之脊", "风鹰剑", "风鹰剑", "狼的末路"],"person": ["迪卢克", "七七", "琴", "莫娜", "刻晴"]
}ten_count = 0
ninety_count = 0
max_count = 0
person_up = "优菈"
data_up = "松籁响起之时"
ALL = [R, SR, SSR]
tag_id = "0"# 单抽
def one():_res = get()count_flush(_res["level"], _res["thing"])insert_text(conf=_res["level"], message=_res["thing"])text.insert("end", "\n")text.see("end")# 十连抽
def ten():text.tag_add('tag', "end")text.tag_config('tag', foreground="white")text.insert("end", "\nstart\n", 'tag')for i in range(10):one()text.insert("end", f"\nend{ten_count}/{ninety_count}/{max_count}\n", "tag")text.see("end")# 根据抽奖出的物品index获取物品等级
def found(index):for i in ALL:if pool[index] in i["person"]:return iif pool[index] in i["data"]:return i# 每次抽卡后刷新当前计数器
def count_flush(level, thing):global ten_countglobal ninety_countglobal max_countif level["name"] == "SR":ten_count = 0if level["name"] == "SSR":ninety_count = 0if level["name"] == "SSR" and ((thing in person_up) or (thing in data_up)):max_count = 0# 抽卡规则
def get():global ten_countglobal ninety_countglobal max_countlevel = Noneten_count += 1ninety_count += 1max_count += 1if ten_count == 10:level = SRif ninety_count == 90:level = SSRif level is SR or level is SSR:index = random.randrange(len(level[what]))thing = level[what][index]if max_count != ninety_count and level is SSR:level = SSRthing = person_up if what == "person" else data_upif max_count == 180:level = SSRthing = person_up if what == "person" else data_upif level is None:index = random.randrange(len(pool))level = found(index)thing = pool[index]return {"level": level,"thing": thing}# 建立一个主窗口 root
root = tk.Tk()
# 设置窗口标题
root.title("原神模拟抽卡器")# 设置单抽图片
image_one = tk.PhotoImage(file="单抽图片.png")
# 设置十连抽图片
image_ten = tk.PhotoImage(file="十连抽.png")
# 在窗口上创建一个按钮 button,用于单抽,它依赖于父窗口root
button_one = tk.Button(root, text="单抽", image=image_one, command=one)
button_ten = tk.Button(root, text="十连抽", image=image_ten, command=ten)
# 布局创建的按钮,rou代表行,column代表列
button_one.grid(row=0, column=0)
button_ten.grid(row=0, column=1)
# 创建一个文本框,用于打印抽奖日志
text = tk.Text(root, bg="black")
# columnspan代表合并两列
text.grid(row=1, columnspan=2)# 添加日志到Text框
def insert_text(message, conf):global tag_id# 设置字体大小和颜色ft = tf.Font(family=conf["font"], size=conf["size"])text.tag_add('tag'+tag_id, "end")text.tag_config('tag'+tag_id, foreground=conf["color"], font=ft)text.insert("end", message + "\n", "tag"+tag_id)text.see("end")tag_id = str(int(tag_id) + 1)# mian函数,程序会运行这里面的东西
if __name__ == '__main__':# 修改为武器抽武器池what = "角色"if what == "角色":what = "person"if what == "武器":what = "data"if what not in ["data", "person"]:sys.exit(1)# 把up角色和武器加入池SSR["data"].append(data_up)SSR["person"].append(person_up)# 合并在一个总池,实现概率,可以通过算法实现,难得弄..pool = list()for i in range(90):pool.extend(R["data"])for i in range(10):pool.extend(SR[what])pool.extend(SSR[what])# 运行窗口root.mainloop()

运行效果

需要用到的两张图片


Python实现原神抽卡,生成桌面程序,tkinter相关推荐

  1. java 做的原神抽卡模拟小程序

    java做的原神抽卡模拟小程序 难度不大,适合学完面向对象后做着玩. import java.util.ArrayList; import java.util.Calendar; import jav ...

  2. 原神抽卡模拟器(java简易版)

    原神抽卡机制 单抽概率: 5★物品:0.6% 4★物品:5.1% 保底机制: 5★保底:如果连续89发没出5星,第90抽必定5星,然后重新计数 4★保底:如果连续9发没出4星,第10抽触发4星保底:0 ...

  3. java原神抽卡器(可查询版本)

    原神官方给的概率: 5星基础:0.6%,5星保底:1.6%,90抽5星保底:         4星基础:5.1%,4星保底:13%,10抽4星保底. 一开始我也想着直接用官方给的概率设置直接写入,但发 ...

  4. 我用java分析了原神抽卡记录

    起因 我们都知道原神抽卡是有保底机制的,但是游戏里面只能按页查看抽卡记录,并没有各种数据统计,为了能够优化大家的游戏体验,本文就带大家用java爬虫来获取抽卡信息. 抽卡信息api解析 由于我用的是安 ...

  5. 原神抽卡模拟器,unity制作(由于没有获得作者的视频授权,不会发布软件,只展示算法与开发等,效果图在个人主页类有资源下载,不会上传视频)

    五星效果图 以上为展示,没做优化 using System.Collections; using System.Collections.Generic; using UnityEngine; usin ...

  6. 原神抽卡(题目出自:江西软件职业技术大学)

    描述: 在终于熬过了高中之后,你进入了大学,你听信了大人们的谎言,上了大学就轻松了,实际上你发现大学比高中更卷了.但是!你已经佛系了起来,凭借着高中学过oi,在大学开始了摸鱼,而一直打LOL的你,最近 ...

  7. 原神抽卡记录分析工具源码全开源

    简介: 原理是读取AppData\LocalLow\miHoYo\原神\output_log.txt这个文件中的链接,具体看源码,都给做了详细注释. 网盘下载地址: http://kekewangLu ...

  8. JAVA编译一个原神抽卡模拟器

    import java.util.Random;import java.util.Scanner;public class Chouka {final static String[] sanxingw ...

  9. 原神抽卡模拟简单代码(概率还原)

    代码如下: import java.util.Scanner; import java.util.Random;public class Main {public static void main(S ...

最新文章

  1. 手把手教你用Kaggle开启机器学习之旅(附资源链接)
  2. LeetCode之Ransom Note
  3. 2017.9.9 股票交易 思考记录
  4. .rpt文件内容读取java_Java快速入门(26) 文件和IO操作
  5. add php support,WordPress add_theme_support() 函数详解
  6. 图片中加入超链接html代码,html网页超链接代码 怎样用HTML代码在图片插入超链接...
  7. 将word选择题转换成Excel
  8. [jzoj 4226] 【五校联考3day2】A {简单题}
  9. 关于OpenCV中cv2.imwrite保存的图片是全黑色的解决方案
  10. 成功将DM8168作为服务器端总结
  11. [渝粤教育] 中国矿业大学 货币金融学 参考 资料
  12. 牛客寒假算法基础集训营1 - C - 小a与星际探索(bfs || 暴力)
  13. 嵌入式系统大作业——基于QT的3D模型展示
  14. aircrack-ng for windows的简单使用教程
  15. 提高商品曝光率增加销量,从这几点做起
  16. 通过javax.mail发送邮件(示例gmail、qq)
  17. 使用Python获取股票的报表数据
  18. 用excel画像素画,和十字绣一样简单
  19. 为什么txt文件加.c后缀还是txt文件而不是c文件
  20. C++面向对象(六):模板

热门文章

  1. 元宇宙的6层架构、需求及展望
  2. 我在B站投稿啦、、、
  3. js三座大山之异步-微任务宏任务区别
  4. 常用的class命名
  5. 手把手教你架构3D引擎高级篇概述
  6. 换季敏感起皮还冒痘,到底该如何维稳肌肤呢?
  7. 首都最美志愿者马成朋紧急支援陶然亭核酸现场采样服务
  8. centos永久性挂载硬盘
  9. MongoDB的启动方法
  10. Web程序设计——ASP.NET实用网站开发(第四版)课后习题答案