c语言课程设计经典例题贪吃蛇

合集下载

c语言贪吃蛇课程设计报告

c语言贪吃蛇课程设计报告

C语言贪吃蛇课程设计报告摘要本报告介绍了一个基于C语言的贪吃蛇游戏的课程设计项目。

报告首先介绍了贪吃蛇游戏的背景和目标,然后详细说明了设计和实现过程中使用的数据结构、算法和关键技术。

最后,报告讨论了项目的测试结果和改进思路。

1. 引言贪吃蛇是一款经典的电子游戏,它的目标是控制一条蛇在有限空间内移动,吃掉食物并尽可能长大。

贪吃蛇游戏不仅有趣,而且对于初学者来说是一个很好的训练编程技巧的项目。

因此,在本课程设计中选择了贪吃蛇游戏作为项目的主题。

2. 设计目标本课程设计项目的主要目标是设计并实现一个使用C语言开发的贪吃蛇游戏。

具体目标包括: - 实现一个可用键盘控制的贪吃蛇游戏界面; - 设计合适的数据结构来表示贪吃蛇的状态; - 实现贪吃蛇的移动、吃食物、增长等基本功能; - 设计和实现合适的算法来检测和处理蛇与边界、蛇与自身以及蛇与食物的碰撞。

3. 设计与实现为了实现贪吃蛇游戏,我们使用了C语言作为开发语言,并采用了以下关键技术和数据结构:3.1 数据结构为了表示贪吃蛇的状态,我们设计了以下数据结构: - Point结构体用于表示二维坐标点,包括x和y坐标; - SnakeNode结构体用于表示贪吃蛇的每个节点,包括一个Point和指向下一个节点的指针; - Snake结构体用于表示整条贪吃蛇,包括一个指向头节点的指针和当前蛇的长度。

3.2 算法和关键技术为了实现贪吃蛇的移动、吃食物、碰撞等功能,我们采用了以下算法和关键技术: - 使用循环链表数据结构来表示贪吃蛇,使得贪吃蛇的移动和增长操作更高效;- 使用键盘输入来控制贪吃蛇的移动方向; - 使用随机数生成食物的位置; - 使用递归算法检测贪吃蛇与边界、自身以及食物之间的碰撞。

4. 测试与结果分析为了测试贪吃蛇游戏的功能和性能,我们设计了多个测试用例并进行了测试。

测试的结果表明我们的游戏实现了预期的功能,并且在性能方面表现良好。

然而,我们也发现了一些问题和改进的空间: - 贪吃蛇的移动速度过快,导致游戏难度较高; - 游戏界面设计简单,缺乏可玩性。

C语言课程设计--贪吃蛇游戏

C语言课程设计--贪吃蛇游戏

本文由清风灬鬼迷贡献 rtf文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

C语言课程设计报告 题目:贪吃蛇游戏 专 业: 业: 级: 班 级: 号: 学 号: 名: 姓 名: 指导老师: 指导老师: 绩: 成 绩: 设计日期: 设计日期: 目 录 《C语言课程设计》报告 1 语言课程设计》 题目: 题目:贪吃蛇游戏 1 3 一、选题背景 4 二、设计思路 四、程序流程图 5 五、原程序清单 5 六、程序运行结果 11 12 七、设计总结 14 八、教师评语 一、选题背景 C语言实际上已经成为了中级语言的事实上的标准,如果你从事嵌入式开 发、芯片设计等,C语言是必须懂的基础;在高级语言上,C语言的简练和精确 也具备特殊的优势;VC的强大在Windows平台上其它语言更是难与之相匹敌, 在Unix/Linux平台上,C语言也是最终要的语言,Linux的内核也主要是以C语言 写的。

 当然C语言也有缺点:就是难,容易出错,因为它的数据类型需要精确, 而导致不够深入理解的程序员常容易犯错。

 通过本学期对C语言的学习,掌握了C语言的基本语法,能编一些小程序。

 通过这次实习,结合C++语言,编写了著名的贪吃蛇游戏,目的提高自己的编 程水平。

二、设计思路 程序关键在于表示蛇的图形及蛇的移动。

用一个小矩形快表示蛇的一节身 体,身体每长一节,增加一个矩形块,蛇头用俩节表示。

移动时必须从蛇头开 始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前 移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按 下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现 是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新 蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景 色覆盖。

食物的出现与消失也是画矩形块和覆盖矩形块。

C语言课程设计报告(贪吃蛇)

C语言课程设计报告(贪吃蛇)

C语言课程设计报告(项目:贪吃蛇)学号:姓名:课程设计题目:贪吃蛇游戏专业班级:核工程与核技术4班报告人姓名:学号:同组组长:同组其他成员:课程教师:实验地点:95101实验室完成起止日期:2011年3月7日至2011年3 月15日一、课程设计概述(目的、任务、开发环境、参考资料)课程目的:1.熟悉二维数组的应用2.图形库文件中图形函数的使用3.通过游戏程序增加编程兴趣,提高编程水平课程任务:1.数组元素为结构体的数组应用2.全局变量应用3.按键处理4.数组元素与蛇食物对应关系5.图形方式开发环境:turbo C参考资料:《C语言课程设计案例精编》郭翠英等编著中国水利水电出版社二、项目的可行性研究项目流程图三、项目设计的基本原理和采用的主要方法与技术1.项目流程图2.graphics.h库函数中的矩形函数rectangle()等图形函数的应用3.二维数组的应用4.按键控制5.全局变量四、本人实现项目的过程与步骤1.画出项目流程图(如上图)2.写出主函数的整个运行过程3.整理函数运行过程中所需要的函数及定义如:(1).矩形图形函数rectangle()(2).定义蛇和实物的二维数组结构体struct Snake{int x[N]; int y[N]; int node; int direction;int life;}snake;(3).按键定义#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b4.定义各函数,分配功能void Init(void);图形驱动void Close(void);图形结束void DrawK(void);开始画面void GameOver(void);游戏结束void GamePlay(void);游戏过程void PrScore(void);输出成绩5.各函数的编辑开始画面函数(画围墙)游戏过程函数(蛇移动的算法蛇吃食物的算法按键算法等)游戏结束及成绩输出函数6.定义与各函数的整合嵌入7.编译调试8.对程序的扩展功能的调整9.完成实验报告五、个人遇到的困难与获得的主要成果(一)遇到的主要主要困难1.程序结构的理解由于长时间对C语言与数据结构没有接触,使我们对这些有一些相对陌生,主要是二维数组的引用以及循环的控制方面,如:(1) for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/{snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1];}(2)for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ {if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) {GameOver();/*显示失败*/snake.life=1;break;}}2.graphics.h图形库函数的陌生第一次接触graphics.h库函数,对其一无所知通过查阅资料找到graphics.h库函数中几个关键函数的功能及用法。

c语言贪吃蛇课程设计

c语言贪吃蛇课程设计

c语言贪吃蛇课程设计一、教学目标本课程旨在通过学习C语言实现贪吃蛇游戏,让学生掌握C语言编程的基本技能,培养学生的逻辑思维能力和问题解决能力。

具体的教学目标如下:1.理解C语言的基本语法和数据类型。

2.掌握C语言的运算符和表达式。

3.学习C语言的控制结构,包括条件语句和循环语句。

4.了解C语言的函数和数组。

5.能够使用C语言编写简单的程序。

6.能够使用C语言实现贪吃蛇游戏的基本功能,包括蛇的移动、食物的生成和 collision检测。

7.能够优化代码,提高游戏的性能和可读性。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成游戏项目。

2.培养学生的创新思维和问题解决能力,鼓励学生进行游戏的创意设计和优化。

3.培养学生的学习兴趣和自信心,通过完成游戏项目感受到编程的乐趣和成就感。

二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法和数据类型、运算符和表达式、控制结构、函数和数组。

具体的教学大纲如下:1.第一章:C语言概述•C语言的发展历史和特点•C语言的基本语法和结构2.第二章:数据类型和运算符•基本数据类型和变量•运算符和表达式3.第三章:控制结构4.第四章:函数和数组•函数的定义和调用•一维数组和多维数组5.第五章:贪吃蛇游戏实现•蛇的移动和食物的生成•collision检测和游戏结束条件•游戏界面的设计和美化三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。

1.讲授法:通过教师的讲解和演示,向学生传授C语言的基本语法和编程技巧。

2.讨论法:通过小组讨论和分享,培养学生的团队合作意识和沟通能力。

3.案例分析法:通过分析具体的贪吃蛇游戏案例,引导学生思考和解决问题。

4.实验法:通过编写代码和调试程序,培养学生的动手能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:《C语言程序设计》2.参考书:《C语言编程实例解析》3.多媒体资料:PPT课件、视频教程4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)通过以上教学资源的使用,将丰富学生的学习体验,提高学生的学习效果。

c语言贪吃蛇小游戏程序课程设计

c语言贪吃蛇小游戏程序课程设计

学生课程设计报告一、课程设计内容贪吃蛇小游戏程序设计(贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中身体交叉蛇头撞倒自己身体则游戏结束。

)二、技术路线使用VC++6.0作为开发环境,采用控制台的形式完成整个游戏的开发,没有用到MFC。

加入了pcc32.h的头文件及库文件,用于对控制台打印效果的控制。

同时也加入了PlaySound()函数,实现了对菜单选择,游戏开始,游戏结束的音效控制。

游戏栏和输出栏的同时打印,数据的更新打印效果,没有采用双线程的方法实现。

接收用户键盘输入信息,实现游戏暂停,重新开始,菜单选择和进入菜单。

三、设计与实现1.游戏基本功能:游戏有开始菜单界面,并有开始游戏,游戏帮助,关于游戏,退出游戏四个选项游戏初始化后,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个方向键控制蛇移动,蛇在移动过程中撞到墙壁将不会死亡,而是穿过围墙继续行进,但是如果蛇身体交叉蛇头撞到自己的身体,则游戏结束。

同时,游戏过程中可暂停游戏,并有积分系统,且积分每满一定值,蛇的运行速度也会逐步增加。

2.函数定义和声明(1)头文件#include<iostream>#include<windows.h>#include<conio.h>#include<time.h>#include<stdlib.h>#include "mmsystem.h" #pragma comment (lib,"winmm.lib")#include"pcc32.h"#pragma comment(lib, "pcc32_vc6.lib") using namespace std; #define UP 72//定义上下左右常量#define DOWN 80#define LEFT 75#define RIGHT 77#define ESC 27#define SPACE 32//空格#define ENTER 13//回车(2)函数声明void GamePrint();//游戏开始画面函数void Gameinit();//游戏初始化函数void Sweep_Screem();//清屏函数void Gotoxy(int , int); //光标移动函数void Hid_Cursor();//光标隐藏函数void Snake_Move();//蛇运动函数int Create_Food();//食物产生函数void Pwall();//画墙函数void Key();//键盘操作和处理函数void Hit_Wall();//判断是否撞墙void Eat_Itself();//判断是否咬到自己void Whether_Eat();//判断蛇是否吃到食物void GameRun();//游戏运行函数void SurFace();//开始菜单界面void GameOver(); //游戏结束判断函数void Pause();//游戏暂停函数void MyCount1();//统计边栏,用来做提示void MyCount2();//统计边栏,用来做一些统计void Menu( int );//开始界面void Inti_Data();//初始化数据(3)变量声明int X, Y;//食物坐标int Map[79][24]={{0}};//地图尺寸,其实有食物记为1int over = 0;//用来标记游戏结束int score = 0;//记录分数int speed = 130;//记录速度int ColoArray[15]={15,1,2,3,4,5,6,7,8,9,10,11,12,13,14} ;//自己定义的用来控制颜色的数组int length = 3;//初始化蛇的长度为3int Key_Menu;//开始菜单界面用的零时按键3.主函数int main()int main() //主函数{START:Inti_Data();fixConsoleSize(18,15);Hid_Cursor();SurFace();PlaySound(TEXT("m22.wav"), NULL, SND_FILENAME | SND_ASYNC );fixConsoleSize(105,25);GamePrint();Gameinit();GameRun();while(over) //如果游戏结束了,是否重新开始。

C语言项目案例之贪吃蛇

C语言项目案例之贪吃蛇

C语⾔项⽬案例之贪吃蛇项⽬案例:贪吃蛇下载链接:1. 初始化墙代码:// 初始化墙void init_wall(void){for (size_t y = 0; y <= HIGH; ++y){for (size_t x = 0; x <= WIDE; ++x){if (x == WIDE || y == HIGH) // 判断是否到墙{printf("=");}else{printf(" ");}}printf("\n");}}效果:2. 定义蛇和⾷物类型typedef struct{int x;int y;}FOOD; // ⾷物typedef struct{int x;int y;}BODY; // ⾝体typedef struct{int size; // ⾝体长度BODY body[WIDE*HIGH];}SNAKE; // 蛇3. 初始化蛇和⾷物// 定义⼀个蛇和⾷物SNAKE snake;FOOD food;// 初始化⾷物void init_food(void){food.x = rand() % WIDE; // 随机⽣成坐标food.y = rand() % HIGH;}// 初始化蛇void init_snake(void){snake.size = 2;// 将蛇头初始化到墙中间snake.body[0].x = WIDE / 2;snake.body[0].y = HIGH / 2;// 蛇⾝紧跟蛇头snake.body[1].x = WIDE / 2 - 1;snake.body[1].y = HIGH / 2;}4. 显⽰UI// 显⽰UIvoid showUI(void){// 显⽰⾷物// 存放光标位置COORD coord;coord.X = food.x;coord.Y = food.y;// 光标定位SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); putchar('$');// 显⽰蛇for (size_t i = 0; i < snake.size; ++i){// 设置光标coord.X = snake.body[i].x;coord.Y = snake.body[i].y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); if (i == 0)}else{putchar('#');}}}效果:最终代码// main.c#define _CRT_SECURE_NO_WARNINGS#include "./snakeGame.h"int main(void){// 取消光标CONSOLE_CURSOR_INFO cci;cci.bVisible = FALSE; // 取消光标cci.dwSize = sizeof(cci);SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cci); system("color 2");printf("欢迎来到贪吃蛇\n准备好了吗?按s/S开始,q/Q退出\n"); char ch = _getch();switch (ch){case 's':case 'S':system("color 0");system("cls");break;default:return 0;}init_wall();init_food();init_snake();showUI();playGame();return 0;}// snakeGame.c#include "./snakeGame.h"// 定义⼀个蛇和⾷物SNAKE snake;FOOD food;// ⽅向增量int dx = 0;int dy = 0;int lx, ly; // 尾节点// 初始化⾷物void init_food(void){food.x = rand() % WIDE; // 随机⽣成坐标food.y = rand() % HIGH;}// 初始化蛇void init_snake(void){snake.size = 2;snake.fraction = 0;// 将蛇头初始化到墙中间snake.body[0].x = WIDE / 2;snake.body[0].y = HIGH / 2;snake.body[1].x = WIDE / 2 - 1;snake.body[1].y = HIGH / 2;}// 初始化墙void init_wall(void){for (size_t y = 0; y <= HIGH; ++y){for (size_t x = 0; x <= WIDE; ++x){if (x == WIDE || y == HIGH) // 判断是否到墙{printf("=");}else{printf(" ");}}printf("\n");}printf("分数:0\n");}// 显⽰UIvoid showUI(void){// 显⽰⾷物// 存放光标位置COORD coord;coord.X = food.x;coord.Y = food.y;// 光标定位SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);putchar('$');// 显⽰蛇for (size_t i = 0; i < snake.size; ++i){// 设置光标coord.X = snake.body[i].x;coord.Y = snake.body[i].y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);if (i == 0){putchar('@');}else{putchar('#');}}// 处理尾节点coord.X = lx;coord.Y = ly;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);putchar(' ');coord.X = WIDE;coord.Y = HIGH;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);printf("\n分数:%d\n",snake.fraction);}void playGame(void){COORD _coord;system("color 7");char key = 'D';// 蛇不能撞墙while (snake.body[0].x >= 0 && snake.body[0].x <= WIDE && snake.body[0].y >= 0 && snake.body[0].y <= HIGH) {// 蛇不能撞⾃⼰for (size_t i = 1; i < snake.size; ++i){if (snake.body[0].x == snake.body[i].x && snake.body[0].y == snake.body[i].y){goto OVER;}}// 撞⾷物if (snake.body[0].x == food.x && snake.body[0].y == food.y){++snake.size;++snake.fraction;// 随机出现⾷物init_food();}// 控制蛇移动// 判断是否按下按键if (_kbhit()){key = _getch(); // 不需要敲回车,按下就⽴马确认}// 判断W A S D中哪个按键按下switch (key){case 'w':case 'W':dx = 0;dy = -1;break;case 'a':case 'A':dx = -1;dy = 0;break;case 's':case 'S':dx = 0;dy = 1;break;case 'd':dx = 1;dy = 0;break;case 'q':case 'Q':_coord.X = WIDE;_coord.Y = HIGH;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), _coord); putchar('\n');return;}// 蛇移动// 记录尾节点位置lx = snake.body[snake.size - 1].x;ly = snake.body[snake.size - 1].y;for (size_t i = snake.size - 1; i > 0; --i){snake.body[i].x = snake.body[i - 1].x;snake.body[i].y = snake.body[i - 1].y;}// 更新蛇头snake.body[0].x += dx;snake.body[0].y += dy;showUI();Sleep(500); // 延时}// 游戏结束OVER:system("color 4");_coord.X = 6;_coord.Y = HIGH + 1;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), _coord); printf("\n游戏结束");printf("按r/R重新开始,按q/Q退出\n");char _key;_key = _getch();switch (_key){case 'r':case 'R':system("cls");init_wall();init_food();init_snake();showUI();playGame();case 'Q':case 'q':default:system("color 7");return;}}// snakeGame.h#pragma once#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <Windows.h>#define WIDE 60 // 长#define HIGH 20 // ⾼typedef struct{int x;int y;}FOOD; // ⾷物typedef struct{int x;int y;}BODY; // ⾝体typedef struct{int size; // ⾝体长度int fraction; // 分数BODY body[WIDE*HIGH];}SNAKE; // 蛇void init_wall(void);void init_food(void);void init_snake(void);void showUI(void);void playGame(void);。

c贪吃蛇课程设计

c贪吃蛇课程设计

c 贪吃蛇课程设计一、课程目标知识目标:1. 让学生掌握“贪吃蛇”游戏的编程基础,理解游戏逻辑和算法。

2. 学习运用坐标系表示蛇的位置和移动。

3. 掌握运用循环和条件语句实现蛇的自动移动和食物的随机生成。

技能目标:1. 培养学生动手编写代码的能力,提高问题解决和逻辑思维能力。

2. 培养学生运用编程语言实现创意想法的能力,激发创新意识。

情感态度价值观目标:1. 培养学生对编程学科的兴趣,提高学习积极性。

2. 培养学生团队协作精神,学会共同解决问题,分享学习成果。

3. 培养学生面对挑战不轻言放弃,勇于尝试和探索的精神。

课程性质分析:本课程为信息技术课程,以实践操作为主,结合理论讲解,旨在培养学生编程兴趣和动手能力。

学生特点分析:六年级学生对新鲜事物充满好奇心,具备一定的逻辑思维能力,但在编程方面可能存在不同程度的入门难度。

教学要求:1. 注重理论与实践相结合,让学生在动手实践中掌握编程知识。

2. 创设有趣的游戏场景,激发学生学习兴趣,提高学习积极性。

3. 重视团队协作,培养学生共同解决问题的能力。

二、教学内容1. 游戏编程基础:介绍编程环境和使用方法,学习基本的编程语法和结构。

- 课本章节:第一章 认识编程- 内容列举:编程语言概述、开发环境搭建、第一个程序编写。

2. 坐标系与图形绘制:理解坐标系概念,掌握在坐标系中表示物体位置和移动。

- 课本章节:第二章 图形与坐标系- 内容列举:坐标系原理、图形绘制、物体移动实现。

3. 贪吃蛇游戏逻辑与算法:分析贪吃蛇游戏的逻辑,学习实现蛇的移动、食物的生成与吃掉食物。

- 课本章节:第三章 循环与条件语句- 内容列举:循环语句、条件语句、游戏逻辑实现。

4. 编程实践:动手编写贪吃蛇游戏,实现游戏的基本功能。

- 课本章节:第四章 编程实践- 内容列举:项目分析、编写代码、调试运行。

教学进度安排:第一课时:介绍编程基础,搭建开发环境,编写第一个程序。

第二课时:学习坐标系与图形绘制,实现物体在坐标系中的移动。

C语言课程设计报告——贪吃蛇源程序

C语言课程设计报告——贪吃蛇源程序

C 语言课程设计(小游戏贪吃蛇得程序设计报告)设计人:班级:201年月号目录一:概述1:研究背景及意义2:设计得任务与需要知识点3:具体完成设计内容二:需求分析1:功能需求2:操作方法三:总体设计1:模块划分2:数据结构设计四:详细设计1:主空摸块设计2:绘制游戏界面3:游戏得具体过程4:游戏得结束处理5:显示排行榜信息模块五:程序得调试与测试1:动画与音乐同步2:蛇得运行3:终止程序六:结论七::结束语八:程序清单九:参考文献一. 概述本课程设计以软件工程方法为指导,采用了结构化,模块化得程序设计方法,以C语言技术为基础,使用TurboC++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统得实现与测试。

1、1 研究得背景及意义随着社会得发展,人们生活得节奏日益加快,越来越多得人加入了全球化得世界。

人们不再拘泥与一小块天地,加班,出差成了现代人不可避免得公务。

而此时一款可以随时随地娱乐得游戏成为了人们得需要。

此次课程设计完成得贪吃蛇小游戏,正就是为了满足上述需求而设计出来得。

贪吃蛇游戏虽小,却设计诸多得知识点。

通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程得与那个发,技术与工具开发软件得过程,进一步掌握结构化,模块化得程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构得使用方法,掌握图形,声音,随机数等多种库函数得使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程得学习与将来实际软件开发打下坚实得基础。

1、2设计得任务与需要得知识点1、2、1 课程设计主要完成得任务1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计得思想,培养解决实际问题得能力。

2)有同步播放动画,声音效果。

3)设计好数组元素与蛇,食物得对应关系。

c贪吃蛇游戏课程设计

c贪吃蛇游戏课程设计

c 贪吃蛇游戏课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言的基本语法和编程逻辑。

2. 学生能运用C语言编写简单的贪吃蛇游戏,包括游戏界面显示、蛇的移动、食物的生成和得分功能。

3. 学生了解并掌握结构体、数组、函数等C语言核心概念在游戏编程中的应用。

技能目标:1. 学生通过编写贪吃蛇游戏,提高逻辑思维和问题解决能力。

2. 学生能够运用C语言进行程序设计和调试,培养编程实践能力。

3. 学生能够自主查找并利用相关资料,提高信息检索和自主学习能力。

情感态度价值观目标:1. 学生在编程过程中,培养耐心和细心的品质,增强面对困难的勇气和毅力。

2. 学生通过团队协作,培养沟通和合作意识,提高团队协作能力。

3. 学生在完成游戏项目的过程中,激发对编程和计算机科学的兴趣,树立学习信心。

课程性质:本课程为C语言编程实践课,以贪吃蛇游戏为载体,让学生在实际编程过程中掌握C语言的基本知识和技能。

学生特点:学生处于初中阶段,对计算机编程有一定的好奇心,但编程基础薄弱,需要通过具体实例来激发学习兴趣。

教学要求:教师需关注学生的个体差异,提供个性化的指导,帮助学生掌握C 语言编程技能,并注重培养学生的学习兴趣和情感态度。

在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、控制结构(循环和条件语句)。

2. 函数:介绍函数定义、调用、参数传递和返回值,强调模块化编程的重要性。

3. 结构体:讲解结构体的定义和使用,以及如何用结构体表示贪吃蛇和食物。

4. 数组:介绍数组的概念和应用,特别是在贪吃蛇游戏中存储和操作蛇的移动。

5. 图形显示:利用C语言图形库(如curses或SDL)实现贪吃蛇游戏的图形界面。

6. 游戏逻辑:编写蛇的移动、食物的随机生成、吃到食物后的身体增长和得分逻辑。

7. 键盘输入:处理玩家的键盘输入,实现蛇的方向控制。

8. 游戏循环:构建游戏循环,使游戏能够在用户输入下不断运行和更新状态。

c语言课程设计贪吃蛇设计

c语言课程设计贪吃蛇设计
物或蛇身
Part Three
C语言基础知识
数据类型和变量
基本数据类型:int、float、char、double等 复合数据类型:数组、结构体、指针等 变量声明:使用关键字"int"、"float"等声明变量 变量赋值:使用"="为变量赋值 变量作用域:局部变量、全局变量等 变量生命周期:从声明到释放的过程
结构体和联合体:包括结构 体定义、结构体初始化、结 构体访问、联合体定义、联 合体初始化、联合体访问等
函数和数组
函数:C语言中的基本单元,用于实现特定功能
数组:C语言中的基本数据类型,用于存储一组相同类型 的数据
数组函数:如strlen()、strcpy()等,用于操作字符串
指针:C语言中的重要概念,用于指向内存地址
Part Four
贪吃蛇游戏设计
游戏逻辑设计
游戏结束:当蛇碰到边界或 自己时结束
游戏循环:不断更新蛇的位 置和方向
游戏开始:初始化蛇的位置 和方向
得分计算:根据吃到的食物 数量计算得分
游戏难度:根据得分调整游 戏难度,如增加蛇的速度或
改变食物的位置
游戏界面:设计游戏界面, 包括蛇、食物、边界等元素
Part Seven
总结和展望
课程设计收获和体会
掌握了C语言的基本语法和编 程技巧
学会了如何设计并实现一个完 整的游戏项目
提高了解决问题的能力和团队 协作能力
对游戏开发有了更深入的了解 和兴趣
C语言在游戏开发中的应用前景
游戏开发中,C语言具有高效、稳定的特点,适合开发大型游戏。 C语言具有广泛的应用领域,可以开发各种类型的游戏,如动作、冒险、策略等。 C语言具有强大的社区支持,可以找到大量的游戏开发资源和教程。 C语言在游戏开发中具有广泛的应用前景,可以开发出更多优秀的游戏作品。

C语言课程设计 贪吃蛇

C语言课程设计 贪吃蛇
{gotoxy(D*2+2,2);printf("Game over");c=0;} //若碰边或自身输出游戏结束
first(); //移动蛇头
if(p1->c=='o')
end(); //若没食物移动尾
else
{
gotoxy(D*2+8,1);score++;printf("%d",score); //输出分数
}
}
void print2() //五子棋界面函数
{
int i,j;
for(i=0;i<D;i++)
{
for(j=0;j<D;j++)
{b[i][j]='o';printf("十");}
printf("\n");
}
}
void tanchishe() //贪吃蛇总函数
{
int i;
char d,g;
k=4;
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
#define D 20
int x,y,xx,yy,score=0,t1,t2,k,speed;
char b[D][D],c1=1,c2=2,c=1;
struct point{ //定义结构体
p1->z=1;
if(x>=1&&x<=D&&y>=1&&y<=D)

c程序贪吃蛇课程设计

c程序贪吃蛇课程设计

c程序贪吃蛇课程设计一、课程目标知识目标:1. 学生能理解C语言中数组、函数、循环和条件语句的基本概念及应用。

2. 学生能够运用C语言编写简单的贪吃蛇游戏,理解游戏逻辑和程序结构。

3. 学生了解如何在C程序中处理键盘输入和图形界面输出。

技能目标:1. 学生掌握利用C语言进行结构化编程,培养解决问题的能力。

2. 学生能够运用调试工具检查和修正程序中的错误,提高程序调试能力。

3. 学生通过团队协作完成项目,提高沟通与协作能力。

情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习计算机科学的热情。

2. 学生通过编写游戏程序,体会编程的乐趣和挑战,形成积极的学习态度。

3. 学生在团队协作中学会相互尊重、支持和鼓励,培养集体荣誉感。

课程性质分析:本课程为实践性较强的课程设计,通过贪吃蛇游戏的开发,让学生将所学的C 语言知识应用于实际项目中,提高编程能力和实际问题解决能力。

学生特点分析:考虑到学生为初学者,课程设计将从简单到复杂逐步引导,使学生在已有知识基础上,逐步掌握C语言的高级应用。

教学要求:1. 教师应注重理论与实践相结合,指导学生完成课程设计。

2. 教学过程中,强调学生自主探究和团队协作,培养学生独立思考和解决问题的能力。

3. 教师应及时给予反馈,帮助学生不断调整和完善课程设计,提高学习效果。

二、教学内容1. C语言基础知识复习:数组、函数、指针、循环和条件语句等基本概念。

相关教材章节:第1章-第4章2. 游戏逻辑设计:- 蛇的移动原理。

- 食物的随机生成。

- 判断撞墙和自撞逻辑。

相关教材章节:第6章-第7章3. 图形界面输出:- 使用标准库函数进行图形界面输出。

- 蛇和食物的图形表示。

相关教材章节:第9章4. 键盘输入处理:- 键盘事件监听。

- 响应按键改变蛇的移动方向。

相关教材章节:第8章5. 程序结构设计:- 模块化编程,划分功能函数。

- 程序流程控制。

相关教材章节:第5章6. 调试与优化:- 使用调试工具进行程序调试。

贪食蛇c语言课程设计

贪食蛇c语言课程设计

《C语言程序设计》题目贪吃蛇c语言程序设计(由于能力问题,非本人编写)一贪吃蛇游戏内容贪吃蛇是一款经典的小游戏,因为它简单有趣,老少皆宜,受到大家的喜爱。

由于本人的能力有限,开发的贪吃蛇游戏比较简单。

游戏开始后,首先出现welcome的开始画面,按enter键进入游戏状态,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,按ESC键可以选择停止游戏,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

二 上机环境操作系统:windows xp 开发工具:Turbo c 2.0三 函数调用关系图mainInitwelcome Huamian GameplayEndPrscoreClosscoreWhile(1)while(!kbhit ())key=bioskey (0)四各函数功能说明1.main()主函数2.void welcome()显示程序初始界面3.void Int () 图形驱动函数4.void Huamian ()画面开始函数5.void End ()游戏结束画面函数6.void Close ()图形结束函数7.void GamePlay()玩游戏过程函数8.void Printscore( ) 输出分数五流程图1. 主函数流程图startInit()welcome()clearviewpointHuamian()Gameplay()Close( )结束2 图形驱动函数Init()3.界面函数Huamian()4 游戏过程函数GamePlay ( )InitDETECTinitgraphcleardevice结束开始cleardevice()setcolor()Setlinestyle( ) rectangle(48,38,608,458) rectangle(57,47,599,449);结束yesnoyesnoyes yesnoyes nofood.y++ yesnoyes开始While1while(!kbhit(if(food.refood==1) food.x=rand()%380+60 food.y=rand()%330+60 while(food.x%10!=0) food.x++; while(food.y%10!=0) food.y++ food.refood=0 key=bioskey(0)key==ESCbreakkey==UP&&sn ake.direction!=4snake.direction=3;key==RIGHT&&snake.directiosnake.direction=1key==LEFT &&snake.di rection!=1六程序运行效果图(由于本人使用的是turbo c 2.0在全屏模式下无法截图,用手机拍下,有些不清晰还请老师见谅。

贪吃蛇游戏c课程设计

贪吃蛇游戏c课程设计

贪吃蛇游戏c 课程设计一、课程目标知识目标:1. 学生能理解并掌握编程语言的基本语法和结构,特别是Python语言的基本操作和流程控制。

2. 学生能运用所学知识,创建并完善一个简易的贪吃蛇游戏,包括蛇的移动、食物的生成和得分机制。

3. 学生理解二维数组的使用,并能将其应用于游戏界面的构建。

技能目标:1. 学生通过编写代码,培养逻辑思维和问题解决能力,提高编程实践技能。

2. 学生学会运用调试工具,能够自主发现并修正程序中的错误。

3. 学生能够合作完成项目,培养团队协作能力和沟通技巧。

情感态度价值观目标:1. 学生培养对计算机科学的兴趣和热情,认识到编程对于未来发展的重要性。

2. 学生在编程实践中体会失败与成功,培养面对困难的坚持和克服能力。

3. 学生通过小组合作,学会尊重他人意见,共享成果,增强集体荣誉感。

课程性质:本课程为信息技术课程,通过实践操作使学生掌握编程技能,培养创新思维。

学生特点:学生为初中年级,对新鲜事物充满好奇,动手能力强,但注意力集中时间有限。

教学要求:教学应注重实践与理论相结合,关注个体差异,鼓励学生探索和创造,确保每个学生都能参与并完成任务。

教学过程中,应将目标具体化为可观察的学习成果,便于进行有效的教学设计和学习成效评估。

二、教学内容本课程依据课程目标,结合教材内容,主要包括以下部分:1. Python基础语法:变量、数据类型、运算符、条件语句和循环语句,让学生掌握编程的基本结构。

- 教材章节:第一章 Python基础2. 列表和二维数组:介绍列表的基本操作,二维数组在游戏中的应用,为构建游戏界面打下基础。

- 教材章节:第二章 数据结构3. 函数和模块:学习编写函数,实现代码的模块化,提高代码的可读性和可维护性。

- 教材章节:第三章 函数与模块4. 图形用户界面(GUI):利用Python的图形库,如Tkinter,设计贪吃蛇游戏的用户界面。

- 教材章节:第四章 图形用户界面5. 游戏设计:结合以上知识,设计并实现一个简易的贪吃蛇游戏,包括蛇的移动、食物的生成、得分和游戏结束条件。

c贪吃蛇课课程设计

c贪吃蛇课课程设计

c 贪吃蛇课课程设计一、教学目标本课程旨在让学生了解和掌握“贪吃蛇”游戏的基本原理和编程技巧。

通过本课程的学习,学生将能够:1.掌握Python编程语言的基本语法。

2.了解“贪吃蛇”游戏的规则和逻辑。

3.学会使用Python编程语言实现“贪吃蛇”游戏。

4.培养学生的逻辑思维能力和问题解决能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.Python编程语言的基本语法和操作。

2.“贪吃蛇”游戏的规则和逻辑。

3.使用Python编程语言实现“贪吃蛇”游戏的步骤和技巧。

4.游戏编程中的常见问题和解决方法。

三、教学方法本课程将采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学。

1.讲授法:通过讲解Python编程语言的基本语法和操作,以及“贪吃蛇”游戏的规则和逻辑,使学生掌握相关知识。

2.案例分析法:通过分析典型的“贪吃蛇”游戏案例,使学生了解游戏编程的技巧和方法。

3.实验法:让学生动手编写“贪吃蛇”游戏,培养学生的实际操作能力和问题解决能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用合适的Python编程语言教材,为学生提供基础知识。

2.参考书:提供相关的游戏编程书籍,丰富学生的知识体系。

3.多媒体资料:制作课件和教学视频,帮助学生更好地理解知识。

4.实验设备:提供计算机等实验设备,让学生能够顺利进行实验操作。

五、教学评估本课程的评估方式包括平时表现、作业和考试等。

评估方式应客观、公正,能够全面反映学生的学习成果。

1.平时表现:通过课堂参与、提问和回答问题等方式,评估学生的学习态度和积极性。

2.作业:布置相关的编程作业,评估学生的理解和掌握程度。

3.考试:进行期中和期末考试,评估学生对课程知识的掌握情况。

六、教学安排本课程的教学安排如下:1.教学进度:按照教材和教学大纲的要求,合理安排每个章节的教学内容和进度。

2.教学时间:每个课时为45分钟,每周安排2课时。

c语言课程设计经典例题贪吃蛇

c语言课程设计经典例题贪吃蛇

c语⾔课程设计经典例题贪吃蛇源代码,完美运⾏。

结尾附图#include#include#include#includeint head=3 ,tail=0;int main(){int i,j,k=0;int zuobiao[2][80];long start;int direction=77;int gamespeed;int timeover;int change(char qipan[20][80],int zuobiao[2][80],char direction);zuobiao[0][tail]=1;zuobiao[1][tail]=1;zuobiao[0][1]=1;zuobiao [1][1]=2;zuobiao[0][2]=1;zuobiao[1][2]=3;zuobiao[0][head]=1;zu obiao[1][head]=4;/*处理棋盘*/char qipan[20][80];//定义棋盘for(i=0;i<20;i++)for(j=0;j<80;j++)qipan[i][j]=' ';//初始化棋盘for(i=0;i<80;i++)qipan[0][i]='_';for(i=0;i<20;i++)qipan[i][0]='|';for(i=0;i<20;i++)qipan[i][79]='|';for(i=0;i<80;i++)qipan[19][i]='_';qipan[1][1]=qipan[1][2]=qipan[1][3]='*';//初始化蛇的位置qipan[1][4]='#';printf("This is a game of a SNAKE.\nGOOD LUCK TO YOU !\n");printf("Input your game speed,please.(e.g.300)\n");scanf("%d",&gamespeed);{system("cls");for(i=0;i<20;i++)//打印出棋盘for(j=0;j<80;j++)printf("%c",qipan[i][j]);timeover=1;start=clock();while(!kbhit()&&(timeover=clock()-start<=gamespeed));if(timeover){getch();direction=getch();}elsedirection=direction;if(!(direction==72||direction==80||direction==75||direction==7 7)) {return 0;system("cls");printf("GAME OVER!\n");}if(!change(qipan,zuobiao,direction)){direction='q';system("cls");printf("GAME OVER!\n");}}return 0;}int change(char qipan[20][80],int zuobiao[2][80],char direction) {int x,y;if(direction==72)x=zuobiao[0][head]-1;y=zuobiao[1][head];x=zuobiao[0][head]+1;y=zuobiao[1][head];if(direction==75)x=zuobiao[0][head];y=zuobiao[0][head]-1;if(direction==77)x=zuobiao[0][head];y=zuobiao[1][head]+1;if(x==0||x==18||y==78||y==0)return 0;if(qipan[x][y]!=' ')return 0;qipan[zuobiao[0][tail]][zuobiao[1][tail]]=' ';tail=(tail+1)%80;qipan[zuobiao[0][head]][zuobiao[1][head]]='*'; head=(head+1)%80;zuobiao[0][head]=x;zuobiao[1][head]=y;qipan[zuobiao[0][head]][zuobiao[1][head]]='#'; return 1;}运⾏结果图。

c贪吃蛇程序课程设计

c贪吃蛇程序课程设计

c 贪吃蛇程序课程设计一、课程目标知识目标:1. 学生能理解并掌握贪吃蛇游戏的基本原理和编程逻辑;2. 学生能运用所学编程知识,独立编写并调试一个简单的贪吃蛇程序;3. 学生能理解并运用坐标定位、方向控制、碰撞检测等编程概念。

技能目标:1. 学生能够运用编程语言(如Python)实现贪吃蛇游戏的基本功能;2. 学生通过编写贪吃蛇程序,培养逻辑思维和问题解决能力;3. 学生通过团队协作,提高沟通与协作能力。

情感态度价值观目标:1. 学生对编程产生兴趣,培养主动学习和探索的精神;2. 学生在编写程序过程中,树立正确的价值观,认识到编程对生活的影响;3. 学生通过完成课程任务,增强自信心和成就感,激发进一步学习编程的热情。

课程性质:本课程为信息技术课程,旨在通过实践操作,让学生掌握编程基础知识和技能。

学生特点:六年级学生,具备一定的计算机操作能力,好奇心强,喜欢尝试新事物。

教学要求:结合学生特点,注重实践操作,鼓励学生动手编写程序,培养其编程兴趣和技能。

在教学过程中,关注学生的个体差异,提供适当的指导和帮助,确保每位学生都能达到课程目标。

通过课程学习,使学生能够将所学知识应用于实际编程任务,实现具体的学习成果。

二、教学内容1. 引入编程思维:介绍编程的基本概念,如算法、程序等,通过案例展示编程在生活中的应用,引发学生兴趣。

2. 编程环境搭建:指导学生安装并熟悉编程环境(如Python解释器和IDLE),了解编程工具的基本操作。

3. 基本语法讲解:讲解Python基本语法,如变量定义、数据类型、控制结构(if判断、循环)等,为学生编写贪吃蛇程序打下基础。

4. 贪吃蛇游戏原理分析:讲解贪吃蛇游戏的基本规则、原理,分析游戏中的坐标定位、方向控制、食物生成、碰撞检测等关键功能。

5. 编写贪吃蛇程序:按照以下步骤进行:a. 创建游戏窗口和蛇、食物对象;b. 实现蛇的移动、转向功能;c. 实现食物的随机生成;d. 实现碰撞检测和游戏结束逻辑;e. 优化程序,添加计分、速度等功能。

贪吃蛇c程序课程设计

贪吃蛇c程序课程设计

贪吃蛇 c程序课程设计一、课程目标知识目标:1. 理解C语言中数组、指针、函数等基本概念,并能够运用到程序设计中;2. 掌握C语言中控制台输入输出、字符图形显示等基本操作;3. 学习贪吃蛇游戏的逻辑设计,理解游戏中的数据结构和算法。

技能目标:1. 能够编写简单的C程序,实现贪吃蛇游戏的基本功能;2. 学会运用数组管理游戏中的蛇和食物;3. 学会使用指针操作数组,实现蛇的移动和增长;4. 提高问题分析能力,能够将实际问题转化为程序设计中的数据结构和算法。

情感态度价值观目标:1. 培养学生热爱编程,主动探索新知识的精神;2. 培养学生的团队协作意识,学会与他人分享和交流;3. 增强学生的自信心,敢于面对和解决问题;4. 培养学生良好的编程习惯,注重代码规范和优化。

课程性质:本课程为实践性较强的编程课程,通过贪吃蛇游戏的设计,让学生在实际操作中掌握C语言编程技巧。

学生特点:学生已经具备一定的C语言基础,对编程感兴趣,但可能缺乏实际项目经验。

教学要求:教师应注重理论与实践相结合,引导学生主动思考,培养学生解决问题的能力。

在教学过程中,关注学生的个体差异,提供个性化指导。

通过课程学习,使学生能够达到上述课程目标,实现具体的学习成果。

二、教学内容1. C语言基础知识复习:数组、指针、函数的定义和使用方法,重点回顾数组操作和指针与数组的关系。

相关教材章节:第3章 数组与字符串,第4章 指针,第6章 函数。

2. 控制台输入输出操作:printf、scanf函数的使用,以及清屏、光标定位等控制台操作。

相关教材章节:第2章 C语言基础,第7章 输入输出。

3. 游戏逻辑设计:介绍贪吃蛇游戏的基本规则、数据结构(如链表表示蛇身)和算法(如移动、碰撞检测)。

相关教材章节:第8章 结构体与链表,第10章 排序与查找。

4. 编程实践:指导学生编写贪吃蛇游戏程序,实现以下功能:a. 游戏初始化,包括蛇和食物的生成;b. 键盘控制蛇的移动;c. 判断蛇吃到食物,实现蛇身的增长;d. 判断游戏结束条件,如蛇撞墙或撞到自身。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

源代码,完美运行。

结尾附图
#include<stdio.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
int head=3 ,tail=0;
int main()
{
int i,j,k=0;
int zuobiao[2][80];
long start;
int direction=77;
int gamespeed;
int timeover;
int change(char qipan[20][80],int zuobiao[2][80],char direction);
zuobiao[0][tail]=1;zuobiao[1][tail]=1;zuobiao[0][1]=1;zuobiao [1][1]=2;zuobiao[0][2]=1;zuobiao[1][2]=3;zuobiao[0][head]=1;zu obiao[1][head]=4;
/*处理棋盘*/
char qipan[20][80];//定义棋盘
for(i=0;i<20;i++)
for(j=0;j<80;j++)
qipan[i][j]=' ';//初始化棋盘
for(i=0;i<80;i++)
qipan[0][i]='_';
for(i=0;i<20;i++)
qipan[i][0]='|';
for(i=0;i<20;i++)
qipan[i][79]='|';
for(i=0;i<80;i++)
qipan[19][i]='_';
qipan[1][1]=qipan[1][2]=qipan[1][3]='*';//初始化蛇的位置
qipan[1][4]='#';
printf("This is a game of a SNAKE.\nGOOD LUCK TO YOU !\n");
printf("Input your game speed,please.(e.g.300)\n");
scanf("%d",&gamespeed);
while(direction!='q')
{
system("cls");
for(i=0;i<20;i++)//打印出棋盘
for(j=0;j<80;j++)
printf("%c",qipan[i][j]);
timeover=1;
start=clock();
while(!kbhit()&&(timeover=clock()-start<=gamespeed));
if(timeover)
{
getch();
direction=getch();
}
else
direction=direction;
if(!(direction==72||direction==80||direction==75||direction==7 7))
{
return 0;
system("cls");
printf("GAME OVER!\n");
}
if(!change(qipan,zuobiao,direction))
{
direction='q';
system("cls");
printf("GAME OVER!\n");
}
}
return 0;
}
int change(char qipan[20][80],int zuobiao[2][80],char direction)
{
int x,y;
if(direction==72)
x=zuobiao[0][head]-1;y=zuobiao[1][head];
if(direction==80)
x=zuobiao[0][head]+1;y=zuobiao[1][head];
if(direction==75)
x=zuobiao[0][head];y=zuobiao[0][head]-1;
if(direction==77)
x=zuobiao[0][head];y=zuobiao[1][head]+1;
if(x==0||x==18||y==78||y==0)
return 0;
if(qipan[x][y]!=' ')
return 0;
qipan[zuobiao[0][tail]][zuobiao[1][tail]]=' ';
tail=(tail+1)%80;
qipan[zuobiao[0][head]][zuobiao[1][head]]='*';
head=(head+1)%80;
zuobiao[0][head]=x;
zuobiao[1][head]=y;
qipan[zuobiao[0][head]][zuobiao[1][head]]='#';
return 1;
}
运行结果图。

相关文档
最新文档