• python 游戏(猜单词Hangman)


    1.游戏思路和流程图

    实现功能:随机一个单词让玩家猜测(后续难度实现修改为成语填空,成语必须要有提示,可修改猜的次数,增加连续猜成语,难度系数随着次数的增加而增加)

    游戏流程图

    2. 单词库和模块

    import random
    word='''and away big blue can come down find for funny go'''
    word_list=word.split()

    3. 游戏开始提示

    def game_info():
    '''游戏开始提示函数'''
    print('欢迎来到猜单词')
    print('游戏提示:你有9次猜单词的机会,一次只能猜一个字母')

    4. 重新开始游戏输入验证

    def Double_choice(a,b,hint):
    '''双选择验证函数
    :param a 第一个选项值
    :param b 第二个选项值
    :param hint 选项信息
    :return 返回输入值'''
    choice=''
    while choice.lower() !=a and choice.lower() !=b:
    print(hint)
    choice=input()
    return choice

    5. 用户输入验证

    def letter_limited(letter,right_letter_list):
    '''字母输入约束条件
    :param letter 用户输入单词
    :param right_letter_list 用户猜中单词列表
    :return 返回 用户输入单词'''
    while True:
    if len(letter) !=1:
    print('请输入一个字母')
    elif letter in right_letter_list:
    print('这个字母猜过了,请重新猜一个字母')
    elif letter not in 'abcdefghijklmnopqrstuvwxyz':
    print('请输入英文字母')
    else:
    break
    letter=input()
    return letter.lower()

    6. 猜词判断(游戏核心)

    def word_handle(user_letter,guess_letter_list,right_letter_list):
    '''字母判断
    :param user_letter 用户输入字母
    :param guess_letter_list 需要猜测的字母列表
    :param right_letter_list 用户猜中的字母列表
    :return 返回用户猜中的字母列表'''
    for i in range(len(guess_letter_list)):
    if user_letter == guess_letter_list[i].lower():
    right_letter_list[i]=guess_letter_list[i]
    return right_letter_list

    7. 游戏完成度提示

    def game_content_hint(guess_letter_list):
    '''游戏界面函数'''
    print('单词完成度:%s'%' '.join(guess_letter_list))

    8. 游戏核心外壳

    def game_start():
    '''游戏开始函数'''
    guess_word=random.choice(word_list)
    guess_letter_list=list(guess_word) #猜单词的列表
    right_letter_list=['_'for i in guess_letter_list] #用户看见的单词列表
    count=9 #猜取的次数
    while count:
    game_content_hint(right_letter_list)
    print('猜单词中的字母(剩余机会%d)'%count)
    user_letter=letter_limited(input(),right_letter_list)
    # print(user_letter)
    right_letter_list=word_handle(user_letter,guess_letter_list,right_letter_list)
    # print(right_letter_list)
    if right_letter_list == guess_letter_list:
    break
    count -= 1
    if right_letter_list == guess_letter_list:
    print('恭喜你猜中了全部字母,这个单词是%s'%guess_word)
    else:
    print('你的机会用光了也没猜中,这个单词是%s' %(guess_word))

    9. 游戏外壳(重新开始游戏)

    def game_shell():
    '''外壳程序'''
    game_info() # 游戏开始提示
    game_start()
    while True:
    message='你想在玩一次吗(Y or N)'
    again_flag=Double_choice('y','n',message)
    if again_flag=='n':
    break
    game_start()

    10. 运行游戏

    game_shell()



    python学习途径

    本游戏参考书本 <<Python游戏编程快速上手>>

    友情推荐:  猿人学Python【https://www.yuanrenxue.com/】 由一群工作十余年的老程序员结合实际工作经验所写的Python教程。
  • 相关阅读:
    七类网线 支持10gb/s的速度的计算方法
    Linux 压缩 解压缩 命令相关
    [至顶网] Win2019 发布 LTSC 10年支持期
    安装报错信息 改天找人帮忙看下.
    [学习]仿照cnblog 搭建 Oracle RAC 双节点 困.. 后续做不下去了..
    Windows 作为 openssl server端时的处理
    阿里云构建Kafka单机集群环境
    nginx解决跨域
    让网站永久拥有HTTPS
    ORA-01940: cannot drop a user that is currently connected 问题解析
  • 原文地址:https://www.cnblogs.com/gm332211/p/10710243.html
Copyright © 2020-2023  润新知