新人求教:Python掷骰子小游戏编程 5C

各位达人:新人求教,跪求一个Python编程的小游戏,具体内容如下,跪拜叩首感谢!
421骰子游戏规则(Python编程)
1. 421骰子游戏是一个在欧洲国家非常流行的酒吧以及家庭娱乐游戏。
模拟4个玩家;三个骰子,二十一个筹码
2. 如何玩421骰子游戏:
开局,玩法,输赢:(每次游戏,所有的可议定的游戏规则必须在由玩家们在开局之前议定。)
A. 如何开始:
要开始421骰子游戏,必须决定谁先开局,即哪个玩家先开始掷骰子。两个玩家可以先开始掷一个骰子,谁的分数最低,谁开局;也可以是谁的分数最高,谁开局,此规则可以在游戏开始时议定。 然后,每个玩家轮流掷骰子,按顺时针方向。
B. 开局,开始掷三个骰子。
421骰子游戏一般有两局,第一局抢筹码;第二局派光筹码。全部筹码叫做筹码池。第一局抢筹码:谁得到最多筹码,谁赢。在游戏第一局叫“担子”,玩家分配筹码,并且尽可能赢回筹码。每个玩家掷一次骰子,按顺时针方向轮流,直到五轮,第一局结束。
C. 输赢
第二局,开局,第一局谁赢了,谁开局。在游戏第二局叫“分流”,玩家尽可能将筹码用完,派给其他玩家,自己手上越少越好,直到派光。例如,得到421最佳组合后,可以将10个筹码派给此轮掷骰子得分最低的筹码组合获得者,谁的筹码派光了,谁赢。
3. 所有骰子组合:
a. 三个骰子的组合为:6*6*6 = 216种可能
b. 得到421的可能:124, 142, 214, 241, 412, 421六个组合。6 / 216 = 1 / 36
c. 得到666,555,444,333,222,111的可能:六个组合。6 / 216 = 1 / 36
d. 得到30 种两个相同数字与一个不同数字组合 :112 113 114 115 116 ;122 223 224 225 226 ;133 233 334 335 336 ;144 244 344 445 446 ;155 255 355 455 556 ;166 266 366 466 566 ,三十个组合。此组合再乘3,例如112 121 211,得到30*3= 90 / 216
e. 得到三个不同数字组合:123 124 125 126 134 135 136 145 146 156 ,234 235 236 245 246 256 ,345 346 356,456 ,二十个组合。此组合再乘以6, 得到 20*6 = 120 / 216 (包括6个“421”:124, 142, 214, 241, 412, 421)
f. 共计216种组合。
分配多少筹码是由投出的骰子组合所决定的。以下是骰子组合与筹码的对应表:
骰子组合 对应筹码个数
421得 10 个筹码;
111得 7 个筹码;
116 或者 666 得 6 个筹码;
115 或者 555 得 5 个筹码;
114 或者 444 得 4 个筹码;
113 或者 333 得 3 个筹码;
112 或者 222 得 2 个筹码;
顺子 (例如 123; 234; 345;或者 456等等) 2 个筹码;
所有其他组合 1 个筹码
4. 此程序可以进行100000次模拟游戏。

2个回答

 #!/usr/bin/python
#coding:utf8

import random
import time

def get_dice():
    return random.randint(1,7)

def the_open(player_dice,computer_dice):
    print '双方开:'
    time.sleep(1)
    print '玩家:' + str(player_dice)
    time.sleep(1)
    print '电脑:' + str(computer_dice)
    time.sleep(1)

def every_game(player_money,computer_money):
    print 'Get Ready~~~'
    time.sleep(1)
    print 'Go!'
    time.sleep(2)
    print "双方筹码:"
    print '玩家:' + str(player_money)
    print '电脑:' + str(computer_money)
    time.sleep(2)
    print '玩家掷点:',
    time.sleep(1)
    player_dice = get_dice()
    print '您得到的点数为' + str(player_dice)
    time.sleep(2)
    print '电脑掷点:',
    time.sleep(1)
    computer_dice = get_dice()
    print '电脑掷点完毕!'
    time.sleep(1)
    result = raw_input('玩家方先下注,是否下注?[y/N]')
    if result.lower() == 'y':
        while True:
            player_bets = input('选择下注范围:[1-{0}]'.format(player_money))
            if player_bets >= 1 and player_bets <= player_money:
                break
        print '玩家下注{0}'.format(player_bets)
        time.sleep(1)
        print '电脑思考中...',
        time.sleep(2)
        if random.choice('yn') == str('y'):
            computer_bets = random.randint(1,computer_money)
            print '电脑下注{0}'.format(computer_bets)
            time.sleep(1)
            the_open(player_dice,computer_dice)
            if player_dice > computer_dice:
                print '玩家胜!玩家赢得筹码{0}'.format(computer_bets)
                player_money += computer_bets
                computer_money -= computer_bets
            elif player_dice == computer_dice:
                print '平局!双方收回各自筹码!'
            else:
                print '电脑胜!玩家输掉筹码{0}'.format(player_bets)
                player_money -= player_bets
                computer_money += player_bets
        else:
            print '电脑放弃下注!玩家收回自己的筹码!'
            time.sleep(1)
            the_open(player_dice,computer_dice)
    else:
        print '玩家放弃下注,本局放弃!'
        time.sleep(1)
        the_open(player_dice,computer_dice)
    return [player_money,computer_money]

def play_game():
    print '游戏开始!'
    player_money = 100
    computer_money = 100
    time.sleep(1)
    while player_money != 0 and computer_money != 0:
        money_list = every_game(player_money,computer_money)
        player_money = money_list[0]
        computer_money = money_list[1]
    if player_money == 0:
        print 'You Lose!'
    else:
        print 'You Win!'

if __name__ == '__main__':
    play_game()
icomstudo
icomstudo 具体游戏规则详见提问。这是一个欧洲掷骰子游戏,与普通掷骰子游戏不同。
接近 3 年之前 回复
icomstudo
icomstudo 外加筹码(类似代币卷,圆形的),骰子组合 对应筹码个数:421得10 个筹码111得7 个筹码;116 或者 666 得 6 个筹码;115 或者 555 得5 个筹码; 114 或者 444 得4 个筹码;113 或者 333 得3 个筹码;112 或者 222 得 2 个筹码;顺子 (例如 123; 234; 345;或者 456等等) 2 个筹码;所有其他组合 1 个筹码
接近 3 年之前 回复
icomstudo
icomstudo 模拟4个玩家;三个骰子;二十一个筹码
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Linux小游戏——单机掷骰子
一、前言 最近在阅读《unix-linux编程实践教程》,这本书很适合学习完Linux基础编程后想码点东西实践的朋友。它主要是通过带领读者学习编写Linux系统中常用的命令(ls、more等)来巩固基础知识。本人从中收获颇丰,在这里推荐给各位想学习Linux系统编程的朋友。下载路径:https://download.csdn.net/download/q1449516487/10724621 ...
H5小游戏掷骰子
关于HTML5掷骰子的小游戏,用于学习基础HTML5的游戏编写。
C#项目掷骰子——小游戏
我们学校的资源;是个c#语言写的;可以说是个小游戏吧!里面有几个经典的循环哦!需要的朋友可以下载哦!
android掷骰子小游戏
一个简单的小游戏、拿来练手是很不错的
设计一个掷骰子的小游戏
在每局开始的时候有固定的硬币数,每次可以押若干枚硬币,然后猜测骰子的大小(三枚骰子总和大于10就是大,反之是小)。如果猜对则把押入的硬币退回给游戏者,并且将等量的硬币奖励给游戏者。如果猜错硬币被游戏机吃掉。当硬币数为0则,游戏结束。
一个简单的掷骰子小游戏
&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
html5掷骰子小游戏
一个html5小游戏,可以用来学习画布的一些基本操作以及js的一些操作
自己编的掷骰子的小游戏
自己编的掷骰子的小游戏,VB编写,大家共享,呵呵呵~~
python 掷骰子
import random CHOICES = ['big', 'small'] INIT_MONEY = 1000 def bet(int_money): """进行每局游戏""" str_choice = get_str_choice() int_bet_money = get_int_bet_money(int_money) # 返回三个骰子的点数 ...
Flash源文件 掷骰子比大小小游戏
这是一个猜大小的小游戏,11点以下为小,以上为大,三个相同为豹子。
Python编程学习笔记 - 使用Pygal模拟掷骰子
我们将使用Python可视化包Pygal来生成可缩放的矢量图形文件。对于需要在尺寸不同的屏幕上显示的图表,这很有用,因为它们将自动缩放,以适合观看者的屏幕。如果你打算以在线方式使用图表,请考虑使用Pygal来生成它们,这样它们在任何设备上显示都会很美观。 1. 创建Die类 下面的类模拟掷一个骰子: die.py 原代码 from random import randint class Di...
猜拳小游戏编程(python)
import random d = {0:'石头',1:'剪刀',2:'布'}#创建字典 '''猜拳函数''' def guess_game(player): computer = random.randint(0, 2)#电脑随机产生0-2 if (player == 0 and computer == 1) or (player == 1 and computer == 2)...
新人求教 Python SHELL Perl
新人求教rnrn哦平时的工作主要是LINUX的管理等!!! 用下面那个号呢? 还是都要学习啊?rnrnPython SHELL Perl
Python新人求教一个问题
[img=https://img-bbs.csdn.net/upload/201802/13/1518514572_891183.png][/img][img=https://img-bbs.csdn.net/upload/201802/13/1518514586_69148.png][/img]rn具体情况如上图,显示的那样,用eclipse的pydev进行开发,出现了以上情况,虽然,不影响开发;但是,有强迫症。不知道如何解决
python模拟掷骰子
下面的类模拟掷一个骰子:使用这个类来创建图表前,先来掷 D6 骰子,将结果打印出来,并检查结果是否合理:为分析掷一个 D6 骰子的结果,我们计算每个点数出现的次数有了频率列表后,我们就可以绘制一个表示结果的直方图。 直方图 是一种条形图,指出了各种结果出现的频率。创建这种直方图的代码如下:
python分析掷骰子游戏
最近学习了点统计学及python知识,试着分析下掷骰子游戏。骰子按标准6面,分析一次投1颗、2颗、3颗、4颗,投掷10、100、1000、10000次时的结果。 使用工具 Jupyter Notebook 分析利器 matplotlib、pygal 可视化包 1、猜次数 1-6中每个数字出现的次数 # 导入包 import pygal import numpy a...
python:lec08-模拟掷骰子
lec08-模拟掷骰子 一、v3.0新增功能:可视化投掷两个骰子结果(matplotlib) """ 版本:3.0 v1.0功能:模拟掷骰子 v2.0新增功能:模拟投掷两个骰子(zip()函数) v3.0新增功能:可视化投掷两个骰子结果(matplotlib) """ import random import matplotlib import matplotlib.pyplot as...
python编程—猜数字小游戏
题目及要求:猜数字游戏 1.系统随机生成一个1~100的数字; 2.用户共有5次机会猜; 3.如果用户猜测数字大于系统给出的数字,打印&quot;too big&quot; 4.如果用户猜测数字小于系统给出的数字,打印&quot;too small&quot; 5.如果用户猜测的数字等于系统给出的数字,打印&quot;Right&quot;, 并退出循环 完整代码如下: &quot;&quot;&quot; # _*_coding:utf-...
python编程小游戏汉诺塔hanoi
这是使用python语言编程的小游戏,汉诺塔hanoi,欢迎大家下载
VB编程:掷骰子游戏-55
Private Sub Command1_Click()     Timer1.Enabled = True  '开始      End Sub Private Sub Command2_Click()     Timer1.Enabled = False   '停止     num = Int(Rnd * 6) + 1     Label1.Caption = ...
掷骰子
from random import randintclass Die(): def __init__(self,sides=6): self.sides=sides def roll(self): return randint(1,self.sides)首先我们创建了一个类,命名为Die()。方法__init__()接受一个可选参数sides,作为骰子的面数,如果没有指定任何实参,则默认骰子...
求教 新人求教
在myeclipse中运行出现这些错误 求高人指点 万分感谢rn信息: Server startup in 2181 msrnjava.lang.ClassNotFoundException: com.oracle.jdbc.Driverrn at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)rn at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)rn at java.lang.ClassLoader.loadClassInternal(Unknown Source)rn at java.lang.Class.forName0(Native Method)rn at java.lang.Class.forName(Unknown Source)rn at util.DB.(DB.java:16)rn at manager.UserManager.checkUser(UserManager.java:51)rn at manager.UserManager.insertUser(UserManager.java:66)rn at servlet.RegisterServlet.doGet(RegisterServlet.java:23)rn at servlet.RegisterServlet.doPost(RegisterServlet.java:34)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)rn at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)rn at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)rn at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)rn at java.lang.Thread.run(Unknown Source)rnjava.sql.SQLException: No suitable driverrn at java.sql.DriverManager.getConnection(Unknown Source)rn at java.sql.DriverManager.getConnection(Unknown Source)rn at util.DB.(DB.java:26)rn at manager.UserManager.checkUser(UserManager.java:51)rn at manager.UserManager.insertUser(UserManager.java:66)rn at servlet.RegisterServlet.doGet(RegisterServlet.java:23)rn at servlet.RegisterServlet.doPost(RegisterServlet.java:34)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)rn at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)rn at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)rn at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)rn at java.lang.Thread.run(Unknown Source)rn2014-8-28 11:18:30 org.apache.catalina.core.StandardWrapperValve invokern严重: Servlet.service() for servlet RegisterServlet threw exceptionrnjava.lang.NullPointerExceptionrn at util.DB.(DB.java:31)rn at manager.UserManager.checkUser(UserManager.java:51)rn at manager.UserManager.insertUser(UserManager.java:66)rn at servlet.RegisterServlet.doGet(RegisterServlet.java:23)rn at servlet.RegisterServlet.doPost(RegisterServlet.java:34)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)rn at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)rn at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)rn at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)rn at java.lang.Thread.run(Unknown Source)
新人求教!
有个问题在网上各种找解决方案无果。rnrn错误:rnHTTP Status 404 - /abc/rnrntype Status reportrnrnmessage /abc/rnrndescription The requested resource is not available.rnrnApache Tomcat/7.0.42rnrnrnabc是在webapps目录下的一个目录,我在里面放了一个hello.jsp文件,tomcat启动后我访问localhost:8080/manager/htmlrn然后再点击abc这个目录就报了这个错误。rn我把hello.jsp放在ROOT目录下可以正常打开rnrnTomcat Version JVM VersionrnApache Tomcat/7.0.42 1.7.0_25-b17rnrnweb.xml文件的内容:rn[code=text]rnrnrnrn Tomcat Documentationrn rn Tomcat Documentation.rn rnrn[/code]rn
新人求教!!
最近刚刚接触linux和android系统,遇到一个问题请教大虾们:rnrn一条shell命令用来把3g 网卡mount起来rnmount -t usbfs none /proc/bus/usbrnrn在adb shell上能顺利执行,但是写成mnt.shrnrn#!/system/bin/shrnmount -t usbfs none /proc/bus/usbrnrn在adb shell上就没法执行了,出错信息是:rnmnt.sh:not found rnrn我已经chmod 777 mnt.sh成功了。是不是我的脚本文件有问题啊?rnrn如果我想把上述的mount命令在c语言文件里面执行用什么函数啊?我试了execlp, system这些命令都没有成功!苦于刚刚接触linux所以还请大虾们不吝赐教!!
新人求教
import java.io.*;rnimport java.util.*;rnpublic class compareStrrnrn public void compareStr(String a,String b)rn boolean m = Arrays.equals(InsortStr(a),InsortStr(b));rn if(m)rn System.out.println("the two strings is match");rn elsern System.out.println("the two strings is not match");rn rn public char[] InsortStr(String a)rn char[]c = a.toCharArray();rn Arrays.sort(c);rn return c;rn rnpublic static void main(String[] args)rn System.out.println("please input two strings split with space");rn BufferedReader br = new BufferedReader(new InputStreamReader(System.in));rn tryrn String s = br.readLine();rn System.out.println(s);rn String[] names = s.split(" ");rn for (int i=0;i
新人求教..............
public static void main (String[] args)rn中main函数里面是什么意思??rn为什么用数组??
求教,新人
[code=C/C++][/code]typedef struct _studentrnrn CString strName;rn CString strAge;rn CString strSex;rn CString strStart;rn CString strEnd;rn CString strGrade;rnInfoite;rnrnclass CDBControl rnrnpublic:rnrn CDBControl();rn virtual ~CDBControl();rn void DBConnection();rn void ExeQuery(CString strCommand);rn void AddItem_member(Infoite oInstru);rn void GetItem_menber(Infoite oInstru);rnrnpublic:rn _ConnectionPtr m_pConnection;rn _RecordsetPtr m_pRecordset;rn;rn大家帮我看一下上面那个结构体的定义,有问题吗?为什么我在.h里面定义的这个结构体,在.CPP里面使用会出现rnE:\TANGLX\MemberOri\DBControl.cpp(37) : error C2511: 'GetItem_menber' : overloaded member function 'void (struct CDBControl::_student &)' not found in 'CDBControl'rn e:\tanglx\memberori\dbcontrol.h(15) : see declaration of 'CDBControl'rn这个错误?
新人求教~~
本人刚学Java几天,学到数据类型转换时不太明白。rn书上有一个作业是:编写Java程序,并将所有整数型数值全部转换成int型,并将转换后的值输出。rn大神们能教教我这个该怎么写吗?谢谢啦!
新人求教。
我新学的C语言! liunx 系统 进入终端 打 vi aaaa.crnrn#include rnint main (void)rnrn int n, n2, n3;rn rn n = 2;rn n2 = n * n;rn n3 = n2 * n2;rnprintf ("n = %d, n2 = %d, n3 = %d \n". n, n2, n3);rnreturn 0;rnrnrngcc aaaa.crnaaaa.c:在函数‘main’中:rnaaaa.c:8:36:错误:在非结构或联合中请求成员'n'rnrn怎么回事 以前不会这样的,
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池