33 知识点
33.1 前言
-
介绍Racket的来历。
33.2 设计目标
33.3 设计思路
33.3.1 图片操作功能
-
标记ID的意义。
-
动画实现原理。
33.3.2 界面功能设计
-
界面布局。
-
界面实现原理。
33.4 实现工具
33.4.1 DrRacket编辑器
-
DrRacket编辑器意义。
-
DrRacket编辑器下载及安装。
-
DrRacket编辑器界面及功能介绍。
33.4.2 Racket简单介绍
-
Racket编程涉及的概念及内容。
-
“Hello World!”代码的实现。
-
深入学习Racket的途径。
33.4.3 快速学习Racket
-
通过最基本的实例代码展示Racket语法。
33.5 模型板块(操作图片)
33.5.1 取得源图片
-
Racket中标识的概念及意义;
-
介绍函数参数及使用(剩余参数、可选参数、关键字参数);
-
路径(path)值的概念及使用;
-
介绍模块、子摸快及测试模块及使用;
-
介绍绑定"define"的使用。
-
"read-bitmap"函数。
-
"set!"的使用。
33.5.2 调整源图片尺寸
-
Racket数据类型介绍;
-
Racket源代码文件的组成结构;
-
运行Racket源代码及测试。
33.5.3 调整显示图片尺寸
-
类对象的创建;
-
类对象的消息传递。
-
三种局部绑定:并行绑定"let"、顺序绑定"let*"和递归绑定"letrec"。
-
条件分支:"if"、"cond"、"when"和"unless"。
-
类"bitmap%"的使用;
-
函数"make-object"的使用。
33.5.4 按行列分割图片
-
介绍数值函数。
33.5.5 生成单元格数据
-
详细介绍结构数据类型。
33.5.6 分割图片到单元格列表
-
详细介绍序对与列表。
-
详细介绍递归与尾递归。
33.5.7 将单元格列表转换为散列表
-
详细介绍散列表。
-
详细介绍lambda及函数定义的本质。
33.5.8 混合单元格
-
介绍散列表遍历hash-map和hash-for-each。
-
介绍生成随机数random。
33.5.9 绘制单元格表为图片
-
介绍绘图环境dc<%>。
33.5.10 操作id
-
基本的绘图步骤。
-
pen%和brush%的使用。
33.5.11 初始化拼图数据
33.5.12 恢复拼图初始状态
33.5.13 判断是否成功完成拼图
33.5.14 汇总提供标识
-
介绍合约(值合约、函数合约、结构合约)。
33.6 创建GUI界面
33.6.1 创建框架窗口
-
GUI工具箱内容。
-
用frame%创建框架窗口。
-
GUI 构件的常用属性。
-
操纵GUI构件。
33.6.2 规划布局
-
视图布局的层次结构。
-
用Racket进行有效的视图布局组织。
33.6.3 创建主窗口
-
frame%的类型style及意义。
33.6.4 创建布局
-
窗格构件和面板构件的使用。
33.6.5 创建左侧布局
-
canvas%类介绍。
-
介绍回调函数的概念。
33.6.6 创建命令功能区
-
button%类介绍。
-
定义按钮回调函数。
33.6.7 创建行列设置组框
-
介绍group-box-panel%。
-
介绍tab-panel%。
-
介绍text-field%。
-
介绍choice%。
33.6.8 创建拼图命令按钮组
-
介绍宏。
33.6.9 创建状态显示区
-
介绍message%。
33.6.10 创建右侧布局
-
介绍类的创建及使用。
-
设计类的思路及方法。
33.7 主视图控制器
33.7.1 显示主界面
33.7.2 目标画布响应函数
33.7.3 退出按钮响应函数
33.7.4 text/row控件和text/col控件响应函数
-
用宏生成函数。
-
显示状态信息的方法。
-
Lisp语言著名的七个原始操作符(七个公理)。
33.7.5 choice/r&c行列选择框响应函数
33.7.6 button/select-picture选择图片按钮响应函数
-
get-file函数的使用。
33.7.7 button/blend-cells混合图片按钮响应函数
-
向控件发送command消息实现事件控制。
-
control-event%的事件类型的使用。
33.7.8 判断设置行列数是否成功
-
写判断函数。
33.7.9 button/play-again再来一次按钮响应函数
-
refresh-now方法的使用。
33.7.10 初始化主界面
33.7.11 设置目标图片画布尺寸
-
refresh-now方法的使用。
33.8 拼图画布类
-
类合约的使用。
33.9 主程序
-
主程序的概念及使用。
33.10 创建可执行程序
-
Racket运行程序的方法。
-
Racket创建可执行程序的方法。
puzzle拼图游戏源代码及本书源代码见https://gitee.com/onroadzy/puzzle。