Python小游戏:52组撞脸汉字找茬,挑战你的眼力

python汉字找茬 简介

程序名称:

实战学习python小游戏:52组撞脸汉字找茬,挑战你的眼力。

版本说明:

这个程序做了两个版本:

1. Python控制台游戏

简介:在控制台中运行,相对简单,本文中会详细说明全过程。

涵盖Python知识点:
循环及分支语句、random随机模块、读取文件、字符串常见操作、部分列表函数等

2. Python窗口游戏

简介:结合python turtle在窗口中运行,闯关模式,共计52个关卡(可增加)
文末提供 程序代码及素材免费下载

涵盖Python知识点:在python控制台版找茬的基础上增加:
python turtle的常用操作,如笔的移动及颜色等操作、绘制正方形、写字、窗口及背景设置、获取鼠标位置。
函数的定义、调用、参数传递、全局变量使用、弹窗等等。

Python小游戏:52组撞脸汉字找茬,挑战你的眼力

Python汉字找茬运行效果图

python汉字找茬 过程

以下详细说明python汉字找茬的全部过程,但很多过程考虑了初学者的知识量和理解,有些啰嗦。
你可以尝试看看能不能改进,也可以看下一部分的成品,这两个部分代码不完全一样。

1.读取字库文件

# 使用只读方式打开文件,并设变量名为 f
f = open ('字库.txt'"r", encoding='utf-8')
s = f.readlines()  #按行读取整个文件,返回列表 s
f.close() #关闭文件 

2.处理列表项的格式

列表内汉字格式为 ‘喏:啱n’
处理后格式为  [‘喏’, ‘啱’]

for i in range(len(s)):
    # q为 '喏:啱n'
    q = s[i]
    # q改为 '喏:啱'
    q = q.strip() #去除字符串左右两边的空格、n
    # q改为列表 ['喏','啱']
    q = q.split(":")
    # 用q将原列表值替换
    s[i] = q

3.随机选择一对汉字

注意:
第3步、和第4步的输出,有些啰嗦
是为了初学者理解和练习python的基础,熟练列表、字符串、循环等的基本操作。
你可以试试能不能简化,写成一个步骤

#从列表中随机选择一组汉字,分别赋值给s1,s2
s1, s2 = random.choice(s)
#定义列表list1,用于本关卡的汉字
list1 = []
#第1个汉字 增加到列表100次
for i in range(100):
 list1.append(s1)

#随机生成100以内的随机数
n = random.randint(0,99)
#将列表的n项改为 第2个汉字
list1[n] = s2

4.输出python找茬所有汉字

这个步骤也可以简化,或者换一种方法

# m记录当前是第几个字
m = 0
for i in list1:
    # 输出当前字,但不换行
    print(i, end=""
    # 如果当前数字的末尾为9,就换下一行
    if str(m)[-1]=='9':
        print() #换行
    m += 1

验证是否正确

print("请输入汉字行列数,用空格分隔")
#无限循环,如果答不对,就重新开始
while True:
    #获取输入,格式为:行 列
    pos = input(":").strip()
    #去除多余空格再使用空格分隔成列表
    pos = pos.split()
    #分别读取行列的数字
    r = int(pos[0])
    c = int(pos[1])
    #以上三行,可写为一行
    #r,c = map(int,pos.split())
    #根据输入的行列,计算位置
    n1 = (r-1)*9+c-1
    if n1==n:
      print("正确!")
      break #退出整个循环
    else:
      print("错误!重新输入!")

python汉字找茬 代码

import random

f = open ('字库.txt'"r", encoding='utf-8')
list1 = f.readlines()
f.close()

for i in range(len(list1)):
    q = list1[i]
    q = q.strip()
    q = q.split(":")
    list1[i] = q

s = random.choice(list1)
s1,s2 = s
list1.remove(s)
n = random.randint(0,80)

#输出
m = 0
for j in range(9):
    print (j+1, end=": ")
    for i in range(9):
        if m==n: print(s1, end="")
        else: print(s2, end="")
        m += 1
    print()

#判断是否正确
print("请输入汉字行列数,用空格分隔")
while True:
    pos = input(":").strip()
    r,c = map(int,pos.split())
    n1 = (r-1)*9+c-1
    if n1==n:
        print("正确!")
        break
    else:
        print("错误!重新输入!")

python汉字找茬窗口版下载

python汉字找茬窗口版的全部程序代码及素材下载方式:

  1. 关注 python入门速学
  2. 后台输入 汉字找茬 即可全部免费下载

如果喜欢请点赞、关注、转发,谢谢!


原文始发于微信公众号(Python入门速学):Python小游戏:52组撞脸汉字找茬,挑战你的眼力

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/236460.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!