Python实现国外赌场热门游戏Craps(双骰子)

 更新时间:2015年03月31日 17:20:27   投稿:hebedich  
这篇文章主要介绍了Python实现国外赌场热门游戏Craps(双骰子)的源码及运行方法,十分简单,有需要的小伙伴可以参考下。

运行方法:

    1. 打开python2 IDLE;
    2. 输入 from craps import *
    3. 按提示输入运行命令。例如,玩游戏就输入play();查看余额就输入check_bankroll();
        自动玩看胜率就输入auto()

craps.py

import random
 
point_set = False
bet = 10
bankroll = 1000
sim_win = 0
sim_lose = 0
 
print """
     Welcome to the 'Seven Star' casino!
     You are playing craps now,
     your started bankroll is '$1000',
     the started bet is '$10',
     command: 
       play(): "Rolling the dices"
       check_bankroll(): "Checking your current balance"
       all_in(): Showing "hand"
       set_bet(): "Setting a new bet"
       game(): "Check your game status"
       auto(): "It can be played automatically for you until reach a specific bankroll"
"""
 
def roll():
  d1 = random.randrange(1,7)
  d2 = random.randrange(1,7)
  print "You rolled", d1, "+", d2, "=", d1+d2
  return d1 + d2
   
def play():
   
  global point_set, bankroll, point
  global sim_win, sim_lose
   
  if bankroll < bet:
    print "Sorry, you can't play since you don't have enough money!"
    print """Do you wanna get more money?
        1: Yes
        2: No
       """
    choice = raw_input(">>")
    if choice == str(1):
      money = raw_input("How much do you wanna get?")
      bankroll += int(money)
      print "Your current bankroll is: ", bankroll
    if choice == str(2):
      print "Thanks for playing! See you next time!"
  else:
    if not point_set:
      print
      print "New game. Your bet is: ", bet
     
    # for the first roll
    r = roll()
    if not point_set:
      if r in (7, 11):
        bankroll += bet
        sim_win += 1
        print "Congratz! You Won! Your bankroll is: ", bankroll
      elif r in (2, 3, 12):
        bankroll -= bet
        sim_lose += 1
        print "Oops! You lost! Your bankroll is: ", bankroll
      else:
        point = r
        point_set = True
        print "Your point is", "[", point, "]"
    # for subsequence rolls
    elif r == 7:
      bankroll -= bet
      sim_lose += 1
      point_set = False
      print "You crapped out! Your bankroll is: ", bankroll 
    elif r == point:
      bankroll += bet
      sim_win += 1
      point_set = False
      print "You made your point! Your bankroll is: ", bankroll
                  
def set_bet(inp):
  global bet, bankroll, point_set
  print
  if point_set:
    print "WARNING!"
    print "The game has started, you will lose half of your bet if resetting your bet!"
    prompt = raw_input("""
      1: Yes, I am wanna reset my bet!
      2: No, I don't wanna reset my bet!
              """)
    if prompt == "1":
      point_set = False
      bankroll -= bet/2
      print "Forfeiting current bet. Your bankroll is: ", bankroll
    else:
      pass
  bet = int(inp)
  print "New bet size is: ", bet
 
def all_in():
    set_bet(bankroll)
     
def check_bankroll():
  global bet
  print "Your current balance is: ", bankroll
   
def game():
  total = sim_win + sim_lose
  percent = float(sim_win)/total * 100
  print "So far, the games that you have been playing are: ", total 
  print "Won ", sim_win
  print "Lost ", sim_lose
  print "Overall, you have %d%% to win!" %percent
   
def auto():
  game_status = True
  purpose = raw_input("How much are you gonna reach? ")
  while game_status:
    play()
    if bankroll == int(purpose) or bankroll == 0:
      game_status = False
     
  game()

以上所述就是本文的全部内容了,希望能够对大家学习Python有所帮助。

相关文章

  • python样条插值的实现代码

    python样条插值的实现代码

    这篇文章主要为大家详细介绍了python样条插值的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 一文搞懂Python中Pandas数据合并

    一文搞懂Python中Pandas数据合并

    pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效操作大型数据集的工具。pandas提供大量快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python强大而高效的数据分析环境的重要因素之一
    2021-11-11
  • python中的print()函数end=' '的使用及说明

    python中的print()函数end=' '的使用及说明

    这篇文章主要介绍了python中的print()函数end=' '的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python OpenCV实现简单的颜色识别功能(对红色和蓝色识别并输出)

    Python OpenCV实现简单的颜色识别功能(对红色和蓝色识别并输出)

    Python OpenCV可以用来进行颜色识别,可以通过读取图像的像素值,来判断像素点的颜色,从而实现颜色识别,这篇文章主要给大家介绍了关于Python OpenCV实现简单的颜色识别功能(对红色和蓝色识别并输出)的相关资料,需要的朋友可以参考下
    2023-12-12
  • selenium鼠标操作实战案例详解

    selenium鼠标操作实战案例详解

    在实际场景中,会有单击、长时间单击、双击、右键、拖拽等鼠标操作,selenium提供了名为ActionChains的类来处理这些操作,下面这篇文章主要给大家介绍了关于selenium鼠标操作实战案例的相关资料,需要的朋友可以参考下
    2023-05-05
  • tensorflow入门之训练简单的神经网络方法

    tensorflow入门之训练简单的神经网络方法

    本篇文章主要介绍了tensorflow入门之训练简单的神经网络方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Python中selenium获取token的方法

    Python中selenium获取token的方法

    本文主要介绍了Python中selenium获取token的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python实现差分隐私Laplace机制详解

    python实现差分隐私Laplace机制详解

    今天小编就为大家分享一篇python实现差分隐私Laplace机制详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 解决python多行注释引发缩进错误的问题

    解决python多行注释引发缩进错误的问题

    今天小编就为大家分享一篇解决python多行注释引发缩进错误的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Django前后端分离csrf token获取方式

    Django前后端分离csrf token获取方式

    这篇文章主要介绍了Django前后端分离csrf token获取方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论