这里有新鲜出炉的 Python 入门,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
本篇文章主要介绍如何用 Python 设计一个经典小游戏:猜大小。具有很好的参考价值。下面跟着小编一起来看下吧
本文主要介绍如何用 Python 设计一个经典小游戏:猜大小。
在这个游戏中,将用到前面我介绍过的所有内容:变量的使用、参数传递、函数设计、条件控制和循环等,做个整体的总结和复习。
游戏规则:
初始本金是 1000 元,默认赔率是 1 倍,赢了,获得一倍金额,输了,扣除 1 倍金额。
程序运行结果是这样的:
现在,我们来梳理下思路。
梳理清楚思路后,接下来开始敲代码。
摇骰子:
定义 roll_dice 函数,3 个骰子,循环次数 numbers 为 3,骰子点数 points 初始值为空,这里的参数传递用到的是之前讲到的关键词参数传递。
随机数生成用 import random 来实现。Python 中最方便的就是有很多强大的库支持,现在我们可以直接导入一个 random 的内置库,用它来生成随机数。如:
- 1 import random
- 2 point = random.randrange(1,7)
- 3 # random.randrange(1,7)生成1-6的随机数
- 4 print(point)
print(point) 后可以看到打印出的随机数,每次运行结果都是随机的。
接下来我们看下摇骰子这部分的完整代码:
- import random
- def roll_dice(numbers = 3,points = None):
- print('----- 摇骰子 -----')
- if points is None:
- points = []
- # points为空列表,后续可以插入新值到该列表
- while numbers > 0:
- point = random.randrange(1,7)
- points.append(point)
- # 用append()方法将point数值插入points列表中
- numbers = numbers - 1
- # 完成一次,numbers减1,当小于等于0时不再执行该循环
- return points
定大小:
11≤骰子总数≤18 为大,3≤骰子总数≤10 为小,代码如下:
- def roll_result(total):
- isBig = 11 <= total <=18
- isSmall = 3 <= total <= 10
- if isBig:
- return '大'
- elif isSmall:
- return '小'
玩游戏:
初始本金 1000 元,默认赔率 1 倍;赢了,获得一倍金额,输了,扣除 1 倍金额;本金为 0 时,游戏结束。
- def start_game():
- your_money = 1000
- while your_money > 0:
- print('----- 游戏开始 -----')
- choices = ['大','小']
- # choices赋值为大和小,用户需输入二者之一为正确
- your_choice = input('请下注,大 or 小:')
- your_bet = input('下注金额:')
- if your_choice in choices:
- points = roll_dice()
- # 调用roll_dice函数
- total = sum(points)
- # sum为相加,将3个骰子的结果相加
- youWin = your_choice == roll_result(total)
- if youWin:
- print('骰子点数:',points)
- print('恭喜,你赢了 {} 元,你现在有 {} 元本金'.format(your_bet,your_money + int(your_bet)))
- # your_bet是字符串格式,这里需要转化为int类型进行计算
- your_money = your_money + int(your_bet)
- # 最新本金
- else:
- print('骰子点数:',points)
- print('很遗憾,你输了 {} 元,你现在有 {} 元本金'.format(your_bet, your_money - int(your_bet)))
- your_money = your_money - int(your_bet)
- else:
- print('格式有误,请重新输入')
- # 如果输入的不是choices列表中的大或小,则为格式有误
- else:
- print('游戏结束')
- start_game()
到这里,我们就完成了该游戏三大部分的设计,大家一定要仔细思考,梳理设计思路,动手敲出代码才好。
最后,附【猜大小】游戏的完整代码:
- import random
- def roll_dice(numbers = 3,points = None):
- print('----- 摇骰子 -----')
- if points is None:
- points = []
- while numbers > 0:
- point = random.randrange(1,7)
- points.append(point)
- numbers = numbers - 1
- return points
- def roll_result(total):
- isBig = 11 <= total <=18
- isSmall = 3 <= total <= 10
- if isBig:
- return '大'
- elif isSmall:
- return '小'
- def start_game():
- your_money = 1000
- while your_money > 0:
- print('----- 游戏开始 -----')
- choices = ['大','小']
- your_choice = input('请下注,大 or 小:')
- your_bet = input('下注金额:')
- if your_choice in choices:
- points = roll_dice()
- total = sum(points)
- youWin = your_choice == roll_result(total)
- if youWin:
- print('骰子点数:',points)
- print('恭喜,你赢了 {} 元,你现在有 {} 元本金'.format(your_bet,your_money + int(your_bet)))
- your_money = your_money + int(your_bet)
- else:
- print('骰子点数:',points)
- print('很遗憾,你输了 {} 元,你现在有 {} 元本金'.format(your_bet, your_money - int(your_bet)))
- your_money = your_money - int(your_bet)
- else:
- print('格式有误,请重新输入')
- else:
- print('游戏结束')
- start_game()
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持 PHPERZ!
来源: http://www.phperz.com/article/17/0610/335418.html