第一节,代码结构讲解
一、游戏代码通篇导览
1、整体代码结构概览
2、代码运行顺序
二、独立函数代码段中代码功能摘要
1、if name==“main” :
固定语法
当代码是自己本身启动时,文件名字就叫__main__
如果被其他程序调用,那么才是人为定义的名字
2、main()方法
在main()方法里我们 定义单词文件路径,并设置窗口大小等窗口的基本属性
并调用相关程序进行预先读取和处理
然后 把处理好的单词传递给游戏开始的类(供他后续传递给游戏类),并让他开始执行。
方法名 | 作用 | 备注 |
---|---|---|
import pyglet | 导入pyglet | |
arcade.Window() | 设置窗口的基本属性,长、宽、标题等 | window文档链接 |
window.set_icon() | 设置窗口左上角的logo图标 | 属于其父类的方法 |
window.get_system_mouse_cursor() | 获取系统的鼠标样式 | 本游戏中时获取了手指形 |
window.set_mouse_cursor() | 设置本游戏中鼠标的样式 | |
arcade.run() | 保持窗口程序的持续运行 |
3、python_read_excel_words()读取excel文件内容
用来读取excel单词文件,并返回给调用者所取到的单词
方法名 | 作用 | 备注 |
---|---|---|
import openpyxl | openpyxl是一个用来读取和写入excel文件的库 | |
words_book = openpyxl.load_workbook(excel_name) | 读取指定名字的excel文件,并存给words_book | |
all_words = words_book.get_sheet_by_name(‘Sheet1’) | 针对读取文件中Sheet1表的内容 | |
columns = list(all_words.columns) | 把所有内容按列读取到,并转化为列表保存 | |
first_column = columns[0] | 取第一列 | 其中每个元素代表一个单元格内容 |
second_column = columns[1] | 取第二列 | |
x.value | 读取x这一个单元格的文本内容 | 文中x是循环变量 |
zhongwen[1:] | 使用切片方式,切取zhongwen里第二个到最后一个元素 | 因为第一个是行的名字,我们不需要 |
p = zip(zhongwen, yingwen) | 把中文列 和 英文列按顺序一一对应起来合并 | |
list( p) | 把之前zip形式的数据,转化为列表类型,方便查看和使用 | |
for index, word in enumerate(words_list) | 既读取列表中的元素,又读取他对应的索引 | |
return python_read_words | 把变量python_read_words代表的数据,返回给调用者![]() |
4、words_prepair()随机篡改正确的单词为错误的
方法名 | 作用 | 备注 |
---|---|---|
random.shuffle(start_words) | 对传进来的所有单词进行乱序处理,即随机打乱顺序 | |
random.random() | 获取一个随机的小数型数字 该数字范围在 [0.0, 1.0) 之间 | 包括0不包括1 |
random.choice(‘abcdefghijklmnopqrstuvwxyz’) | 从26个英语字母中随机找一个字母出来 | |
replace(ori_zimu, random_zimu) | 把字符串的某一个字替换掉 | 括号中前者是旧字,后者是新字 |