python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。
python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。看起来就像是这样:

好,现在我们就开始来制作小游戏了:
我们先来梳理一下这个小游戏的程序设计思路:

首先,我们先来构造可以摇骰子的函数,这个函数其实不需要输入任何参数,调用后会返回储存着摇出来的三个点数结果的列表:
#可以摇骰子的函数
def roll_dice(numbers=3,points=None):
print('<<<<<ROLL THE DICE!>>>>>')
if points is None:
points=[];
while numbers>0:
point=random.randrange(1,7)
points.append(point)
numbers=numbers-1
return points
接着,我们在用一个函数老将点数转化成代销,并使用if语句来定义什么是大,什么是小:
#将点数转化为大小的函数
def roll_result(total):
isBig=11<=total<=18
isSmall=3<=total<=10
if isBig:
return 'Big'
elif isSmall:
return 'Small'
最后,创建一个开始游戏的函数,让用户输入猜大小,并定义什么是猜对,什么是猜错,并输出对应的输赢结果。
#创建开始游戏的函数
def start_game():
print('<<<<<GAME STARTS!>>>>>')
choices=['Big','Small']
your_choice=input('Big or Small:')
if your_choice in choices:
points=roll_dice();
total=sum(points)
youWin=your_choice==roll_result(total)
if youWin:
print('The points are ',points,'You win!')
else:
print('The points are ',points,'You lose!') else:
print('Invvalid Words')
start_game() start_game()
好了,游戏的制作过程至此结束
python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。的更多相关文章
- Python把同一个对象循环赋值给另外一个变量
		
Python把同一个对象循环赋值给另外一个变量,修改一个对象,其他对象也修改了 >>> row=['_'] * 3 >>> board = [] >>& ...
 - Python条件判断和循环,range()函数
		
条件判断经常使用if语句进行判断,表达方式为:if 条件语句: :elif:else if...用于执行第一条不满足if的判断,继续执行其它的判断.比如一个简单的if判断 Python3取消 ...
 - python入门(三):分支、循环、函数
		
1.分支 if循环格式:if condition_1: statement_block_1elif condition_2: statement_block_2else: statement_bloc ...
 - python 循环语句   函数   模块
		
python循环语句 while循环语法结构 当需要语句不断的重复执行时,可以使用while循环 while expression: while_suite 语句ehile_suite会被连续不断的循 ...
 - pow函数(数学次方)在c语言的用法,两种编写方法实例( 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值)
		
关于c语言里面pow函数,下面借鉴了某位博主的一篇文章: 头文件:#include <math.h> pow() 函数用来求 x 的 y 次幂(次方),x.y及函数值都是double型 , ...
 - 【Python基础学习二】定义变量、判断、循环、函数基本语法
		
先来一个愉快的Hello World吧,就是这么简单,不需要写标点符号,但是需要严格按照缩进关系,Python变量的作用域是靠tab来控制的. print("Hello World" ...
 - python实现简单的循环购物车小功能
		
python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...
 - Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer  关于Newtonsoft.Json,LINQ to JSON的一个小demo  mysql循环插入数据、生成随机数及CONCAT函数  .NET记录-获取外网IP以及判断该IP是属于网通还是电信  Guid的生成和数据修整(去除空格和小写字符)
		
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
 - 选择、循环与函数结构:MATLAB VS Python
		
选择.循环与函数结构:MATLAB VS Python 整理基本的程序控制结构,主要是选择 和 循环. 1.MATLAB选择结构 (1)单分支if语句格式: if 条件 语句组 end (2)双分支i ...
 
随机推荐
- Centos7 下安装VMware tools
			
1:先在虚拟机点击安装VMware Tools 2:然后挂载 mount /dev/cdrom /mnt 3:进入/mnt,可以看到有 4:拷贝VMwareTools到其他 ...
 - docker-compose 安装redis sentinel,共享主机网络模式
			
采坑记录: docker sentinel模式安装完后因为是使用bridge模式,所以只有docker中运行的程序才能访问.刚开始尝试使用端口映射,返现sentinel返回的地址依然是docker的内 ...
 - docker4种网络最佳实战  --摘自https://www.cnblogs.com/iiiiher/p/8047114.html
			
考: http://hicu.be/docker-container-network-types docker默认3中网络类型 参考: https://docs.docker.com/engine/u ...
 - AndroidStudio 开发JNI
			
Android版本不断更新,发现网上很多JNI的教程,都不太适用了,会遇到各种问题,今天自己来总结一个. NDK下载 我们下载NDK,有两种下载方式: 这是Google官方下载 点击下载NDK: 通过 ...
 - vim常用操作和使用技巧
			
vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中 ...
 - JAVA多线程17个问题
			
1.Thread 类中的start() 和 run() 方法有什么区别? Thread.start()方法(native)启动线程,使之进入就绪状态,当cpu分配时间该线程时,由JVM调度执行run( ...
 - openstack网络
			
OpenStack中neutron的2种ip.3种管理模式 Nova有固定IP和浮动IP的概念.固定IP被分发到创建的实例不再改变,浮动IP是一些可以和实例动态绑定和释放的IP地址. Nova支持3种 ...
 - Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
			
今天在测试项目代码时,在idea中配置tomcat7插件运行后一直报如下错误: 解决方案:看了网上大多数办法都是修改xml文件配置,感觉并不适用,最后看到比较靠谱解释如下: pom.xml中jar包发 ...
 - Mysql 日期加减
			
mysql表中有一些字段是显示日期的.因为各种需要,需要将它时间往后调整1年. mysql 日期增加一年的更新语句更新的语句如下: UPDATE table SET date = DATE_A ...
 - MYSQL性能优化(2)
			
Insert语句优化 1. 多行并为一个语句 insert into table values (行1),(行2),........... 2. 使用中间内存队列, 逻辑是立马执行插入,其他数据放 ...