学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
“石头剪刀布”是一个不需要任何道具即可解决争议的游戏。多人石头剪刀布规则:
①游戏中,石头胜剪刀,剪刀胜布,布胜石头;
②当前参与人中,如果出现1种或3种手势时,为平局,继续游戏;
③当前参与人中,如果出现2种手势时,依据规则①出局;
④当前参与人中,只剩下1位,则为赢家,游戏结束。
(1)主程序。输入参与游戏人数,初始化参与游戏人手势状态,统计手势种类,依据规则进行游戏。相关状态说明如图a所示,三种手势呈正时针环状,当1种手势未出现时,下一个手势为赢,再下一个为输。运行结果如图所示。请在程序中划线处填入合适的代码。

图a                                          图b


n=int (input("请输入参加人数: "))
hand=[9]*n                    #设置手势的初始状态为9
cnt=[0]*4                           #存储各类手势的人数,出局0、石头1、剪刀2、布3
while True:
       redo()                    #为对未出局人员随机生成手势状态,并输出
       cnt=counter 0             #分类统计各类手势的人数
lost=0
if cnt[1]==0 and cnt[2]>0 and cnt[3]>0 : lost=3 ; win=2
if cnt[2]==0 and cnt[3]>0 and cnt[1]>0 : lost=1 ; win=3
if cnt[3]==0 and cnt[1]>0 and cnt[2]>0 : lost=2 ; win=1
if lost>0:
       print("\n出局:", end=' ')
       out (lost)
       cnt[lost] = 0
if ____:             #只剩下1位赢家,输出获胜编号,游戏结束
       print("\n结果:", hand)
       for i in range(n):
              if hand[i]>0 :
                    print("\n获胜编号: ",i)
       break
(2)编写redo函数。功能为对未出局人员随机生成手势状态,并输出。
from random import randint
def redo ():
       for i in range (n):
             if ____ :                    #剩余参与人员随机生成手势状态
                    hand[i]=randint (1,3)
       print("\n开始:", hand, end=' ')
(3)编写counter函数。功能为分类统计各类状态人数,存储在列表s中,并返回列表,程序如下。
def counter() :
       s=[0]*4
       for i in range(n) :
              j=hand[i]
              s[j]= ___             #分类计数
       return s
(4)编写out函数。功能为把手势k设置为出局,并在对应位置输出为“^”,未出局者输出为“”,程序如下。
def out (k) :                    #出局
for i in range (n) :
       if ____:
              hand[i]=0
              print("^", end=' ')
       else:
              print(' ', end=' ')
(5)加框部分修改为采用循环结构,程序如下。
for i in range(1,4):
       win = i%3+1                    #赢手势号
       lost = ____       #输手势号
       if cnt[i]==0 and cnt[win]>0       and cnt[lost]>0:        #只 出现2种手势
             print("\n出局:", end=' ')
              out (lost)
             cnt[lost] = 0
(6)某轮参与人员各类状态如列表[1,3,1,3,1,3,3,3],则经过本轮后出局人数为 ____
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交