高级语言程序设计项目八绘制中国象棋棋盘.pdf
教案教师班级科目C#程序设计课题名称项目八绘制中国象棋棋盘课时数6本课程是为软件技术专业的学生开设的一门很重要的程序设计类课程。本 课程主要阐述了C#语言的编程技术,并根据面向对象程序设计的特点,以类的 定义和使用为核心,讲解C#勺各项语法知识,让学生逐步建立起面向对象的设 计思想,本课程实践性较强。课程教学目标要求学生掌握背景分析并掌握类的相关理论概念及操作应用。授课对象为电信系生,学生已经具备疋的应用软件冃匕力。根据课程教学目标和学生的专业特点,教学中应当注重培养学生的操作能 力、思维能力和学习能力。本节课采用以项目教学为主,边讲边做,让学生在 做的过程中学会探索、学会合作。1掌握Graphics类及Drawlmage、DrawRectangle、DrawLine禾口DrawString等相关方C#语法和操作技能,0803班的四年级学学习目标法。2、理解GDI+的坐标系统,初步学会坐标系统的应用。设定3、培养学生积极思考、敢于尝试,让学生体验学习的乐趣,激发学生对本课程 的学习兴趣。学习任务 描 述学习任务围绕GDI+中基本图形的绘制而展开,教师设计“绘制中国象棋棋盘”的综合项目,并将其分解为3个任务:绘制棋盘轮廓、绘制棋盘线条、书写棋盘中间文字来分部完成。通过任务的设定,引导学生自主学习、合作学习、竞 争学习。教学情境 创设今天通过对一个贴近学生生活的项目学习,引导学生做中学习、合作学习。围绕课堂总目标,学习情境创设为“绘制棋盘轮廓”,“绘制棋盘线条”和“书 写棋盘中间文字”让学生在不断的成功体验中进行快乐学习。教学资源时间资源:课前资料收集、课堂教学信息资源:教案、教学素材人员资源:2位专业教师,学生小组360分钟、课后资料整理、完成作业准备教学过程实施内 容【导入】网络游戏公司最近请软件工程师小张开发一套在线式的中 国象棋游戏。小张决定用C#(弋码来实现中国象棋棋盘的绘制。中国象棋棋盘大致有9条竖线和10条横线,还包括游戏双方的 一个米字格(九宫格)以及五个兵位和两个炮位,棋盘中间写 有“楚河汉界”。效果图如下:【新课】将项目名称设为“Chinese chessboard”,位置设为2.设置该窗体属性。“E:CspharpAppExamples”(或其它位置)。属性取值/说明NameFormMa in/窗体类名称FormBorderStyleFixedS in gle/边框大小固定项目分析:绘制中国象棋棋盘主要的步骤:1.绘制棋盘轮廓2绘制棋盘线条3.书写棋盘中间文字任务一绘制棋盘轮廓【任务描述】新建项目,并在窗体上绘制棋盘背景图和外框。【任务实施】1.新建一个Windows项目,在模板中选择“Windows应用程序”,方法创设情境、激发学习兴趣,营造良好的学习氛围明确任务,通过系列实验逐 步呈现知识教师演示学生练习,教师巡师生互动回指导、及时评价学习环节包括“合作与探索”、“交流与分享”、“实践与体验”引导学生:除用Pai nt事件,请大家试 一试用Image对象来实现。MaximizeBoxM nimizeBoxSizeFalseFalse460,530/无最大化框无最小化框提问:窗体尺寸大小(宽,请你指出点P1(50,100)、点P2(110,100)、点P3(100,50)高)StartPositio nTextCen terScreen/屏幕正中和点中国象棋棋盘/窗口标题“bg.jpg”拷贝到:P4(100,110)在屏幕上的大 致位置。3.将图片文件“E:CSharpAppExamplesChi nesechessboardCh in esechessboardbi nDebug”下,在程序中将此木纹绘制在棋盘上。4.在FormMain窗体的Pai nt事件处理程序的相关代码如下:private void FormMain_Paint(object sender,Pai ntEve ntArgs e)Graphics g=e.Graphics;Graphics对象g.Clear(Color.Coral);/用珊瑚色清除窗/获取一个教师教授体g.Drawlmage(lmage.FromFile(Application+bg.jpg),10,10,430,480);g.DrawRectangle(Rectangle(new Point(20,20),.StartupPath+/绘制背景图/new Pen(Color.Black,3),newnew Size(410,460);/释放对象绘制框图g.Dispose();至此棋盘轮廓就绘制成功了。【理论知识】一、GDI+的 概念1.理解GDI+GDI+:Graphics Device In terface Plus也就是图形设备接师生互动引导学生:请按F1键,查一下MSDN上的Graphics类的信息,将 这个类的作用和DrawImage和DrawRectangle方法的详 细内容记口,提供了各种丰富的图形图像处理功能,本质上它是一个库,它提供了一个接口,此接口允许程序员编写与打印机、监视器 或文件等图形设备进行交互的应的命名空间,主要由:System.Drawing:基本的GDI+功能 的定义,它提供了Graphics类,这个类提供了最重要的绘图与填充方法。还封装 了矩形,点,windows和web图形应用程序。GDI+其实是由C+编写的一个类,供我们调用。在程序中使用GDI+需要添加相下来。画笔和钢笔等功能。GDI图元类。System.Drawing.Drawing2D名称空间。高级二维和矢量图形 应用程序的System.Drawi ng.lmagi ng:2.GDI+基本应用基本图像处理功能。首先要绘图,要有绘图的画布,画布可以是窗体表面,打印 机表面,位图表面,还要有画笔,可以是钢笔,笔刷等。还要 有一个画图的过程即方法调用。另外还需要知道坐标系统,在 窗体中的坐标轴和我们平时接触的平面直角坐标轴不同,窗体中的坐标轴方向完全相反3.GDI+的坐标系统:窗体的左上角为原点(0,0),水平向左则X增大,垂直下向则Y增大。GDI+的坐标系统建立在通过像素中心的假想数学直线上,这些直线从0开始,其左上角的交点是X=0,Y=0。X=1,Y=2的教师演示学生练习,教师巡 回指导、及时评价简短记号是点(1,2)。用于绘图的每个窗口都有自己的座标。女口 果要创建一个可以在其他窗口使用的定制控件,这个定制控件 本身就有自己的坐标。换言之,在绘制该定制控件时,他的左 上角是点(0,0)。不用担心定制控件放在其包含窗体的什么地 方。在绘制线条时,GDI+会把绘制出来的像素在指定的数学直线上 对中。在绘制整数坐标的水平线时,可以认为每个像素的一半 落在假想的数学直线的上半部分,而另一半落在假想数学直线 的下半部分。任务二绘制棋盘线条【任务描述】绘制水平线、垂直线、斜线和兵位(炮位)线。其中的难 点主要是坐标位置。实施条件【任务实施】1释放对象语句行的上方,(或教学场景设计或作业技术规范):参照真实棋盘或中国象棋的电脑游戏画面。插入用于生成钢笔对象pen的代码Pen pen=new Pen(Color.Black,1);2绘制水平线for(int i=0;i 10;i+)g.DrawLine(pen,new Point(25,25+(i*50),new Point(425,25+(i*50);3绘制垂直线for(int i=0;i 9;i+)g.DrawLine(pen,g.DrawLine(pen,new Point(25+(i*50),25),new Point(25+(i*50),225);new Point(25+(i*50),275),new Point(25+(i*50),475);4绘制斜线g.DrawLine(pen,Point(275,125);g.DrawLine(pen,Point(175,125);g.DrawLine(pen,Point(275,475);g.DrawLine(pen,Point(275,375);new Point(175,475),newnew Point(175,375),newnew Point(275,25),newnew Point(175,25),new学生练习:考虑到画兵位(炮位)线的 画法除了坐标不同外是完全 一样,所以步骤5只画了其 中一个,请学生完成其余兵 位(炮位)线。师生互动引导学习优异者帮助学习5兵位(炮位)线g.DrawL in e(pe n,Point(30,170);g.DrawL in e(pe n,Point(40,170);g.DrawL in e(pe n,Point(30,190);g.DrawLi ne(pe n,Point(40,180);new Point(30,160),new Pointnew Point(30,170),(30,180),newnewnewnew Point(30,180),new引导:请确定在平移坐标轴和旋转坐标轴后,点P1(10,30)和P1(10,-30)的 大致位置。至此棋盘线条就绘制成功了。【理论知识】请按F1键,查一下MSDNh的Pen类、Graphics类和Point结构的信教师设疑并释疑:请试一下,坐标轴先平移后 旋转与坐标轴先旋转后平移 的效息,将Pen类中的构造方法、DrawLine方法和Point的构造方法等的详细内果一样吗?通过观察,能充分容记下来。理解GDI+的坐标系 统的空间关struct类型的概念和类与结构的差别系。任务三书写棋盘中间文字【任务实施】1.用DrawString方法写在棋盘中间写文字“楚河汉g.DrawString(楚 河,new Font(黑体,25),Brushes.Black,new Point(50,235);g.DrawString(漢 界”,new Font(黑体”,25),Brushes.Black,new Point(300,235);2如果要实现如图3-11所示的效果,可以将代码改为:g.Tra nslateTra nsform(300,235);/g.RotateTra nsform(180);/g.DrawStri ng(Brushes.Black,new Point(-100,-35);g.ResetTra nsform();/(漢)界”。师生互动平移坐标轴进行180度旋转漢界”,new Fon t(黑体”,25),坐标轴复位至此棋盘中间文字书写完成。【小结】学习者从在Pai nt事件中绘制背景图和框图开始,了解到GDI+的坐标系统;然后绘制水平线、垂直线、斜线和兵位(炮 位)线,提高了对Graphics类和GDI+的坐标系统的认识;书写出棋盘中间文字。通过本项目,学生能学会用国象棋棋盘、五子棋子棋盘和国际象棋棋盘,从而掌握的图形处理的基本原理,为后续的础。最后,GDI+绘制中GDI+中GDI+中的图像处理打下了基【作业】1请学生按前面任务一中所学的原理完成图3-9所示的五子棋子棋盘。S S1 1.1 11 19 9 1 1图3-9五子棋子棋盘提示:画圆形的方法可查阅法。2请学生按前面任务二中所学的原理完成图3-12所示的国际MSDN中的Graphics类中的相关方象棋棋盘。(素材在光盘的“素材3”目录中)提示:四周的数字如何准确定位呢?3请学生按前面任务三中所学的原理完成图3-13所示的围棋象棋棋盘和棋子。图3-13围棋象棋棋盘和棋子提示:在Graphics类中,用什么方法给矩形填充颜色的?