内容简介:安装方法:pip install ulang,使用方法与例程请见 pypi 项目首页(源于码云首页)。 注意:必需 python 3.7 前文只画了个井字棋棋盘,本版本完成与自己对弈的功能(与原 Python 代码功能相同)。在此期间检验已重...
安装方法:pip install ulang,使用方法与例程请见 pypi 项目首页(源于码云首页)。 注意:必需 python 3.7
前文只画了个井字棋棋盘,本版本完成与自己对弈的功能(与原 Python 代码功能相同)。在此期间检验已重现的部分木兰的实用程度,并在使用中发现需要重现的语法进而加以实现。
1 实例演示

主要木兰代码如下(完整代码在此,基本沿用原 Python 代码结构,仅作了些微重构):
pygame.init()
pygame.display.set_caption('井字棋')
屏幕 = pygame.display.set_mode(tuple(棋盘尺寸, 棋盘尺寸))
loop {
for 事件 in pygame.event.get() {
事件类型 = 事件.__getattribute__('type')
if 事件类型 == pygame.QUIT {
pygame.quit()
quit()
} elif 进行状态 == 状态.对弈 and 事件类型 == pygame.MOUSEBUTTONUP {
x, y = pygame.mouse.get_pos()
横格 = int((x - 边框) * 1.0 / 格子尺寸)
纵格 = int((y - 边框) * 1.0 / 格子尺寸)
if 在棋盘内(横格, 纵格) and !该位置已占(横格, 纵格) {
所有落子.append(tuple(横格, 纵格, 哪方))
if 胜负已分() {
进行状态 = 哪方 == 棋手.X ? 状态.X胜 : 状态.O胜
} else {
哪方 = 哪方 == 棋手.X ? 棋手.O : 棋手.X
}
}
}
}
屏幕.fill(背景色)
画格子()
for 落子 in 所有落子 {
画棋子(落子)
}
宣布 = 进行状态 != 状态.对弈 ?
((进行状态 == 状态.X胜 ? 'X' : 'O') + " 赢了!!")
: (len(所有落子) == 9 ? "平局" : "")
// 比赛结束
if 宣布 != "" {
字体 = pygame.font.SysFont("pmingliu", 50)
文字 = 字体.render(宣布, true, 红色)
屏幕.blit(文字, tuple(20,190))
}
pygame.display.update()
}
2 语言功能
2.1 元组(tuple)
之前未发现元组初始化的简便方法。本周发现可用内置函数“tuple(1, 2, 3)”进行初始化
2.2 枚举
与 Python 定义枚举类似,但之前一直没用过,井字棋示例中第一次用:
using Enum in enum
type 棋手 : Enum {
{
X = 1
O = 2
}
}
2.3 超过两项变量赋值
早先只允许两项,如:a, b = 1, 2。现在支持更多项如:a, b, c = 1, 2, 3。也同时支持了 for a, b, c in t { ... }
2.4 其他
恢复了自带木兰代码编辑器功能,并继续修正的格式化功能
附录:代码量统计
主要部分的代码行数统计,格式为:上次->现在。
- 木兰代码量
- 编辑器,实现与测试都是木兰代码:333 -> 381
- 木兰测试用例,包括部分实用小程序(如井字棋):2160 -> 2304
- Python 代码量(包括测试部分):2425 -> 2473
分析器/语法分析器.py:986 -> 989测试/运行所有.py,检验所有木兰测试代码片段:185 -> 187环境.py,定义全局方法:157 -> 160中.py,主程序:41 -> 45setup.py, 33- 未变
分析器/词法分析器.py:198分析器/语法树.py:178交互.py,交互环境(REPL):138分析器/语法成分.py,从语法分析器中提取出来的枚举常量:79功用/反馈信息.py:49分析器/错误.py:17测试/unittest/语法树.py,确保生成的语法树与原始版本一致:67测试/unittest/交互.py,交互环境相关测试:28
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Go 语言函数式编程系列教程(二) —— 常量和枚举
- 木兰编程语言 0.0.14.4:中文报错信息规整,枚举引用新发现
- c# – 枚举时项目发生变化时是否会影响枚举?
- 测者的测试技术手册:Junit单元测试遇见的一个枚举类型的坑(枚举类型详解)
- 测者的JUnit单元测试探坑记:Junit单元测试遇见的一个枚举类型的坑(枚举类型详解)
- c# – 循环枚举类型
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Foundations of PEAR
Good, Nathan A./ Kent, Allan / Springer-Verlag New York Inc / 2006-11 / $ 50.84
PEAR, the PHP Extension and Application Repository, is a bountiful resource for any PHP developer. Within its confines lie the tools that you need to do your job more quickly and efficiently. You need......一起来看看 《Foundations of PEAR》 这本书的介绍吧!
XML 在线格式化
在线 XML 格式化压缩工具
Markdown 在线编辑器
Markdown 在线编辑器