python 简单的掷骰子猜大小


完成猜大小游戏

规则如下:
  投掷3个骰子,如果3个骰子之和小于10为小,大于等于10为大
步骤分解:

    • 请用户输入大或小(用0,1代替)
    • 投掷3个骰子,使用random库中的randint函数生成骰点大小,并依次输出骰点
    • 计算骰点大小,判断用户输赢,并给出结果

代码如下:

import random
# 筛子的定义部分 图视化输出骰子 
dice_tpl= '''\
 ┌───┐ , ┌───┐, ┌───┐, ┌───┐, ┌───┐, ┌───┐
 │   │ , │ ● │, │●  │, │● ●│, │● ●│, │● ●│
 │ ● │ , │   │, │ ● │, │   │, │ ● │, │● ●│
 │   │ , │ ● │, │  ●│, │● ●│, │● ●│, │● ●│
 └───┘ , └───┘, └───┘, └───┘, └───┘, └───┘'''
dice_lines = dice_tpl.split('\n')           #根据 \n 拆分 
for m in range(5):
    dice_lines[m] = dice_lines[m].split(','
dice = ['','','','','','']
for n in range(6):
    dice[n] = dice_lines[0][n]+'\n'+dice_lines[1][n]+'\n'+dice_lines[2][n]+'\n'+dice_lines[3][n]+'\n'+dice_lines[4][n]
print('''\n-----欢迎来到掷骰子猜大小游戏------
规则如下:
  投掷3个骰子,如果3个骰子之和小于10为小,大于等于10为大\n ''')
use = int(input("请猜测结果1(大)或0(小):"))
a1 = random.randint(1,6)
a2 = random.randint(1,6)
a3 = random.randint(1,6)
print("\n第一个骰子结果为", a1)
print("第二个骰子结果为", a2)
print("第三个骰子结果为", a3)
print(dice[a1-1])
print(dice[a2-1])
print(dice[a3-1])
sum = a1 + a2 + a3
if sum < 10:
    flag = 0
    print("输出结果为小\n")
else:
    flag = 1
    print("输出结果为大\n")
# 调用函数来实现掷骰子 
#print('本次掷骰子的结果为:')
if use == flag:           
    print('你猜的结果正确')
else:
    print('你猜的结果错误')

主要用到字符串的分割相关知识

下面是骰子的模版定义,分析其特征,利用str.split函数:

  • 先用换行('\n')分隔符拆分为行,组成list
  • 再用换行(',')分隔符拆分每个骰点(1~6)的部分

将每个骰点(1~6)的部分拼接,形成每个骰点的list

代码如下:

dice_tpl= '''\
 ┌───┐ , ┌───┐, ┌───┐, ┌───┐, ┌───┐, ┌───┐
 │   │ , │ ● │, │●  │, │● ●│, │● ●│, │● ●│
 │ ● │ , │   │, │ ● │, │   │, │ ● │, │● ●│
 │   │ , │ ● │, │  ●│, │● ●│, │● ●│, │● ●│
 └───┘ , └───┘, └───┘, └───┘, └───┘, └───┘'''
dice_lines = dice_tpl.split('\n')           #根据 \n 拆分 
print("根据\\n拆分完后的结果:\n",dice_lines)
#    将每个都进行 拆分 例:dice_lines[2] = dice_lines[2].split(',')
for m in range(5):
    dice_lines[m] = dice_lines[m].split(',')
dice = ['','','','','','']
# 通过字符串拼接 给dice[i]] 赋值   要认真找拼接的规律 
for n in range(6):
    dice[n] = dice_lines[0][n]+'\n'+dice_lines[1][n]+'\n'+dice_lines[2][n]+'\n'+dice_lines[3][n]+'\n'+dice_lines[4][n]
for i in range(6):
    print(dice[i])
 
备注:文档格式问题,传的代码可能会自动换行,如果想要ctrl+c 代码的话,
记得把dice_tpl中 换行符都删掉,要达到以下效果即可顺利运行

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM