博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
record-05 函数
阅读量:6915 次
发布时间:2019-06-27

本文共 9390 字,大约阅读时间需要 31 分钟。

练习:点球大战游戏(基于之前做的猜数字游戏思路)

足球比赛经过90分钟的赛事后,如果比分相同,则双方各派5名队员进行点球大战
5轮点球大战双方交替进行,即在1轮比赛中双方各射门一次、守门一次,5轮比赛 结束后对比双方得分确定获胜方
如果5轮比赛后比分相同,则进行第6轮比赛,如果第6轮比分还相同,那么进入下一轮
在5轮比赛过程中,如果能提前确定获胜方,则提前结束比赛

# 实现一个点球游戏from random import randintuser_score = 0com_score = 0# 两只队伍各派5名队员参与点球# 点球共分5轮# 每一轮,双方各射门一次,守门一次for i in range(1, 6):    print("当前是第%d轮比赛" % i)    # 用户先射门,程序守门    # 程序先提示用户可以射门了,并且要求用户选择一个射门方向    print("请选择射门方向:")    # 用户选择射门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个守门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,用户不得分    # 如果方向不一致,代表球进了,用户得分+1    if user == com:        print("球没进")        user_score = user_score + 0    else:        print("球进了")        user_score = user_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    # 程序后射门,用户守门    # 程序先提示用户可以守门了,并且要求用户选择一个守门方向    print("请选择守门方向:")    # 用户选择守门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个射门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,程序不得分    # 如果方向不一致,代表球进了,程序得分+1    if user == com:        print("球没进")        com_score = com_score + 0    else:        print("球进了")        com_score = com_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))# 实现一个点球游戏

如果5轮比赛后比分相同,则进行第6轮比赛,如果第6轮比分还相同,那么进入下一轮

 

from random import randintuser_score = 0com_score = 0# 两只队伍各派5名队员参与点球# 点球共分5轮# 每一轮,双方各射门一次,守门一次for i in range(1, 6):    print("当前是第%d轮比赛" % i)    # 用户先射门,程序守门    # 程序先提示用户可以射门了,并且要求用户选择一个射门方向    print("请选择射门方向:")    # 用户选择射门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个守门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,用户不得分    # 如果方向不一致,代表球进了,用户得分+1    if user == com:        print("球没进")        user_score = user_score + 0    else:        print("球进了")        user_score = user_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    # 程序后射门,用户守门    # 程序先提示用户可以守门了,并且要求用户选择一个守门方向    print("请选择守门方向:")    # 用户选择守门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个射门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,程序不得分    # 如果方向不一致,代表球进了,程序得分+1    if user == com:        print("球没进")        com_score = com_score + 0    else:        print("球进了")        com_score = com_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))# 当5轮比赛后,双方比分相同,进行后续比赛times = 6while user_score == com_score:    print("当前是第%d轮比赛" % times)    # 用户先射门,程序守门    # 程序先提示用户可以射门了,并且要求用户选择一个射门方向    print("请选择射门方向:")    # 用户选择射门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个守门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,用户不得分    # 如果方向不一致,代表球进了,用户得分+1    if user == com:        print("球没进")        user_score = user_score + 0    else:        print("球进了")        user_score = user_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    # 程序后射门,用户守门    # 程序先提示用户可以守门了,并且要求用户选择一个守门方向    print("请选择守门方向:")    # 用户选择守门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个射门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,程序不得分    # 如果方向不一致,代表球进了,程序得分+1    if user == com:        print("球没进")        com_score = com_score + 0    else:        print("球进了")        com_score = com_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    times = times + 1# 实现一个点球游戏 在5轮比赛过程中,如果能提前确定获胜方,则提前结束比赛from random import randintuser_score = 0com_score = 0# 两只队伍各派5名队员参与点球# 点球共分5轮# 每一轮,双方各射门一次,守门一次for i in range(1, 6):    print("当前是第%d轮比赛" % i)    # 用户先射门,程序守门    # 程序先提示用户可以射门了,并且要求用户选择一个射门方向    print("请选择射门方向:")    # 用户选择射门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个守门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,用户不得分    # 如果方向不一致,代表球进了,用户得分+1    if user == com:        print("球没进")        user_score = user_score + 0    else:        print("球进了")        user_score = user_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    # 判断是否能提前结束比赛    # 3:0 4:1 4:2    # 领先方领先的分数比落后方还能获取的最大分数大,可以确定提前结束比赛    if user_score > com_score:        if user_score - com_score > 5 - i + 1:            break    else:        if com_score - user_score > 5 - i:            break    # 程序后射门,用户守门    # 程序先提示用户可以守门了,并且要求用户选择一个守门方向    print("请选择守门方向:")    # 用户选择守门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个射门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,程序不得分    # 如果方向不一致,代表球进了,程序得分+1    if user == com:        print("球没进")        com_score = com_score + 0    else:        print("球进了")        com_score = com_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    # 判断是否能提前结束比赛    if user_score > com_score:        if user_score - com_score > 5 - i and 5 - i != 0:            break    else:        if com_score - user_score > 5 - i and 5 - i != 0:            break# 当5轮比赛后,双方比分相同,进行后续比赛times = 6while user_score == com_score:    print("当前是第%d轮比赛" % times)    # 用户先射门,程序守门    # 程序先提示用户可以射门了,并且要求用户选择一个射门方向    print("请选择射门方向:")    # 用户选择射门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个守门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,用户不得分    # 如果方向不一致,代表球进了,用户得分+1    if user == com:        print("球没进")        user_score = user_score + 0    else:        print("球进了")        user_score = user_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    # 程序后射门,用户守门    # 程序先提示用户可以守门了,并且要求用户选择一个守门方向    print("请选择守门方向:")    # 用户选择守门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个射门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,程序不得分    # 如果方向不一致,代表球进了,程序得分+1    if user == com:        print("球没进")        com_score = com_score + 0    else:        print("球进了")        com_score = com_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))    times = times + 1if user_score > com_score:    print("恭喜,用户获胜")else:    print("很遗憾,程序获胜")# 实现一个点球游戏from random import randintdef u_shemen():    #    global user_score, com_score    # 用户先射门,程序守门    # 程序先提示用户可以射门了,并且要求用户选择一个射门方向    print("请选择射门方向:")    # 用户选择射门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个守门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,用户不得分    # 如果方向不一致,代表球进了,用户得分+1    if user == com:        print("球没进")        user_score = user_score + 0    else:        print("球进了")        user_score = user_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))def c_shemen():  #函数重用性    global user_score, com_score    user_score = 0    com_score = 0    # 程序后射门,用户守门    # 程序先提示用户可以守门了,并且要求用户选择一个守门方向    print("请选择守门方向:")    # 用户选择守门方向    # 程序通过接收,明确用户选择的方向是什么    user = int(input())    # 程序选择一个射门方向    com = randint(0, 1)    # 判断方向是否一致    # 如果方向一致,代表球没进,程序不得分    # 如果方向不一致,代表球进了,程序得分+1    if user == com:        print("球没进")        com_score = com_score + 0    else:        print("球进了")        com_score = com_score + 1    print("当前双方比分用户:程序 %d:%d" % (user_score, com_score))user_score = 0com_score = 0# 两只队伍各派5名队员参与点球# 点球共分5轮# 每一轮,双方各射门一次,守门一次for i in range(1, 6):    print("当前是第%d轮比赛" % i)    u_shemen()    # 判断是否能提前结束比赛    # 3:0 4:1 4:2    # 领先方领先的分数比落后方还能获取的最大分数大,可以确定提前结束比赛    if user_score > com_score:        if user_score - com_score > 5 - i + 1:            break    else:        if com_score - user_score > 5 - i:            break    c_shemen()    # 判断是否能提前结束比赛    if user_score > com_score:        if user_score - com_score > 5 - i and 5 - i != 0:            break    else:        if com_score - user_score > 5 - i and 5 - i != 0:            break# 当5轮比赛后,双方比分相同,进行后续比赛times = 6while user_score == com_score:    print("当前是第%d轮比赛" % times)    u_shemen()    c_shemen()    times = times + 1if user_score > com_score:    print("恭喜,用户获胜")else:    print("很遗憾,程序获胜")# 某个公司传输数据,数据是四位的整数,在传递过程中是加密的# 加密规则如下:每位数字都加上5,然后再用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换# 设计解密函数,能够根据接收的数据判断出原始数据def jiemi(new):    # 解密    # 1、接收准备解密的数据    # 2、将加密后的数据其中的一、二、三、四位找出来    a = new // 1000    b = new % 1000 // 100    c = new % 100 // 10    d = new % 10    # 3、将第一位和第四位交换,第二位和第三位交换    a, d = d, a    b, c = c, b    # 4、原数据为2,加密后位7  原数据为8,加密后位3    # 5、规律:如果加密后的数据大于5,将其-5即为原数据    # 6、规律:如果加密后的数据小于5,将其+5即为原数据    if a >= 5:        a = a - 5    else:        a = a + 5    if b >= 5:        b = b - 5    else:        b = b + 5    if c >= 5:        c = c - 5    else:        c = c + 5    if d >= 5:        d = d - 5    else:        d = d + 5    # 7、将每一位的原数据组成4位整数    result = a * 1000 + b * 100 + c * 10 + d    return result# 原5555 密0000# 原0000 密5555# 原0987 密2345x = jiemi(2345)print(x)#函数的作用:增强代码重用性、提高代码设计效率和执行效率、降低代码维护成本#使用函数的思路#确定函数要完成什么样的工作,并根据要完成的工作明确函数体中应该包含哪些命令#根据函数体代码的执行,来确定是否需要有参数列表#根据函数的调用,来确定是否需要有返回值#函数定义 def关键字#函数名称,命名规则同变量名,并且同一个源代码文件中,函数名不能相同#函数在定义时,可能会有参数列表,参数列表中每一个都叫形参#形参并不代表某一个数据,而是表示函数需要从函数外接收一个数据#并且形参在接收这个数据后,也会将数据临时存储起来x=1 #全局变量y=2 #全局变量z=3 #全局变量def f():    global x    x=100 #修改全局变量的值    y=200 #定义局部变量    z=300 #定义局部变量    print(x,y,z) #输出全局变量x,局部变量y和z的值#函数调用#只有通过函数调用,才能让函数体中的命令生效#函数调用时,及时不需要接收参数,括号也不能省略f()print(x,y,z) #输出全局变量x,y和z的值#全局变量、局部变量#根据变量的使用范围来确定应该用全局变量,还是局部变量#如果一个变量,只需要在函数体中使用,在函数体外不会用到,那么它就应该被定义为局部变量#如果一个变量,即在函数体中使用,又在函数体外使用,那么它就应该被定义为全局变量#如果全局变量,在函数体中想要重新赋值,一定要在函数体中使用global#默认值参数  在函数定义时使用#没有使用默认值参数时,函数有几个形参,就需要在调用时,传递几个实参#默认值参数只能出现在参数列表的后面def f2(x,y=0,z=1):    print(x+2*y+3*z)f2(1)f2(1,2)f2(1,2,3)#关键参数  在函数调用时使用#没有使用关键参数,函数的实参默认是按照顺序传递给形参f2(1,2,3)f2(3,2,1)#按照关键字传递实参f2(x=1,y=2,z=3)f2(z=3,x=1,y=2)f2(1,z=3,y=2)print("hello",sep=' ',end='\n')#return 返回值#退出函数的执行#从函数中返回值,返回到程序中函数被调用的位置#当函数体中没有明确使用return时,默认返回None值def f3(x,y):    return 10*x+20*y

  

转载于:https://www.cnblogs.com/minkillmax/p/8261043.html

你可能感兴趣的文章
Contact Manager Web API 示例[2] Web API Routing
查看>>
用luasocket读取双色球中奖号码
查看>>
C#中ref和out的使用小结
查看>>
Extjs4 中的gird
查看>>
错排-HDU 2049 递推的应用
查看>>
参数化查询为什么能够防止SQL注入
查看>>
AlertDialog.Builder弹出对话框
查看>>
HDUOJ -----1686
查看>>
pomelo组件..
查看>>
[问题2014S03] 解答
查看>>
mybatis入门例子
查看>>
[LeetCode] Construct Binary Tree from Inorder and Postorder Traversal
查看>>
Sencha touch 初体验
查看>>
锋利的jQuery-1--解决jquery库和其他库的冲突
查看>>
SSH框架
查看>>
第1章 游戏之乐——小飞的电梯调度算法
查看>>
Codeforces Round #256 (Div. 2) C. Painting Fence 或搜索DP
查看>>
component to string 自定义窗体
查看>>
Atitit.收银系统模块架构attilax 总结
查看>>
hibernate(十)双向关联关系的CRUD
查看>>