高级语言程序设计(C#)项目八 绘制中国象棋棋盘 联系客服

发布时间 : 星期日 文章高级语言程序设计(C#)项目八 绘制中国象棋棋盘更新完毕开始阅读fc0bf21ee109581b6bd97f19227916888586b910

教案 教 师 课题名称 班级 科 目 课时数 C#程序设计 6 项目八 绘制中国象棋棋盘 本课程是为软件技术专业的学生开设的一门很重要的程序设计类课程。本课程主要阐述了C#语言的编程技术,并根据面向对象程序设计的特点,以类的定义和使用为核心,讲解C#的各项语法知识,让学生逐步建立起面向对象的设计思想,本课程实践性较强。课程教学目标要求学生掌握C#语法和操作技能,背景分析 并掌握类的相关理论概念及操作应用。授课对象为电信系0803班的四年级学生,学生已经具备一定的应用软件能力。 根据课程教学目标和学生的专业特点,教学中应当注重培养学生的操作能力、思维能力和学习能力。本节课采用以项目教学为主,边讲边做,让学生在做的过程中学会探索、学会合作。 1 掌握Graphics类及DrawImage、DrawRectangle、DrawLine和DrawString学习目标 设 定 等相关方法。 2、理解GDI+的坐标系统,初步学会坐标系统的应用。 3、培养学生积极思考、敢于尝试,让学生体验学习的乐趣,激发学生对本课程的学习兴趣。 学习任务围绕GDI+中基本图形的绘制而展开,教师设计“绘制中国象棋棋盘”学习任务 描 述 的综合项目,并将其分解为3个任务:绘制棋盘轮廓、绘制棋盘线条、书写棋盘中间文字来分部完成。通过任务的设定,引导学生自主学习、合作学习、竞争学习。 教学情境 创 设 今天通过对一个贴近学生生活的项目学习,引导学生做中学习、合作学习。围绕课堂总目标,学习情境创设为“绘制棋盘轮廓”,“绘制棋盘线条”和 “书写棋盘中间文字”让学生在不断的成功体验中进行快乐学习。 教学资源 准 备 时间资源:课前资料收集、课堂教学360分钟、课后资料整理、完成作业 信息资源:教案、教学素材 人员资源:2位专业教师,学生小组 教 学 过 程 实 施 内 容 方法 网络游戏公司最近请软件工程师小张开发一套在线式的中 国象棋游戏。小张决定用C#代码来实现中国象棋棋盘的绘制。创设情境、激发学习兴趣,中国象棋棋盘大致有9条竖线和10条横线,还包括游戏双方的营造良好的学习氛围 一个米字格(九宫格)以及五个兵位和两个炮位,棋盘中间写 有“楚河汉界”。 效果图如下: 明确任务,通过系列实验逐步呈现知识 教师演示学生练习,教师巡回指导、及时评价 【新课】 项目分析: 绘制中国象棋棋盘主要的步骤: 1.绘制棋盘轮廓 2.绘制棋盘线条 3.书写棋盘中间文字 任务一 绘制棋盘轮廓 【任务描述】 新建项目,并在窗体上绘制棋盘背景图和外框。 【任务实施】 1. 新建一个Windows项目,在模板中选择“Windows应用程序”,师生互动 将项目名称设为“Chinese chessboard”,位置设为学习环节包括“合作与探索”、“交流与分享”、“实践“E:\\CspharpApp\\Examples”(或其它位置)。 与体验” 2.设置该窗体属性。 引导学生: 属性 取值/说明 除用Paint事件,请大家试Name FormMain /窗体类名称 一试用Image对象来实现。 FormBorderStyle FixedSingle /边框大小固定 【导入】 MaximizeBox M nimizeBox Size StartPosition Text False /无最大化框 False /无最小化框 460,530 /窗体尺寸大小(宽,高) CenterScreen /屏幕正中 中国象棋棋盘 /窗口标题 3.将图片文件“bg.jpg”拷贝到“E:\\CSharpApp\\Examples\\Chinese chessboard\\Chinese chessboard\\bin\\Debug”下,在程序中将此木纹绘制在棋盘上。 4.在FormMain窗体的Paint事件处理程序的相关代码如下: private void FormMain_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; // 获取一个Graphics对象 g.Clear(Color.Coral); //用珊瑚色清除窗体 g.DrawImage(Image.FromFile(Application.StartupPath + @\ + \), 10, 10, 430, 480); //绘制背景图 g.DrawRectangle(new Pen(Color.Black, 3), new Rectangle(new Point(20, 20), new Size(410, 460))); //绘制框图 g.Dispose(); //释放对象 } 至此棋盘轮廓就绘制成功了。 【理论知识】 一、GDI+的概念 1.理解GDI+ GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能,本质上它是一个库,它提供了一个接口,此接口允许程序员编写与打印机、监视器或文件等图形设备进行交互的windows和web图形应用程序。GDI+其实是由C++编写的一个类,供我们调用。在程序中使用GDI+需要添加相应的命名空间,主要由: System.Drawing:基本的GDI+功能的定义,它提供了Graphics类,这个类提供了最重要的绘图与填充方法。还封装了矩形,点,画笔和钢笔等GDI图元类。 System.Drawing.Drawing2D名称空间。高级二维和矢量图形应用程序的功能。 System.Drawing.Imaging:基本图像处理功能。 2.GDI+基本应用 首先要绘图,要有绘图的画布,画布可以是窗体表面,打印机表面,位图表面,还要有画笔,可以是钢笔,笔刷等。还要有一个画图的过程即方法调用。另外还需要知道坐标系统,在窗体中的坐标轴和我们平时接触的平面直角坐标轴不同, 窗体 提问: 请你指出点P1(50,100)、点P2(110,100) 、点P3(100,50)和点P4(100,110)在屏幕上的大致位置。 教师教授 师生互动 引导学生: 请按F1键,查一下MSDN上的Graphics类的信息,将这个类的作用和DrawImage和DrawRectangle方法的详细内容记下来。 中的坐标轴方向完全相反:窗体的左上角为原点(0,0),水平向左则X增大,垂直下向则Y增大。 3. GDI+的坐标系统 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, new Point(25 + (i * 50), 25), new Point(25 + (i * 50), 225)); g.DrawLine(pen, new Point(25 + (i * 50), 275), new Point(25 + (i * 50), 475)); } 4.绘制斜线 g.DrawLine(pen, new Point(175, 25), new Point(275, 125)); g.DrawLine(pen, new Point(275, 25), new Point(175, 125)); g.DrawLine(pen, new Point(175, 375), new Point(275, 475)); g.DrawLine(pen, new Point(175, 475), new Point(275, 375)); 教师演示学生练习,教师巡回指导、及时评价 学生练习: 考虑到画兵位(炮位)线的画法除了坐标不同外是完全一样,所以步骤5只画了其中一个,请学生完成其余兵位(炮位)线。 师生互动 引导学习优异者帮助学习