python百行代码编码摇骰子模拟器(告诫网du)

2023-12-27 03:30

本文主要是介绍python百行代码编码摇骰子模拟器(告诫网du),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有话说

该摇骰子项目起初只是想演示一下所谓的倍压法是否有效,实际测试中也发现如果运气够好的话倍押法是一种比较好的回本方式,但是前提是你有足够的本,如果运气一直差的话最后也会输的啥都不剩,而这一切的前提是你所谓的赌都是处于正常模式下,就是每个概率都是公平的。但是如果du的平台做了一点手脚,那么,别说倍压法回本,倾家荡产只是一瞬间的事。

所以,别相信所谓的网du,里面的水不知道有多深,而我只是尝试了一些小东西,往往搞这些du平台的多多少少熟知一些人的正常心理,比如先给你点甜头,后面再慢慢宰。

本来打算用此做一次大数据实验这个所谓的倍押法的,但是由于上班基本没多少时间,周末又不想动,所以当编码完成后做了一两次实验我就没动过了,结果显而易见,最好的回本方法就是碰都不要碰这些所谓的网du,就算上头了一次了,及时悬崖勒马,及时止损是最好的办法。

整体逻辑

  1. 初始金币
  2. 获得押注
  3. 扣除押注
  4. 随机出现点数,大:小于9点,小:大于9点
  5. 根据押注获得比例,压中大小:2倍。顺子:3倍,豹子:6倍。
  6. 上帝模式:这个是我临时想起来的,做一点手脚后,根本没赢的可能,最好的押注就是平手,而逻辑就是简单的判断你的押注,反向给你出点数,使得你的押注是不可能盈利的。

整体界面演示

在这里插入图片描述

上帝模式(不可能赢)

在这里插入图片描述

整体代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/12/17 20:02
# @Author  : Cxk
# @File    : 摇塞子模拟.py
# @文件下载地址 http://www.cxkboke.top/phone_win_file/%E6%91%87%E9%AA%B0%E5%AD%90%E6%A8%A1%E6%8B%9F.zipimport tkinter
from PIL import Image, ImageTk
import random,time 
import tkinter.messageboxdef new_game():global v,run_now,chiose,gold,chiose_once,is_god,old_goldold_gold=goldrun_now = Falseis_god=Falsechiose_once=Falsechiose={"BIG":0,"SMORT":0,"SHUN":0,"BAO":0}# 添加按钮所实现的功能
def run(count):try:global v,run_now,chiose,gold,chiose_once,is_god,old_goldif run_now:returnis_run = Trueif not chiose_once:now_gold=gold-t1.get()-t2.get()-t3.get()-t4.get()if now_gold<0:tkinter.messagebox.showinfo(title = '提示',message='金币不够下注')returnif CheckVar1.get()==0 and CheckVar2.get()==0 and CheckVar3.get()==0 and CheckVar4.get()==0 or t1.get()==0 and t2.get()==0 and t3.get()==0 and t4.get()==0:tkinter.messagebox.showinfo(title = '提示',message='未进行下注')returnelse:if CheckVar1.get()==1:gold-=t1.get()chiose['BIG']=t1.get()v.set('%s'%str(gold))if CheckVar2.get()==1:gold-=t2.get()chiose['SMORT']=t2.get()v.set('%s'%str(gold))if CheckVar3.get()==1:gold-=t3.get()chiose['SHUN']=t3.get()v.set('%s'%str(gold))if CheckVar4.get()==1:gold-=t4.get()chiose['BAO']=t4.get()v.set('%s'%str(gold))chiose_once=True#print(chiose)if is_god:if chiose['BIG']>chiose['SMORT']:a=[random.randint(1,3) for i in range(0,3)]else:a=[random.randint(3,6) for i in range(0,3)]else:a=[random.randint(1,6) for i in range(0,3)]diceimage = ImageTk.PhotoImage(Image.open("sz/%s.jpg"%a[0]))# 更新图片label1.configure(image=diceimage)label1.image = diceimagediceimage = ImageTk.PhotoImage(Image.open("sz/%s.jpg"%a[1]))# 更新图片label2.configure(image=diceimage)label2.image = diceimagediceimage = ImageTk.PhotoImage(Image.open("sz/%s.jpg"%a[2]))# 更新图片label3.configure(image=diceimage)label3.image = diceimagewait = [a for a in range(50, 200, 10)] + [b for b in range(200, 400, 300 // 2)] + \[c for c in range(400, 600, 120)] + [d for d in range(600, 800, 200)]if count < len(wait):root.after(wait[count], run,count + 1)else:a.sort()if sum(a)>9:gold+=chiose['BIG']*2if sum(a)<9:gold+=chiose['SMORT']*2if a[0]+a[1]==a[2]:gold+=chiose['SHUN']*3if a[0]==a[1] and a[0]==a[2]:gold+=chiose['BAO']*6v.set('%s'%str(gold))#print(old_gold)if gold-old_gold>=0:tkinter.messagebox.showinfo(title = '提示',message='本局押对,获得金币:%s'%str(gold-old_gold))else:tkinter.messagebox.showinfo(title = '提示',message='本局押错,扣除金币:%s'%str(old_gold-gold))new_game()except:new_game()tkinter.messagebox.showerror(title = '提示',message='出错了,请重新')def get_gold(golds):global gold,vgold=goldsv.set('%s'%str(gold))tkinter.messagebox.showinfo(title = '提示',message='金币已重置')def God():global is_godif is_god:tkinter.messagebox.showinfo(title = '提示',message='上帝模式关闭,看运气模式')is_god=Falseelse:tkinter.messagebox.showinfo(title = '提示',message='上帝模式开启,不可能获胜')is_god=Trueif __name__=='__main__':global v,run_now,gold,chiose,chiose_once,is_god,old_goid#初始金gold=5000old_gold=5000is_god=Falsechiose_once=Falsechiose={"BIG":0,"SMORT":0,"SHUN":0,"BAO":0}run_now=False# 创建主窗口root = tkinter.Tk()winWidth = 800winHeight = 400screenWidth = root.winfo_screenwidth()screenHeight = root.winfo_screenheight()x = int((screenWidth - winWidth) / 2)y = int((screenHeight - winHeight) / 2)# 设置窗口初始位置在屏幕居中root.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))root.title("摇塞子模拟")root.resizable(width=False, height=False)#绘制主界面# 图片文件# 使用随机数并生成图像a=[6,6,6]diceimage = ImageTk.PhotoImage(Image.open("sz/%s.jpg"%a[0]))label1 = tkinter.Label(root, image=diceimage)label1.image = diceimage# 放置在窗口中 label1.place(x=55, y=80)diceimage = ImageTk.PhotoImage(Image.open("sz/%s.jpg"%a[1]))label2 = tkinter.Label(root, image=diceimage)label2.image = diceimage# 放置在窗口中 label2.place(x=255, y=80)diceimage = ImageTk.PhotoImage(Image.open("sz/%s.jpg"%a[2]))label3 = tkinter.Label(root, image=diceimage)label3.image = diceimage# 放置在窗口中 label3.place(x=455, y=80)v = tkinter.StringVar()v.set("%s"%gold)label4 = tkinter.Label(root, textvariable=v,fg="red", bg="yellow",font=("微软雅黑", 25, "bold"))label4.pack(side="top",pady=10)pailie=20t1 = tkinter.IntVar()entry = tkinter.Entry(root,textvariable = t1,width = 10)entry.place(x=pailie, y=290)CheckVar1 = tkinter.IntVar()C1 = tkinter.Checkbutton(root,text = "买大(2倍)", variable = CheckVar1,onvalue = 1, offvalue = 0, height=3,width = 10)C1.place(x=pailie+70, y=270)t2 = tkinter.IntVar()entry = tkinter.Entry(root,textvariable = t2,width = 10)entry.place(x=pailie+200, y=290)CheckVar2 = tkinter.IntVar()C2 = tkinter.Checkbutton(root, text = "买小(2倍)", variable = CheckVar2, onvalue = 1, offvalue = 0, height=3,width = 10)C2.place(x=pailie+270, y=270)t3 = tkinter.IntVar()entry = tkinter.Entry(root,textvariable = t3,width = 10)entry.place(x=pailie+400, y=290)CheckVar3 = tkinter.IntVar()C3 = tkinter.Checkbutton(root, text = "顺子(3倍)", variable = CheckVar3,onvalue = 1, offvalue = 0, height=3,width =10)C3.place(x=pailie+470, y=270)t4 = tkinter.IntVar()entry = tkinter.Entry(root,textvariable = t4,width = 10)entry.place(x=pailie+600, y=290)CheckVar4 = tkinter.IntVar()C4 = tkinter.Checkbutton(root, text = "豹子(6倍)", variable = CheckVar4, onvalue = 1, offvalue = 0, height=3,width = 10)C4.place(x=pailie+670, y=270)# 添加按钮 设置按钮样式 实现上面所定义的功能button = tkinter.Button(root, text="摇塞子", width=50,height=3,fg="red", command=lambda:run(0))# 放置在窗口中button.pack(side="bottom",pady=10)# 添加按钮 设置按钮样式 实现上面所定义的功能button = tkinter.Button(root, text="重置金币", width=10,height=3,fg="red", command=lambda:get_gold(5000))# 放置在窗口中button.place(x=100, y=325)# 添加按钮 设置按钮样式 实现上面所定义的功能button = tkinter.Button(root, text="上帝模式", width=10,height=3,fg="red", command=lambda:God())# 放置在窗口中button.place(x=620, y=325)root.mainloop()

这篇关于python百行代码编码摇骰子模拟器(告诫网du)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/541767

相关文章

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J