
贪吃蛇游戏----《C程序设计课程设计》 50
贪吃蛇游戏----《C程序设计课程设计》一、设计要求编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过...
贪吃蛇游戏----《C程序设计课程设计》
一、 设计要求
编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体)游戏结束。
二、设计内容
1.游戏界面:边框表示围墙,红色矩形代表蛇,绿色小方块代表食物。
2.设计思路
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块。
3.数据结构
#define N 200
stuct Food
{
int x ; /*食物的横坐标*/
int y ; /*食物的纵坐标*/
int yes ; /*判断是否要出现食物的变量*/
}food /*食物的结构体*/
struct Snake
{
intx[N]; /*蛇的横坐标*/
inty[N]; /*蛇的纵坐标*/
intnode; /*蛇的节数*/
intdirection; /*蛇的移动方向*/
intlife; /*蛇生命,0活着,1死亡*/
}snake;
4.主要函数
1)主函数main():初始化图形系统,调用DrawK()画出开始画面,调用函数Gameplay(),即玩游戏过程,游戏结束后调用Close()关闭图形系统,结束程序。
2)画界面函数DrawK();
3)游戏具体过程函数Gameplay();
4)游戏结束函数Gameplay(),游戏结束,清除屏幕,输出分数,显示游戏结束信息。
5)PrScore(),输出分数。
6)Close()函数图形结束。在显示游戏结束信息的画面时,按任意键关闭图形系统,结束程序。 展开
一、 设计要求
编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体)游戏结束。
二、设计内容
1.游戏界面:边框表示围墙,红色矩形代表蛇,绿色小方块代表食物。
2.设计思路
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块。
3.数据结构
#define N 200
stuct Food
{
int x ; /*食物的横坐标*/
int y ; /*食物的纵坐标*/
int yes ; /*判断是否要出现食物的变量*/
}food /*食物的结构体*/
struct Snake
{
intx[N]; /*蛇的横坐标*/
inty[N]; /*蛇的纵坐标*/
intnode; /*蛇的节数*/
intdirection; /*蛇的移动方向*/
intlife; /*蛇生命,0活着,1死亡*/
}snake;
4.主要函数
1)主函数main():初始化图形系统,调用DrawK()画出开始画面,调用函数Gameplay(),即玩游戏过程,游戏结束后调用Close()关闭图形系统,结束程序。
2)画界面函数DrawK();
3)游戏具体过程函数Gameplay();
4)游戏结束函数Gameplay(),游戏结束,清除屏幕,输出分数,显示游戏结束信息。
5)PrScore(),输出分数。
6)Close()函数图形结束。在显示游戏结束信息的画面时,按任意键关闭图形系统,结束程序。 展开
展开全部
// Snake.h : main header file for the SNAKE application
//
#if !defined(AFX_SNAKE_H__2EBD7F04_452B_11D7_B6CA_0050BAE90E03__INCLUDED_)
#define AFX_SNAKE_H__2EBD7F04_452B_11D7_B6CA_0050BAE90E03__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CSnakeApp:
// See Snake.cpp for the implementation of this class
//
class CSnakeApp : public CWinApp
{
public:
CSnakeApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSnakeApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CSnakeApp)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SNAKE_H__2EBD7F04_452B_11D7_B6CA_0050BAE90E03__INCLUDED_)
这只是个一部分!以前我写过的!你还要写出相对的main和frm等等!
//
#if !defined(AFX_SNAKE_H__2EBD7F04_452B_11D7_B6CA_0050BAE90E03__INCLUDED_)
#define AFX_SNAKE_H__2EBD7F04_452B_11D7_B6CA_0050BAE90E03__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CSnakeApp:
// See Snake.cpp for the implementation of this class
//
class CSnakeApp : public CWinApp
{
public:
CSnakeApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSnakeApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CSnakeApp)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SNAKE_H__2EBD7F04_452B_11D7_B6CA_0050BAE90E03__INCLUDED_)
这只是个一部分!以前我写过的!你还要写出相对的main和frm等等!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询