2021-09-26

在这里插入代码片
# -*- coding: utf-8 -*-
"""
Created on Mon Sep 6 21:58:12 2021
@author: oldseaman
"""
'''
湖北省 九年级信息教材:第二单元 python 编程进阶 《石头剪刀布》
编写一个简单交互式的游戏
1、人和电脑进行“石头、剪刀、布”的游戏。Rock-paper-scissors(RPS西方人规定顺序) 游戏
2、电脑随机出一个值:“石头、剪刀、布”中其一,此值不显示,学生不可知。学生凭感觉也输入一个值,争取战胜电脑。
3、根据法则决定胜负,最后统计人与电脑的胜负值。

本程序学习巩固的知识:
变量类型,一般变量,元组,列表,字典
输入语句、条件判断、循环、自定义函数
导入随机模块,以及随机模块中的函数choice()应用
'''
#定义说明:'1'="石头" '2'="剪刀" '3'="布"
#数字键盘锁住,由小键盘输入数字。num灯亮
# 加载随机函数模块
from random import choice

#定义各种数据类型的变量
num_rsp=('1','2','3') #定义一个元组
dict_rsp={'1':"石头",'2':"剪刀",'3':"布"} #定义一个字典

#提示信息1 & 提示信息2
note_show="数字键盘,1=石头,2=剪刀,3=布,请你出拳"
pc_show_info="电脑已出拳!等待你出拳……" 

#与电脑博弈,3种结果,对学生游戏水平进行评价。字典关键值提取评价。
appraise_you={1:"电脑胜,哎呀,要努力哦!",0:"平局,哟哟,你还不错!",-1:"你胜了,乖宝宝,你好聪明!" }

# 自定义一个函数,输入值与电脑随机值比较,与电脑博弈。
# win_game 返回值 1:电脑胜,0:平,-1:学生胜
def win_game(pc_show,st_show):  #此处参数是字符型1、2、3
    if pc_show==st_show:
        return 0
    elif pc_show=='1' and st_show=='2' :
        return 1
    elif pc_show=='2' and st_show=='3' :
        return 1
    elif pc_show=='3' and st_show=='1' :
        return 1
    else:
        return -1

# 开始游戏 start playing !
print("特别提示:设置人与电脑博弈的次数,比如10次,20次。别输入太大的值,耗费时间!")
num_play=int(input('键盘输入,人与电脑对弈的次数: '))

while num_play >0:    #运行游戏的次数,假设20次 
    pc_val=choice(num_rsp) #电脑随机获取一个值"1","2","3"
    print('\n')
    print(pc_show_info,note_show) #提示信息2,提示信息1

    st_val='0' #给一个初始值,不为“123”
    while st_val not in num_rsp: #设置纠错,如果学生输入非123的值,重新输入
        st_val=input() #输入你的值“1或2或3”
        if st_val not in num_rsp:
            print("请重新输入: 1或2或3,不允许输入其它值!")

#胜负由定义函数win_game(pc_show,st_show)  判别
#电脑与学生博弈,双值对比,得出结果返回值:1,0,-1
    num_mark=win_game(pc_val,st_val)
    print("电脑出拳:",dict_rsp[pc_val],"\t你出拳 :",dict_rsp[st_val])
    print(appraise_you[num_mark]) #根据返回值,对学生进行评价

    num_play=num_play-1
    print('游戏还有',num_play,'次。')

print('\n本次游戏结束!Game Over!')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值