当前位置:文档之家› 贪吃蛇源码

贪吃蛇源码

贪吃蛇源码
贪吃蛇源码

// SnakeDlg.cpp : implementation file

//

#include "stdafx.h"

#include "Snake.h"

#include "SnakeDlg.h"

#include "HelpDlg.h"

#include "HeroDlg.h"

#include

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog

{

public:

CAboutDlg();

// Dialog Data

//{{AFX_DATA(CAboutDlg)

enum { IDD = IDD_ABOUTBOX };

//}}AFX_DATA

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CAboutDlg)

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL

// Implementation

protected:

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDlg)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

// No message handlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CSnakeDlg dialog

CSnakeDlg::CSnakeDlg(CWnd* pParent /*=NULL*/)

: CDialog(CSnakeDlg::IDD, pParent)

{

//{{AFX_DATA_INIT(CSnakeDlg)

// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CSnakeDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CSnakeDlg)

// NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CSnakeDlg, CDialog)

//{{AFX_MSG_MAP(CSnakeDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_UPDATE_COMMAND_UI(IDR_PLAY_MUSIC, OnUpdatePlayMusic)

ON_UPDATE_COMMAND_UI(IDR_HIGH, OnUpdateHigh)

ON_UPDATE_COMMAND_UI(IDR_LOW, OnUpdateLow)

ON_UPDATE_COMMAND_UI(IDR_NOR, OnUpdateNor)

ON_UPDATE_COMMAND_UI(IDR_HELP, OnUpdateHelp)

ON_UPDATE_COMMAND_UI(IDR_HERO_LIST, OnUpdateHeroList)

ON_UPDATE_COMMAND_UI(IDR_EXIT_GAME, OnUpdateExitGame)

ON_UPDATE_COMMAND_UI(IDR_ABOUT, OnUpdateAbout)

ON_UPDATE_COMMAND_UI(IDR_START_GAME, OnUpdateStartGame)

ON_WM_TIMER()

ON_WM_KEYDOWN()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CSnakeDlg message handlers

BOOL CSnakeDlg::OnInitDialog()

{

CDialog::OnInitDialog(); //对话框初始化

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

SetIcon(m_hIcon, TRUE); //设置大图标

SetIcon(m_hIcon, FALSE); //设置小图标

m_main_menu.LoadMenu(IDR_MAIN_MENU);

SetMenu(&m_main_menu);

InitMenu();

m_snake.CreateEx( WS_EX_CLIENTEDGE, _T("SNAKEMAP"), NULL, WS_VISIBLE | WS_BORDER | WS_CHILD,

CRect( 0, 0, 325, 425 ), this, SNAKEMAP );

GetDlgItem( SNAKEMAP )->SetFocus();

return TRUE;

}

void CSnakeDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog::OnSysCommand(nID, lParam);

}

}

void CSnakeDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

HCURSOR CSnakeDlg::OnQueryDragIcon()

{

return (HCURSOR) m_hIcon;

}

void CSnakeDlg::InitMenu()

{//初始化菜单

m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_CHECKED);

m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_UNCHECKED);

m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_UNCHECKED);

m_main_menu.CheckMenuItem(IDR_PLAY_MUSIC, MF_BYCOMMAND | MF_UNCHECKED);

m_bStart = FALSE;

m_snake.SetGameLevel(GAME_LEVEL_LOW);

}

//播放音乐菜单栏响应函数

void CSnakeDlg::OnUpdatePlayMusic(CCmdUI* pCmdUI)

{//判断播放音乐菜单当前状态

BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_PLAY_MUSIC, MF_CHECKED);

if(m_bStart)

{

if(bCheck)

{

m_main_menu.CheckMenuItem(IDR_PLAY_MUSIC, MF_BYCOMMAND | MF_UNCHECKED);

}

else

{

m_main_menu.CheckMenuItem(IDR_PLAY_MUSIC, MF_BYCOMMAND | MF_CHECKED);

}

PlayBackMusic(!bCheck); //调用播放背景音乐功能函数}

}

//"游戏等级"|"高"菜单栏响应函数

void CSnakeDlg::OnUpdateHigh(CCmdUI* pCmdUI)

{//判断当前菜单状态

BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_HIGH, MF_CHECKED);

if(!m_bStart)

{

if( !bCheck )

{

m_snake.SetGameLevel(GAME_LEVEL_HIGH);

m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_CHECKED);

m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_UNCHECKED);

m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_UNCHECKED);

}

}

Invalidate();

}

//"游戏等级"|"低"菜单栏响应函数

void CSnakeDlg::OnUpdateLow(CCmdUI* pCmdUI)

{//判断当前菜单状态

BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_LOW, MF_CHECKED);

if(!m_bStart)

{

if( !bCheck )

{

m_snake.SetGameLevel(GAME_LEVEL_LOW);

m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_CHECKED);

m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_UNCHECKED);

m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_UNCHECKED);

}

}

Invalidate();

}

//"游戏等级"|"中"菜单栏响应函数

void CSnakeDlg::OnUpdateNor(CCmdUI* pCmdUI)

{//判断当前菜单状态

BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_NOR, MF_CHECKED);

if(!m_bStart)

{

if( !bCheck )

{

m_snake.SetGameLevel(GAME_LEVEL_NOR);

m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_CHECKED);

m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_UNCHECKED);

m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_UNCHECKED);

}

}

Invalidate();

}

//"游戏帮助"菜单栏响应函数

void CSnakeDlg::OnUpdateHelp(CCmdUI* pCmdUI)

{

Help(); //调用帮助功能函数

}

//"关于"菜单栏响应函数

void CSnakeDlg::OnUpdateAbout(CCmdUI* pCmdUI)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();//弹出关于对话框

}

//"英雄榜"菜单栏响应函数

void CSnakeDlg::OnUpdateHeroList(CCmdUI* pCmdUI)

{

HeroList(); //调用英雄榜功能函数

}

//"退出"菜单栏响应函数

void CSnakeDlg::OnUpdateExitGame(CCmdUI* pCmdUI)

{

CDialog::OnCancel();//退出对话框功能函数

}

//"开始游戏"菜单栏响应函数

void CSnakeDlg::OnUpdateStartGame(CCmdUI* pCmdUI)

{

m_snake.GameStart(); //调用开始新游戏功能函数

}

void CSnakeDlg::PlayBackMusic(BOOL bflg)

{

//指定文件并播放

if(bflg)

{

sndPlaySound("music.wav",SND_ASYNC);//播放音乐}

else

{

sndPlaySound(NULL,SND_PURGE);//停止播放

}

}

void CSnakeDlg::HeroList()

{

CHeroDlg dlg;

dlg.DoModal();

}

void CSnakeDlg::Help()

{

CHelpDlg dlg;

dlg.DoModal();

}

void CSnakeDlg::OnTimer(UINT nIDEvent)

{

// TODO: Add your message handler code here and/or call default

CDialog::OnTimer(nIDEvent);

}

void CSnakeDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) {

CDialog::OnKeyDown(nChar, nRepCnt, nFlags);

}

js闪烁的星空特效源码

1 颜色选择器 页面背景篇--颜色选择器

页面背景篇--颜色选择器



2 闪烁星空 页面背景篇--闪烁星空

页面背景篇--闪烁星空

贪吃蛇小游戏源代码

#include #include #include #include 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;zuobiao[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;

网站登陆事件js源代码

1 显示登陆事件 时间日期篇--显示登陆时间

时间日期篇--显示登陆时间




您已登录本站

贪吃蛇游戏安卓源代码

附录1.SnakeView类 package com.example.android_snake.view; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Timer; import java.util.TimerTask; import com.example.android_snake.R; import com.example.android_snake.food.Food; import com.example.android_snake.snake.Body; import com.example.android_snake.snake.Head; import com.example.android_snake.snake.Snake; import com.example.android_snake.snake.SnakeDirection; import com.example.android_snake.stone.Stone; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.os.Handler; import android.util.DisplayMetrics; import android.view.Display; import android.view.MotionEvent; import android.view.View; import android.view.ViewManager; import android.view.WindowManager; import android.widget.Toast; public class SnakeView extends View { private Context context; private Bitmap headBitmap; private Bitmap bodyBitmap; private Bitmap foodBitmap; private Bitmap stoneBitmap; // 屏幕的高度和宽度 private int screenHeight; private int screenWidth; // 每个小格子的高度和宽度 private int eachHeight;

JS特效代码

JS图片滚动代码(无缝、平滑) 图片滚动

闪烁的小星 教案

闪烁的小星 教材分析: 《闪烁的小星》是一首曲调流畅、轻快从容的法国民歌。全曲优美而平稳的旋律,形象地描绘了宁静晴朗的夜空中星星熠熠闪烁的美丽景色,留给学生无穷的想象。这首歌中的2/4拍的节奏非常简单,全曲以四分音符为主,二拍子强弱规律特别明显,节奏感强,非常适宜放手让学生自己编创舞蹈动作。全曲音域不宽,只有六度,曲调仅使用了四分音符与二分音符,1~8小节与结束句完全重复,9~12小节与13~16小节又是完全重复。优美而平稳的旋律,形象地描绘了宁静晴朗的夜空中星星闪烁的景象,质朴形象,充满童趣。 教学内容: 1、学唱《闪烁的小星》 2、学唱歌曲并表演 教学目标: 1、通过演唱歌曲《闪烁的小星》,感受歌曲所表达的夜晚的意境,体会歌曲的情绪。 2、通过律动、创设情境等方法学唱歌曲,指导学生能用轻快、明亮的声音演唱歌曲。 3、学生积极参与音乐活动,在活动中自然大方,能根据歌曲的意境进行情景式的歌表演,培养学生的即兴表演能力。 教学重点: 学生能唱出歌曲欢快的情绪。

教学难点: 学生能用连音、断音相结合的方法演唱歌曲。 教学过程: 一、师生问好! 二、练声 (1)1 2 3 4 5 6 7 1 (2)1 3 |5 3| 1—|| a (3)1 2| 3 4| 5 4| 3 2| 1—|| mi ma mi 三、创设情境,导入 师:小朋友们,在晴朗的夏夜里,每当你们仰望浩瀚的夜空,你都看到了些什么呢? (小朋友们发言)月亮,群星闪耀,无边无际,神奇,美丽等等。【课件出示星空图1】 师:是啊,夜空真是非常的美丽而且神奇,不仅有美丽的白云和月亮、还有向我们眨眼的小星星。谁能说一说夜空中的星星是什么样子的?(小朋友发言)(一闪一闪的、亮晶晶的、发光的……)【课件出示星空图2】 四、新歌教学 师:是的,今天我们就一起来学习这首好听的歌曲《闪烁的小星》。师:请小朋友们把音乐书翻到第31页《闪烁的小星》,先欣赏一下这

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

C 语言课程设计 (小游戏贪吃蛇的程序设计报告)

设计人: 班级: 201 年月号

目录一:概述 1:研究背景及意义 2:设计的任务与需要知识点 3:具体完成设计内容 二:需求分析 1:功能需求 2:操作方法 三:总体设计 1:模块划分 2:数据结构设计 四:详细设计 1:主空摸块设计 2:绘制游戏界面 3:游戏的具体过程 4:游戏的结束处理 5:显示排行榜信息模块 五:程序的调试与测试 1:动画与音乐同步 2:蛇的运行 3:终止程序 六:结论 七::结束语 八:程序清单 九:参考文献

一.概述 本课程设计以软件工程方法为指导,采用了结构化,模块化的程序设计方法,以C 语言技术为基础,使用Turbo C++3.0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。 1.1 研究的背景及意义 随着社会的发展,人们生活的节奏日益加快,越来越多的人加入了全球化的世界。人们不再拘泥与一小块天地,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成为了人们的需要。此次课程设计完成的贪吃蛇小游戏,正是为了满足上述需求而设计出来的。贪吃蛇游戏虽小,却设计诸多的知识点。通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程的和那个发,技术和工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法和步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构的使用方法,掌握图形,声音,随机数等多种库函数的使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程的学习和将来实际软件开发打下坚实的基础。 1.2 设计的任务和需要的知识点 1.2.1 课程设计主要完成的任务 1). 通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计的思想,培养解决实际问题的能力。 2) 有同步播放动画,声音效果。 3) 设计好数组元素与蛇,食物的对应关系。 4) 随机产生食物。 5) 有分数统计,排行榜,分数存储等功能。 通过此次课程设计,希望使读者能更深入的理解和掌握课程教学中的基本概念,培养读者应用基本技术解决实际问题的能力,从而进一步提高分析问题和解决问题的能力。 1.2.2需要掌握和运用的知识点 1.2.3本次课程设计需要掌握和运用如下的知识点: 1) 数组的应用。 2) 全局变量的使用。 3) 按键处理。 4)结构体的应用。 5)图形,音乐和动画的有关知识。 6)随即函数的使用。 7)文件的基本出操作。

html5实现贪吃蛇源代码

Insert title here