基于幻影围棋的C语言课程教学案例设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
近年来,以计算思维为核心的计算机基础课 程教学改革在各个高校广泛开展,首先要做的具 体工作就是解决计算思维能力培养的“落地”问 题,即要将计算思维能力培养落实到具体课程内 容与教学过程中去。启发式教学和案例式教学就 是计算思维“落地”的具体方法 [2]。
计算机博弈(Computer Game)也称为机器 博弈,是指根据各种棋类游戏规则,让计算机模 拟人的思维给出招法,与人或者另一台计算机进 行对弈 [3]。计算机博弈项目既有趣味性,又有策 略性和对抗性,深受广大青年学者的喜爱,并成 为人工智能领域一项重要的研究课题。笔者研究 幻影围棋项目多年,在文献 [4] 的启发下,将程
2 课堂教学实例设计
案例教学法是计算思维“落地”的最直接方 法,一个好的案例在教学中会起到事半功倍的效
基金项目:辽宁省普通高等教育本科教学改革研究项目(UPRP20140436);沈阳航空航天大学教学改革研究项 目(02140187)。 第一作者简介:李飞,女,讲师,研究方向为模式识别、图像处理、计算机博弈,alinafeili@。
printf("%s"," │ "); printf("%s","\n"); if(i==9)
printf(" └─┴─┴─┴─┴─┴─┴─┴─┴─┘ \n");
else printf("
├─┼─┼─┼─┼─┼─┼─┼─┼─┤ \n"); }
上述代码运行后得到图 2 这样的棋盘。
图 2 输出棋盘界面运行结果截图
计算机教育
118
Computer Education
2016
图 1 幻影围棋棋盘(左:黑棋棋盘,中:白棋棋盘, 右:裁判棋盘)
果。笔者在指导幻影围棋博弈项目的过程中,总 结了一些适合 C 语言教学的例子,将 C 语言的 知识与游戏程序有效融合,取得了较好的学习效 果,部分实例见表 1。
表 1 基于幻影围棋的实例内容与对应知识点
for(i=0;i<9;i++)
序中的部分基础内容作为 C 语言程序设计的教学 案例和实验内容,制作 C 语言课程设计题目,让 学生在游戏中体会学习的乐趣,调动了学生的学 习兴趣,取得了良好的学习效果。
1 幻影围棋概述
幻影围棋(Phantom go)是一项欧洲的棋类 游戏,因为下棋规则是基于围棋,采用 9×9 的 围棋棋盘,但是又在围棋基础上加入了信息不完 全的限制,即下棋双方均无法获得对方落子的位 置,有中间裁判可以看到双方落子位置,进而给 予双方操作是否合法或者是否提子的指令来进行 比赛,故称为幻影围棋 [5]。它是国际计算机奥林 匹克大赛的竞赛项目,也是我国大学生计算机博 弈大赛的竞赛项目,是一种集战略、战术和机会 为一体的棋类游戏项目。如图 1 所示,左边是黑 方棋盘,中间是白方棋盘,右边是裁判棋盘。裁 判的棋盘相当于一个 9×9 的围棋棋盘,黑方棋 盘中的白子是通过裁判的返回信息判断出的部分 棋子落子位置,信息是不完全的。这种不完全的 信息,既增加了对弈的难度,同时也增加了趣味 性和机会性。
实例 2 :初始化棋盘数据结构
在该实例中,利用了结构体类型定义变量表
示落子的位置,用二重循环结构控制二维数组的
赋值。
#define NOSTONE 0
/* 空子 */
#define BLACK
1
/* 黑子 */
#define WHITE
2
/* 白子 */
struct PLACE
{
int x;
int y;
}move; // 表示落子位置,x 为行坐标,y 为列坐标
选择结构、二维数组
由于篇幅有限,下面只列出两个实例的部分 代码。
实例 1 :幻影围棋的界面设计 在 C 语言程序设计课程教学中,程序输出 运行结果都是 DOS 命令行式的,表示一个围棋 棋盘在初学者眼里似乎是不可能的。该实例利用 输出各种线条组合来表示一个棋盘,使学生对 C 语言程序另眼相看。由于方便显示,我们用表格 表示棋盘,每一个单元格表示实际棋盘上的交叉 点。部分代码如下:
第 10 期 2016 年 10 月 10 日
计算机教育
Computer Education
文章编号:1672-5913(2016)10-0117-03
117
中图分类号:G642
基于幻影围棋的 C 语言课程教学案例设计
李 飞,王亚杰,尹 航,孙玉霞
(沈阳航空航天大学 工程训练中心,辽宁 沈阳 110136)
序号
实例内容
C 语言知识点
1 棋盘的表示和显示
数 据 类 型、 输 出 函 数 printf()、字符串
2
初 始 化 棋 盘, 并 在 棋 盘 上 表示落子位置
结构体、指针、数组
3 黑白方轮流落子
结 构 体、 指 针、 循 环 结 构、选择结构
4 随机招法的生产
随机函数、选择结构
5
提 子: 根 据 裁 判 提 子 的 信 息提取对应的棋子
for(j = 1; j<10 ; j++) { printf(" %c ",ch); ch++;}// 显示 A~F 棋盘列标题 printf("\n ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐ \n"); for ( i=1;i<10;i++)
{ printf("%d %s",i," │ ");// 显示 1~9 行标题 for(j=0;j<9;j++)
摘 要:针对计算思维“落地”的实际需要,结合计算机程序设计课程教学培养目标的要求,提出基 于幻影围棋的案例式教学模式,并以 C 语言程序设计课程为例,阐述案例的设计方法。 关键词:幻影围棋;计算思维“落地”;C 语言程序设计
0 引 言
随 着 社 会 信 息 化 的 不 断 发 展, 其 他 学 科 与 计算机学科的融合越来越密切,对大学生计算机 应用能力的要求也越来越高,用计算机解决问题 的能力逐渐成为衡量大学生素质的标准之一 [1]。 在我国,理工院校均开设计算机程序设计(C、 VB、C# 等)的必修课,它是继大学计算机基础 之后的另一门计算机主干基础课。通过本课程的 学习,使学生正确理解并基本掌握面向过程(或 者面向对象)程序设计方法,培养学生的程序设 计和上机调试能力以及用计算机处理实际问题的 思维方式和能力,为后续专业课程实践和今后的 工作提供相关知识。
计算机博弈(Computer Game)也称为机器 博弈,是指根据各种棋类游戏规则,让计算机模 拟人的思维给出招法,与人或者另一台计算机进 行对弈 [3]。计算机博弈项目既有趣味性,又有策 略性和对抗性,深受广大青年学者的喜爱,并成 为人工智能领域一项重要的研究课题。笔者研究 幻影围棋项目多年,在文献 [4] 的启发下,将程
2 课堂教学实例设计
案例教学法是计算思维“落地”的最直接方 法,一个好的案例在教学中会起到事半功倍的效
基金项目:辽宁省普通高等教育本科教学改革研究项目(UPRP20140436);沈阳航空航天大学教学改革研究项 目(02140187)。 第一作者简介:李飞,女,讲师,研究方向为模式识别、图像处理、计算机博弈,alinafeili@。
printf("%s"," │ "); printf("%s","\n"); if(i==9)
printf(" └─┴─┴─┴─┴─┴─┴─┴─┴─┘ \n");
else printf("
├─┼─┼─┼─┼─┼─┼─┼─┼─┤ \n"); }
上述代码运行后得到图 2 这样的棋盘。
图 2 输出棋盘界面运行结果截图
计算机教育
118
Computer Education
2016
图 1 幻影围棋棋盘(左:黑棋棋盘,中:白棋棋盘, 右:裁判棋盘)
果。笔者在指导幻影围棋博弈项目的过程中,总 结了一些适合 C 语言教学的例子,将 C 语言的 知识与游戏程序有效融合,取得了较好的学习效 果,部分实例见表 1。
表 1 基于幻影围棋的实例内容与对应知识点
for(i=0;i<9;i++)
序中的部分基础内容作为 C 语言程序设计的教学 案例和实验内容,制作 C 语言课程设计题目,让 学生在游戏中体会学习的乐趣,调动了学生的学 习兴趣,取得了良好的学习效果。
1 幻影围棋概述
幻影围棋(Phantom go)是一项欧洲的棋类 游戏,因为下棋规则是基于围棋,采用 9×9 的 围棋棋盘,但是又在围棋基础上加入了信息不完 全的限制,即下棋双方均无法获得对方落子的位 置,有中间裁判可以看到双方落子位置,进而给 予双方操作是否合法或者是否提子的指令来进行 比赛,故称为幻影围棋 [5]。它是国际计算机奥林 匹克大赛的竞赛项目,也是我国大学生计算机博 弈大赛的竞赛项目,是一种集战略、战术和机会 为一体的棋类游戏项目。如图 1 所示,左边是黑 方棋盘,中间是白方棋盘,右边是裁判棋盘。裁 判的棋盘相当于一个 9×9 的围棋棋盘,黑方棋 盘中的白子是通过裁判的返回信息判断出的部分 棋子落子位置,信息是不完全的。这种不完全的 信息,既增加了对弈的难度,同时也增加了趣味 性和机会性。
实例 2 :初始化棋盘数据结构
在该实例中,利用了结构体类型定义变量表
示落子的位置,用二重循环结构控制二维数组的
赋值。
#define NOSTONE 0
/* 空子 */
#define BLACK
1
/* 黑子 */
#define WHITE
2
/* 白子 */
struct PLACE
{
int x;
int y;
}move; // 表示落子位置,x 为行坐标,y 为列坐标
选择结构、二维数组
由于篇幅有限,下面只列出两个实例的部分 代码。
实例 1 :幻影围棋的界面设计 在 C 语言程序设计课程教学中,程序输出 运行结果都是 DOS 命令行式的,表示一个围棋 棋盘在初学者眼里似乎是不可能的。该实例利用 输出各种线条组合来表示一个棋盘,使学生对 C 语言程序另眼相看。由于方便显示,我们用表格 表示棋盘,每一个单元格表示实际棋盘上的交叉 点。部分代码如下:
第 10 期 2016 年 10 月 10 日
计算机教育
Computer Education
文章编号:1672-5913(2016)10-0117-03
117
中图分类号:G642
基于幻影围棋的 C 语言课程教学案例设计
李 飞,王亚杰,尹 航,孙玉霞
(沈阳航空航天大学 工程训练中心,辽宁 沈阳 110136)
序号
实例内容
C 语言知识点
1 棋盘的表示和显示
数 据 类 型、 输 出 函 数 printf()、字符串
2
初 始 化 棋 盘, 并 在 棋 盘 上 表示落子位置
结构体、指针、数组
3 黑白方轮流落子
结 构 体、 指 针、 循 环 结 构、选择结构
4 随机招法的生产
随机函数、选择结构
5
提 子: 根 据 裁 判 提 子 的 信 息提取对应的棋子
for(j = 1; j<10 ; j++) { printf(" %c ",ch); ch++;}// 显示 A~F 棋盘列标题 printf("\n ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐ \n"); for ( i=1;i<10;i++)
{ printf("%d %s",i," │ ");// 显示 1~9 行标题 for(j=0;j<9;j++)
摘 要:针对计算思维“落地”的实际需要,结合计算机程序设计课程教学培养目标的要求,提出基 于幻影围棋的案例式教学模式,并以 C 语言程序设计课程为例,阐述案例的设计方法。 关键词:幻影围棋;计算思维“落地”;C 语言程序设计
0 引 言
随 着 社 会 信 息 化 的 不 断 发 展, 其 他 学 科 与 计算机学科的融合越来越密切,对大学生计算机 应用能力的要求也越来越高,用计算机解决问题 的能力逐渐成为衡量大学生素质的标准之一 [1]。 在我国,理工院校均开设计算机程序设计(C、 VB、C# 等)的必修课,它是继大学计算机基础 之后的另一门计算机主干基础课。通过本课程的 学习,使学生正确理解并基本掌握面向过程(或 者面向对象)程序设计方法,培养学生的程序设 计和上机调试能力以及用计算机处理实际问题的 思维方式和能力,为后续专业课程实践和今后的 工作提供相关知识。