综合性实验项目教学大纲c语言游戏编程题经典100例
系别:数学与计算机科学系
课程名称:《C语言程序设计》
实验项目名称:应用程序设计 
所涉及综合知识或相关课程:《计算机文化基础》
计划学时:8                      课程类型:公共基础课
适用专业:理工类非计算机专业    大纲审定人:姚珺
一、实验目的与要求
目的:熟悉C语言的编程和调试环境,熟悉应用程序的设计过程,掌握基本的程序设计方法,培养学生用计算机解决实际问题的能力。
要求:根据实验内容,认真编写源程序代码、上机调试程序,书写实验报告。
二、实验内容提要
C语言设计一个五子棋游戏程序,要求在一个方阵上通过两人对弈的形式,依次在棋盘上放置两种颜的棋子,哪一方先让五个棋子形成一条直线(包括横、竖、对角线3个方向)即为获胜。要求用键盘控制下棋过程。
三、实验步骤及结果测试
C语言中有专门用来绘制图形的库函数,绘制棋盘和棋子都可以用相应的库函数来实现。程序主要控制功能都在主函数main()中实现。main()函数首先清屏,调用attention函数,输出提示信息,说明游戏规则,按Y继续,按N则退出程序。接着初始化图形模式,绘制棋盘和初始棋子的位置,输出按键提示。然后在循环中不断从BIOS读取一个按键并做出判断和相应处理。在输入按键为Space时,调用judgewho函数判断是白方还是红方的棋子,从而下一个棋子,按键为ESC键,则关闭图形模式并退出程序,为其它键则调用judgekey函数判断输入的按键并做出相应处理。
采用的主要数据结构和主要函数如下(供参考):
全局数组box[N][N]用于保存当前棋盘上的棋子信息;
全局变量step_xstep_y用于保存白红双方的步数;
全局变量key用于保存输入的按键;
函数draw_box()用于绘制棋盘;
函数draw_cicle(int x,int y,int color)用于以指定的颜在(x,y)坐标处绘制一个圆(相当于棋子);
函数change()用于改变标志状态;
函数judgewho(int x,int y)用于判断是哪方的棋子;
函数judgekey()用于判断输入的非ESCSpace的按键,并做出处理;
函数judgeresult(int x,int y)用于判断输赢的结果;
函数attention()用于在游戏开始时显示文本模式下的游戏规则提示信息。
对程序进行多种测试,即横线、竖线或对角线若有五个同颜的棋子形成一条直线,程序是否能判断处胜负。
四、实验实施的条件(所需场地、设备、实验耗材等)
计算机机房,微型计算机,Visual C++软件。
五、考核形式
    根据应用程序的难易程度、界面是否友好、操作是否方便、程序的正确程度进行打分,满分100分。
六、实验报告要求
实验报告一律用手写,须使用学校实验报告专用纸张。请写明如下信息:
        学生姓名:                号:          专业班级:     
实验类型:□ 验证 综合 设计 创新  实验日期:     
实验报告包括如下内容:实验项目名称,实验目的,实验步骤,函数及其功能说明,完整的源程序代码,心得体会。
制订人:史金成
制订日期:20085