ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:83.98KB ,
资源ID:27032692      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27032692.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(五子棋.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

五子棋.docx

1、五子棋#include stdafx.h #include Snake.h #include mmsystem.h #include #include #pragma comment(lib,winmm.lib) #include / 窗口句柄声明 / HWND hWnd; / 界面控件句柄声明 / HWND hSpeed,hScore,hLong; / 位图声明 / HBITMAP bmp3,ButtonBmp3,ziBmp5; / 蛇头坐标声明 /int HeadX,HeadY; / 前进方向声明 / int Direction; enum left=0, right, down, up,

2、 ; / 前进速度 / int x=400; / 游戏开始及标志声明 / bool Start=false; void GameStart(); / 建立数组地图 / #define XMax 30 #define YMax 19 int mapXMaxYMax; / 蛇身节点数和最大蛇身长度/ int Long=4; int LongBF; #define MaxLong 100 / 建立贪食蛇对象 / Snake aMaxLong; std:map SHE; / 消息回调处理 / LRESULT CALLBACK GameProc(HWND, UINT, WPARAM, LPARAM);

3、/ 计时器 / int time=0; / 食物数量及坐标 / int food=1; int FoodX=15; int FoodY=8; / 界面变量、界面刷新函数 / void shuaxin(); char Score10; char Speed10; char Longc10; / int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) MSG msg; WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASS

4、EX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)GameProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance,IDI_MYICON); wcex.hIconSm = LoadIcon(hInstance,IDI_MYICON); wcex.hCursor = LoadCursor(hInstance,IDI_MYCUR); wcex.hbrB

5、ackground = (HBRUSH)(COLOR_MENUTEXT); wcex.lpszMenuName = NULL; wcex.lpszClassName = lujian; wcex.hIconSm = NULL; RegisterClassEx(&wcex); hWnd=CreateWindow( lujian, 贪食蛇 *小剑制作*, WS_MINIMIZEBOX|WS_SYSMENU, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, wcex.hInstance, NULL ); /MoveWindow(hWnd,100,100

6、,1080,596,true); MoveWindow(hWnd,0,100,1020,597,true); ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd); hScore=CreateWindow(STATIC, NULL, ES_READONLY|WS_CHILD | WS_VISIBLE,901,120,112,25,hWnd,NULL,hInstance, NULL); hSpeed=CreateWindow(STATIC, NULL, ES_READONLY|WS_CHILD | WS_VISIBLE,901,248,112,25,hWnd

7、,NULL,hInstance, NULL); hLong=CreateWindow(STATIC, NULL, ES_READONLY|WS_CHILD | WS_VISIBLE,901,185,112,25,hWnd,NULL,hInstance, NULL); shuaxin(); bmp0=(HBITMAP)LoadImage(NULL,bmp/背景.bmp,IMAGE_BITMAP,30,30,LR_LOADFROMFILE); bmp1=(HBITMAP)LoadImage(NULL,bmp/方块(红).bmp,IMAGE_BITMAP,30,30,LR_LOADFROMFILE)

8、;bmp2=(HBITMAP)LoadImage(NULL,bmp/方块(紫).bmp,IMAGE_BITMAP,30,30,LR_LOADFROMFILE);ButtonBmp0=(HBITMAP)LoadImage(NULL,bmp/按钮.bmp,IMAGE_BITMAP,100,42,LR_LOADFROMFILE); ButtonBmp1=(HBITMAP)LoadImage(NULL,bmp/按钮1.bmp,IMAGE_BITMAP,100,42,LR_LOADFROMFILE); ButtonBmp2=(HBITMAP)LoadImage(NULL,bmp/界面.bmp,IMAGE

9、_BITMAP,120,597,LR_LOADFROMFILE); ziBmp0=(HBITMAP)LoadImage(NULL,bmp/小.bmp,IMAGE_BITMAP,31,29,LR_LOADFROMFILE); ziBmp1=(HBITMAP)LoadImage(NULL,bmp/剑.bmp,IMAGE_BITMAP,31,29,LR_LOADFROMFILE); ziBmp2=(HBITMAP)LoadImage(NULL,bmp/作.bmp,IMAGE_BITMAP,31,29,LR_LOADFROMFILE); ziBmp3=(HBITMAP)LoadImage(NULL,b

10、mp/品.bmp,IMAGE_BITMAP,31,29,LR_LOADFROMFILE); ziBmp4=(HBITMAP)LoadImage(NULL,bmp/界面底.bmp,IMAGE_BITMAP,120,329,LR_LOADFROMFILE); GameStart(); HDC hdc,mdc; hdc = :GetDC(hWnd); mdc = :CreateCompatibleDC(hdc); :SelectObject(mdc,ButtonBmp0); :BitBlt(hdc, 910,30, 146, 42, mdc, 0, 0, SRCCOPY); :SelectObjec

11、t(mdc,ButtonBmp2); :BitBlt(hdc, 900,0, 120, 597, mdc, 0, 0, SRCCOPY); :ReleaseDC(hWnd, hdc); :DeleteObject(mdc); while(true) if(PeekMessage( &msg, NULL, 0,0 ,PM_REMOVE) TranslateMessage( &msg ); DispatchMessage( &msg ); return msg.wParam; void shuaxin() sprintf(Score,%d分,Long-4); SetWindowText(hScor

12、e,Score); sprintf(Speed,%d,Long-3); SetWindowText(hSpeed,Speed); sprintf(Longc,%d节,Long); SetWindowText(hLong,Longc); void GameStart() HDC hdc,mdc; hdc = :GetDC(hWnd); mdc = :CreateCompatibleDC(hdc); :SelectObject(mdc,bmp0); for(int i=0;iXMax;i+) for(int j=0;jYMax;j+) mapij=0; :BitBlt(hdc, i*30,j*30

13、, 30, 30, mdc, 0, 0, SRCCOPY); :SelectObject(mdc,bmp1); :BitBlt(hdc, 0,0, 30, 30, mdc, 0, 0, SRCCOPY); :BitBlt(hdc, 30,0, 30, 30, mdc, 0, 0, SRCCOPY); :BitBlt(hdc, 2*30,0, 30, 30, mdc, 0, 0, SRCCOPY); :BitBlt(hdc, 3*30,0, 30, 30, mdc, 0, 0, SRCCOPY); :SelectObject(mdc,bmp2); :BitBlt(hdc, 15*30,8*30,

14、 30, 30, mdc, 0, 0, SRCCOPY); :ReleaseDC(hWnd, hdc); :DeleteObject(mdc); map00=1; map10=1; map20=1; map30=1; map158=2; Direction=right; HeadX=3; HeadY=0; for(i=0;i=0;i-) SHEi+1.SnakeX=SHEi.SnakeX; SHEi+1.SnakeY=SHEi.SnakeY; SHE0.SnakeX=HeadX; SHE0.SnakeY=HeadY; LRESULT CALLBACK GameProc(HWND hWnd, U

15、INT message, WPARAM wParam, LPARAM lParam) HDC hdc,mdc; hdc = :GetDC(hWnd); mdc = :CreateCompatibleDC(hdc); switch (message) case WM_KEYDOWN: if(wParam=VK_DOWN) if(Direction!=up) Direction=down; if(wParam=VK_LEFT) if(Direction!=right) Direction=left; if(wParam=VK_RIGHT) if(Direction!=left) Direction

16、=right; if(wParam=VK_UP) if(Direction!=down) Direction=up; break; case WM_LBUTTONDOWN: if(LOWORD(lParam)910 & LOWORD(lParam)30 &HIWORD(lParam)910 & LOWORD(lParam)30 &HIWORD(lParam)76) HDC hdc,mdc; hdc = :GetDC(hWnd); mdc = :CreateCompatibleDC(hdc); :SelectObject(mdc,ButtonBmp1); :BitBlt(hdc, 910,30,

17、 146, 42, mdc, 0, 0, SRCCOPY); :ReleaseDC(hWnd, hdc); :DeleteObject(mdc); else HDC hdc,mdc; hdc = :GetDC(hWnd); mdc = :CreateCompatibleDC(hdc); :SelectObject(mdc,ButtonBmp0); :BitBlt(hdc, 910,30, 146, 42, mdc, 0, 0, SRCCOPY); :ReleaseDC(hWnd, hdc); :DeleteObject(mdc); break; case WM_DESTROY: PostQui

18、tMessage(0); break; case WM_CLOSE: ExitProcess(0); break; case WM_CREATE: SetTimer(hWnd,1,x, NULL); break; case WM_TIMER: :SelectObject(mdc,ziBmp4); :BitBlt(hdc,900,270, 129, 329, mdc, 0, 0, SRCCOPY); for(int i=0;i4;i+) int xx; xx=900+rand()%90; int yy; yy=280+rand()%220; :SelectObject(mdc,ziBmpi);

19、:BitBlt(hdc, xx,yy, 31, 29, mdc, 0, 0, SRCCOPY); if(Start) LongBF=Long; time+; if(food=0) loop3: time=0; FoodX=rand()%30; FoodY=rand()%19; if(mapFoodXFoodY=0) mapFoodXFoodY=2; food+; else goto loop3; if(time%40=0) if(food=1) mapFoodXFoodY=0; food-; loop1: FoodX=rand()%30; FoodY=rand()%19; if(mapFood

20、XFoodY=0) mapFoodXFoodY=2; food+; else goto loop1; else loop2: FoodX=rand()%30; FoodY=rand()%19; if(mapFoodXFoodY=0) mapFoodXFoodY=2; food+; else goto loop2; switch(Direction) case right: if(HeadX+1)*30=0) if(mapHeadX-1HeadY=1) Start=false; PlaySound(sound/碰撞.wav,NULL,SND_FILENAME| SND_ASYNC); Messa

21、geBox(0,悟空怎么搞的?师傅不是叫你别乱撞自己么?,撞墙罗,MB_OK); break; if(mapHeadX-1HeadY=2) Long+; food-; shuaxin(); if(Long-LongBF=1) x-=10; SetTimer(hWnd,1,x, NULL); PlaySound(sound/转换.wav,NULL,SND_FILENAME); map-HeadXHeadY=1; LastGo(); else Start=false; PlaySound(sound/碰撞.wav,NULL,SND_FILENAME| SND_ASYNC); MessageBox(0,悟空怎么搞的?师傅不是叫你别乱撞墙么?,撞墙罗,MB_OK); break; case down: if(HeadY+1)*30570) if(mapHeadXHeadY+1=1) Start=false; PlaySound(sound/碰撞.wav,NULL,SND_FILENAME| SND_ASYNC); MessageBox(0,悟空怎么搞的?师傅不是叫你别乱撞自己么?,撞墙罗,MB_OK); break; if(mapHeadXHeadY+1=2) Long+; food-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1