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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

最新MFC设计五子棋完全代码Word下载.docx

1、同时构造出一系列画棋盘,判断鼠标,判断输赢等函数。为函数添加数据成员并使其一一实现。对相应菜单进行属性更改并进行消息映射,建立响应函数。整个过程都得到了了解及应用。同时,缺乏也很多,本游戏调用函数进行了棋盘绘制,使得界面过于简单。由于时间,能力等问题,未能参加人工智能实现人机对战。而且对于老师所给出的对话框的设计及应用也未能参加。棋子的位图都是自己绘制,并不十分美观。如果有充足的时间,我想这些一定会得到完善。5. 重要程序清单构造函数/两个鼠标 HCURSOR hcursorwhite; HCURSOR hcursorblack; /棋盘数组 int wzq1919; / colorwhite

2、 TRUE时白棋下,否那么黑棋下 bool colorwhite; /棋子位图 CBitmap m_bmblack; CBitmap m_bmwhite; /保存文件 void Save(); /检查是否结束 void over(CPoint point); /鼠标操作 afx_msg void OnLButtonUp(UINT nFlags, CPoint point); /鼠标图形更换 afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); /菜单的开始 afx_msg void OnStart(); /菜单的保

3、存 afx_msg void OnSave(); /菜单的翻开 afx_msg void OnOpen();窗口设计BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs) if( !CFrameWnd:PreCreateWindow(cs) ) return FALSE; / TODO: Modify the Window class or styles here by modifying / the CREATESTRUCT cs cs.dwExStyle=cs.dwExStyle|WS_EX_TOPMOST; / cs.style=WS_SYSM

4、ENU|WS_OVERLAPPED|WS_MINIMIZEBOX;/; /设置窗口大小:400*340 cs.cx=450; cs.cy=500; return TRUE;棋盘与棋子的绘制void CMy3_1View:OnDraw(CDC* pDC) CMy3_1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); add draw code for native data here /画背景 CBrush mybrush1; mybrush1.CreateSolidBrush(RGB(192,192,192); CRect myrect1(0,0,1

5、200,800); pDC-FillRect(myrect1,&mybrush1); /画棋盘框线 CPen mypen; CPen*myoldPen; mypen.CreatePen(PS_SOLID,1,RGB(0,0,0); myoldPen=pDC-SelectObject(&mypen); for(int i=0;i19;i+) MoveTo(40,40+i*20);LineTo(400,40+i*20);MoveTo(40+i*20,40);LineTo(40+i*20,400); /重画时显示存在的棋子 CDC Dc; if(Dc.CreateCompatibleDC(pDC)=

6、FALSE) AfxMessageBox(Cant create DC); for(int n=0;nn+) for(int m=0;mBitBlt(n*20+32,m*20+32,160,160,&Dc,0,0,SRCCOPY); else if(wzqnm=-1) /显示黑棋 Dc.SelectObject(m_bmblack); 设置鼠标:BOOL CMy3_1View:OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) Add your message handler code here and/or call default if

7、(nHitTest=HTCLIENT) /白棋下,显示白棋鼠标 if(colorwhite) /调用主框架里面的状态栏 CMainFrame*pFrm=(CMainFrame*)AfxGetApp()-m_pMainWnd; CStatusBar*pStatus=&pFrm-m_wndStatusBar; if(pStatus) pStatus-GetStatusBarCtrl().SetIcon(0,AfxGetApp()-LoadIcon(IDI_WHITE);SetPaneText(0,白棋下 SetCursor(hcursorwhite); /显示黑棋鼠标 else SetCursor

8、(hcursorblack); /显示图像LoadIcon(IDI_BLACK); /显示文字黑棋下 return 1; return CView:OnSetCursor(pWnd, nHitTest, message);判断输赢over(CPoint point) /获取鼠标指向数组位置,即中心位置 int x=(point.x-30)/20; int y=(point.y-30)/20; /计算开始判断的坐标 xx,yy int xx,yy; if(x4) xx=0; else xx=x-4; if(y yy=0; yy=y-4; int i,j,a; /横向判断 for(i=xx;15;

9、 a=0; for(j=i;ji+5;j+) a=a+wzqjy; /五个都是白棋 if(a=5) AfxMessageBox(白棋胜! /重新开始 OnStart();return; /五个都是黑棋 if(a=-5)黑棋胜! /竖向判断 for(i=yy; a=a+wzqxj; /向右下角 /判断起点位置y) if(xx=0) yy=y-x; if(yy=0) xx=x-y; /参数over=1时退出循环 int over=0; do for(i=0;5; if(xx+i)19|(yy+i)(18-x) if(x13) yy=y-(18-x); xx=18; yy=y-4; xx=x+4;

10、if(y=0|(yy+i) a=a+wzqxx-iyy+i; xx-=1;文件保存OnSave() Add your command handler code here /设置保存的文件,后缀名wzq CFileDialog dlg(FALSE,wzq,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,(*.WZQ)|*.wzq|All Files|*.*|,this); /如果公共类对话框为确定 if(dlg.DoModal()=IDOK) /获取文件名 dlg.GetFileName(); /否那么,退出 return; /字符串变量 CString st

11、r; int i,j; CStdioFile file; /如果有问题,退出 if(file.Open(dlg.GetFileName(),CFile:modeCreate|CFile:modeWrite|CFile:typeText)=0)save error! /循环把棋盘数组的值写进文件 for(i=0; for(j=0; if(wzqij=-1) file.WriteString(-1n if(wzqij=0)0n if(wzqij=1)1n /保存当前下棋颜色 if(colorwhite=true) file.WriteString( /关闭文件 file.Close();读取文件:

12、读文件就是把我们以前保存的文件翻开,读取当前翻开文件的内容,并给数组赋值使和文件内容相同,然后可以继续进行游戏。/与保存文件相反OnOpen() CFileDialog dlg(TRUE, int i,j,m; CStdioFile file;modeRead)=0) CArchive ar(&file,CArchive:load); ar.ReadString(str); sscanf(str,%d,&m); if(m=-1) wzqij=-1; if(m=0) wzqij=0; if(m=1) wzqij=1; ar.ReadString(str); sscanf(str, if(m=1) colorwhite=true; colorwhite=false; file.Close(); ar.Close(); Invalidate(false);6. 窗口截图

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

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