求mfc做的简单奥维五子棋小游戏戏,越简单越好

复制地址:
小游戏,大乐趣
1.按键操作
mouseleft进行游戏
2.如何开始
游戏加载完毕后直接开始。
3.游戏目标
操作简单的五子棋,快来击败你的对手吧!
7K7K网页游戏
7K7K儿童游戏
法律顾问:北京市诺恒律师事务所
京公网安备37
游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照来信告知,本网站将应您的要求删除。
7k7k小游戏温馨提示:适度游戏娱乐,沉迷游戏伤身,合理安排时间,享受快乐生活……
该游戏已收藏[代码全屏查看]-简单的 mfc做的五子棋
[1].[文件]
mymfcView.cpp&~&12KB&&&&(597)
// mymfcView.cpp : CmymfcView 类的实现
#include "stdafx.h"
#include "mymfc.h"
#include "mymfcDoc.h"
#include "mymfcView.h"
#include ".\mymfcview.h"
#include "kaishi.h"
#include "player.h"
#include "ying.h"
//#include &Windows.h&
#include &mmsystem.h&
#pragma comment(lib, "WINMM.LIB")
#ifdef _DEBUG
#define new DEBUG_NEW
int chess[15][15]={0};
CString player1,player2;
player gameplayer[225];
///-----------------------------------------
CString xingming1="0";
CString xingming2="0";
CString xingming3="0";
int cishu1=0,cishu2=0,cishu3=0;
CString xingming[100];
int cishu[100],yx=0;
static int yx0=0;
////--------------------------------------
// CmymfcView
IMPLEMENT_DYNCREATE(CmymfcView, CView)
BEGIN_MESSAGE_MAP(CmymfcView, CView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
// CmymfcView 构造/析构
CmymfcView::CmymfcView()
// TODO: 在此处添加构造代码
CmymfcView::~CmymfcView()
BOOL CmymfcView::PreCreateWindow(CREATESTRUCT& cs)
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
return CView::PreCreateWindow(cs);
// CmymfcView 绘制
void CmymfcView::OnDraw(CDC* pDC)
CmymfcDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
static int e=0;
m_backg .LoadBitmap(IDB_BITMAPchessbroad);
backg.CreateCompatibleDC(pDC);
backg.SelectObject(m_backg);
m_begin.LoadBitmap(IDB_BITMAPkaishi);
begin.CreateCompatibleDC(pDC);
begin.SelectObject(m_begin);
m_end.LoadBitmap(IDB_BITMAPjieshu);
end.CreateCompatibleDC(pDC);
end.SelectObject(m_end);
m_yingxiong.LoadBitmap(IDB_BITMAPyingxiong);
yingxiong.CreateCompatibleDC(pDC);
yingxiong.SelectObject(m_yingxiong);
m_heizi.LoadBitmap(IDB_BITMAPheizi);
heizi.CreateCompatibleDC(pDC);
heizi.SelectObject(m_heizi);
m_baizi.LoadBitmap(IDB_BITMAPbaizi);
baizi.CreateCompatibleDC(pDC);
baizi.SelectObject(m_baizi);
m_heizifuben.LoadBitmap(IDB_BITMAPheizifuben);
heizifuben.CreateCompatibleDC(pDC);
heizifuben.SelectObject(m_heizifuben);
m_baizifuben.LoadBitmap(IDB_BITMAPbaizifuben);
baizifuben.CreateCompatibleDC(pDC);
baizifuben.SelectObject(m_baizifuben);
m_huiqi.LoadBitmap(IDB_BITMAPhuiqi);
huiqi.CreateCompatibleDC(pDC);
huiqi.SelectObject(m_huiqi);
m_fupan.LoadBitmap(IDB_BITMAPfupan);
fupan.CreateCompatibleDC(pDC);
fupan.SelectObject(m_fupan);
//PlaySound((LPCTSTR)IDR_WAVE1, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
//PlaySound("C:\\用户\\123\\Visual Studio Projects\\mymfc\\牛奶歌.wav",NULL, SND_FILENAME | SND_ASYNC|SND_LOOP);
//PlaySound("C:\\用户\\123\\Visual Studio Projects\\mymfc\\牛奶歌.wav",NULL, SND_FILENAME | SND_ASYNC|SND_LOOP);
pDC-&BitBlt(0,0,800,600,&backg,0,0,SRCCOPY);
pDC-&BitBlt(690,145,119,64,&begin,0,0,SRCCOPY);
pDC-&BitBlt(690,275,115,63,&end,0,0,SRCCOPY);
pDC-&BitBlt(680,400,260,112,&yingxiong,0,0,SRCCOPY);
pDC-&BitBlt(854,286,100,50,&fupan,0,0,SRCCOPY);
pDC-&BitBlt(710,71,90,50,&huiqi,0,0,SRCCOPY);
//pDC-&TextOut(690,55,"悔棋");
pDC-&TextOut(891,148,"重新开始");
//pDC-&TextOut(891,240,"复盘");
///---------------------------------------------
p4=fopen("hero.txt","r");
if (p4!=NULL)
char aplay1[50];
fscanf(p4,"%d",&yx0);
for (yx=0;yx&=yx0;yx++)
fscanf(p4,"%s%d",&aplay1,&cishu[yx]);
xingming[yx].Format("%s",aplay1);
fscanf(p4,"%s%d",&aplay1,&cishu1);
xingming1.Format("%s",aplay1);
fscanf(p4,"%s%d",&aplay1,&cishu2);
xingming2.Format("%s",aplay1);
fscanf(p4,"%s%d",&aplay1,&cishu3);
xingming3.Format("%s",aplay1);
fclose(p4);
////----------------------------------------------------
CString st1,st2,st3 ;
st1="五子棋游戏";
st2="玩家一";
st3="玩家二";
pDC-&TextOut(251,18,st1);
pDC-&TextOut(130,50,st2);
pDC-&TextOut(407,50,st3);
pDC-&TextOut(180,50,player1);
pDC-&TextOut(457,50,player2);
for (i=0;i&15;i++)
for (j=0;j&15;j++)
if (chess[i][j]==1)
pDC-&BitBlt( i*30+73-14,j*30+87-14,27,28,&heizifuben,0,0,MERGEPAINT);
pDC-&BitBlt( i*30+73-14,j*30+87-14,27,28,&heizi,0,0,SRCAND);
if (chess[i][j]==2)
pDC-&BitBlt( i*30+73-14,j*30+87-14,27,28,&heizifuben,0,0,MERGEPAINT);
pDC-&BitBlt( i*30+73-14,j*30+87-14,27,28,&baizi,0,0,SRCAND);
// TODO: 在此处为本机数据添加绘制代码
// CmymfcView 打印
BOOL CmymfcView::OnPreparePrinting(CPrintInfo* pInfo)
// 默认准备
return DoPreparePrinting(pInfo);
void CmymfcView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
// TODO: 打印前添加额外的初始化
void CmymfcView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
// TODO: 打印后添加清除过程
// CmymfcView 诊断
#ifdef _DEBUG
void CmymfcView::AssertValid() const
CView::AssertValid();
void CmymfcView::Dump(CDumpContext& dc) const
CView::Dump(dc);
CmymfcDoc* CmymfcView::GetDocument() const // 非调试版本是内联的
ASSERT(m_pDocument-&IsKindOf(RUNTIME_CLASS(CmymfcDoc)));
return (CmymfcDoc*)m_pD
#endif //_DEBUG
// CmymfcView 消息处理程序
void CmymfcView::OnLButtonDown(UINT nFlags, CPoint point)
// TODO: 在此添加消息处理程序代码和/或调用默认值
int mx=(point.x-61)/30;
int my=(point.y-77)/30;
int x=point.x;
int y=point.y;
if (mx&=0&&mx&15 && my&=0&&my&15)
MessageBox("游戏未开始!请登录");
CDC *pDC=GetDC();
i=((x-73)%30)&=15?((x-73)/30):(((x-73)/30)+1);
j=((y-87)%30)&=15?((y-87)/30):(((y-87)/30)+1);
gameplayer[s].x=i;
gameplayer[s].y=j;
if (chess[i][j]==0)
if (c%2==0)
pDC-&BitBlt(i*30+73-14,j*30+87-14,27,28,&heizifuben,0,0,MERGEPAINT);
pDC-&BitBlt(i*30+73-14,j*30+87-14,27,28,&heizi,0,0,SRCAND);
chess[i][j]=1;
if (c%2==1)
pDC-&BitBlt(i*30+73-14,j*30+87-14,27,28,&heizifuben,0,0,MERGEPAINT);
pDC-&BitBlt(i*30+73-14,j*30+87-14,27,28,&baizi,0,0,SRCAND);
chess[i][j]=2;
for(i=0;i&15;i++)
for(j=0;j&15;j++)
if(chess[i][j]==1&&chess[i][j+1]==1&&chess[i][j+2]==1&&chess[i][j+3]==1&&chess[i][j+4]==1)
{MessageBox("黑子胜!"); hero(player1);}
if(chess[i][j]==2&&chess[i][j+1]==2&&chess[i][j+2]==2&&chess[i][j+3]==2&&chess[i][j+4]==2)
{MessageBox("白子胜!");
hero(player2);}
//return 1;
for(j=0;j&15;j++)//判断横着的5个是否都相等
for(i=0;i&15;i++)
if(chess[i][j]==1&&chess[i+1][j]==1&&chess[i+2][j]==1&&chess[i+3][j]==1&&chess[i+4][j]==1)
{MessageBox("黑子胜!");
hero(player1);
}/*wan[p]=plyer1;p++;*/
if(chess[i][j]==2&&chess[i+1][j]==2&&chess[i+2][j]==2&&chess[i+3][j]==2&&chess[i+4][j]==2)
{MessageBox("白子胜!");
hero(player2);
} /*wan[p]=player2;p++;*/
for(i=0;i&15;i++)//判断左斜5个
for(j=0;j&15;j++)
if(chess[i][j]==1&&chess[i+1][j+1]==1&&chess[i+2][j+2]==1&&chess[i+3][j+3]==1&&chess[i+4][j+4]==1)
{MessageBox("黑子胜!");
hero(player1);
}/*wan[p]=plyer1;p++;*/
if(chess[i][j]==2&&chess[i+1][j+1]==2&&chess[i+2][j+2]==2&&chess[i+3][j+3]==2&&chess[i+4][j+4]==2)
{MessageBox("白子胜!");
hero(player2);
} /*wan[p]=player2;p++;*/
//return 1;
for(i=0;i&15;i++)//右斜5个
for(j=0;j&15;j++)
if(chess[i][j]==1&&chess[i+1][j-1]==1&&chess[i+2][j-2]==1&&chess[i+3][j-3]==1&&chess[i+4][j-4]==1)
{MessageBox("黑子胜!");
hero(player1);
}/*wan[p]=plyer1;p++;*/
if(chess[i][j]==2&&chess[i+1][j-1]==2&&chess[i+2][j-2]==2&&chess[i+3][j-3]==2&&chess[i+4][j-4]==2)
{MessageBox("白子胜!");
hero(player2);
} //MessageBox("白子胜!");/*wan[p]=player2;p++;*/
//for(int i=0;i&15;i++)
//for(int j=0;j&15;j++)
if(chess[i][j]!=0)//当棋盘全部子都不是0即棋盘已下满
//return 0; //return 1
//pDC-&TextOut(260,260,"平局!");
//悔棋——————————————————————————
if (mx&=21&&mx&=25&&my&=0&&my&=2)
CDC *pDC=GetDC();
chess[gameplayer[s].x][gameplayer[s].y]=0;
MessageBox("是否悔棋!");
CmymfcView::OnDraw(pDC);
//开始-------------------------------------
if (mx&=21&&mx&=25&&my&=3&&my&=4)
//PlaySound("SysetemStart",NULL, SND_FILENAME | SND_ASYNC|SND_LOOP);
CDC *pDC=GetDC();
Ckaishi kaishi1;
kaishi1.DoModal();
player1=kaishi1.editor1;
player2=kaishi1.editor2;
for(i=0;i&15;i++)
for(j=0;j&15;j++)
chess[i][j]=0;
OnDraw(pDC);
ReleaseDC(pDC);
//重新开始-------------------------
if (mx&=26&&mx&=28&&my&=3&&my&=4)
for(i=0;i&15;i++)
for(j=0;j&15;j++)
chess[i][j]=0;
CDC *pDC=GetDC();
OnDraw(pDC);
MessageBox("游戏将重新开始!");
//结束---------------------------------------------
if (mx&=21 && mx&=25 && my&=7 && my&=9)
p1=fopen("fupan.txt","w");
//储存当前棋盘
for (i=0;i&15;i++)
for(j=0;j&15;j++)
fprintf(p1," %d",chess[i][j]);
fprintf(p1," %d %d ",c,s);
fprintf(p1,"%s %s ",player1,player2);
fclose(p1);
//----------------------------------------------------
if(yx0&=0)
p2=fopen("hero.txt","w");
fprintf(p2," %d ",yx0);
for(yx=0;yx&=yx0;yx++)
fprintf(p2,"%s %d ",xingming[yx],cishu[yx]);
fprintf(p2,"%s %d ",xingming1,cishu1);
fprintf(p2,"%s %d ",xingming2,cishu2);
fprintf(p2,"%s %d ",xingming3,cishu3);
fclose(p2);
//--------------------------------------------
//复盘---------------------------------
if(mx&=26&&mx&=28&&my&=5&&my&=7)
CDC *pDC=GetDC();
p2=fopen("fupan.txt","r");
MessageBox("暂无记录!");
for (i=0;i&15;i++)
for (j=0;j&15;j++)
fscanf(p2,"%d",&chess[i][j]);
fscanf(p2,"%d%d",&c,&s);
char aplay1[50],aplay2[50];
fscanf(p2,"%s",&aplay1);
fscanf(p2,"%s",&aplay2);
player1.Format("%s",aplay1);
player2.Format("%s",aplay2);
fclose(p2);
OnDraw(pDC);
//英雄榜--------------------------------------------------
if (mx&=21 && mx&=29 && my&=11 && my&=14)
UpdateData(TRUE);
dlg.DoModal();
CView::OnLButtonDown(nFlags, point);
/////---------------------------------------
void CmymfcView::OnMouseMove(UINT nFlags, CPoint point)
// TODO: 在此添加消息处理程序代码和/或调用默认值
int mx=(point.x-61)/30;
int my=(point.y-77)/30;
if (mx&=0&&mx&15 && my&=0&&my&15)
/*int x=point.x;
int y=point.y;
st.Format(("%d,%d
CDC *pDC=GetDC();
pDC-&TextOut(20,15,st);
ReleaseDC(pDC);*/
SetCursor(LoadCursor(NULL,IDC_CROSS));}
int x=point.x;
int y=point.y;
st.Format(("%d,%d
CDC *pDC=GetDC();
pDC-&TextOut(20,15,st);
ReleaseDC(pDC);
CView::OnMouseMove(nFlags, point);
void CmymfcView::hero(CString ying)
for (yx=0;yx&=yx0;yx++)
if (ying==xingming[yx])
{ cishu[yx]++;
if(yx&yx0)
xingming[yx0]=
cishu[yx0]=1;
for(yx=0;yx&=yx0;yx++)
if(cishu[yx]&cishu1)
{ if(xingming[yx]==xingming1)
cishu1=cishu[yx];
else if(xingming[yx]==xingming2)
xingming2=xingming1;
cishu2=cishu1;
xingming1=xingming[yx];
cishu1=cishu[yx];
xingming3=xingming2;
cishu3=cishu2;
xingming2=xingming1;
cishu2=cishu1;
xingming1=xingming[yx];
cishu1=cishu[yx];
else if(cishu[yx]&cishu2)
{ if(xingming[yx]==xingming1)
else if(xingming[yx]==xingming2)
cishu2=cishu[yx];
xingming3=xingming2;
cishu3=cishu2;
xingming2=xingming[yx];
cishu2=cishu[yx];
else if(cishu[yx]&cishu3)
if(xingming[yx]==xingming1)
else if(xingming[yx]==xingming2)
xingming3=xingming[yx];
cishu3=cishu[yx];一个简单的五子棋游戏
一个简单的五子棋游戏
一个简单的五子棋游戏
具有以下功能:①数据结构的设计;五子棋棋盘的绘制。②人机下棋时,计算机下棋算法的设计。③人机下棋时,判断任一方获胜的算法的设计。
若举报审核通过,可奖励20下载分
被举报人:
zhaoguanqin224
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
小游戏之五子棋的MFC实现.doc37页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
··········
··········
毕业论文(设计)
题目:小游戏之五子棋的MFC实现
校区 函授站 :北京培黎职业技术学院
级:10自考
学生姓名:黄路
导师姓名:常敏慧
起止时间:2013年2月
至 2013年4月
北京信息科技大学继续教育学院 北京信息科技大学继续教育学院
毕业论文(设计)任务书
学生姓名 黄路
指导教师 常敏慧
校区 函授站
北京培黎职业学院
专业 计算机应用
小游戏之五子棋的MFC实现
北京信息科技大学继续教育学院
毕业论文(设计)工作计划
校区 函授站
北京培黎职业技术学院 专业
计算机应用
小游戏之五子棋的MFC实现
工作进程起止时间
确定制作项目
进行最终整合修改
主要参考书目(资料)
[1] 谭浩强 .《VC++程序设计教程》 中国铁道出版社 2008
[2] 王浩 .《Visual C++游戏开发经典案例详解》 清华大学出版社 2010
学生姓名:
毕业设计题目:小游戏之五子棋MFC的实现
指导教师评语:
指导教师签名:
毕业设计(论文)评阅教师评语:
评阅教师签名:
毕 业 设 计 (论 文) 评 分 表
姓名 黄路 年级、专业、班 10级计算机自考班
毕业论文题目 小游戏之五子棋MFC的实现
目 满分 评分
师 全面完成任务情况(包括成果质量) 20
正在加载中,请稍后...下次自动登录
现在的位置:
& 综合 & 正文
C++编程 之 5分钟做出一个游戏–MFC五子棋源码
喊做游戏喊了三年,最近终于有一个足够充分的理由让这口号变成实践--课程设计。
由于实习的原因,做的比较仓促,以后有空再慢慢完善。接近年关,公司恰好不那么忙了,小弟我就抽点时间
(上班时间O(∩_∩)O~)给大家做个教程,
旨在提高大家对编程的兴趣
Q】5分钟真能做完一个游戏?
A】当然不是从头做起,这里应用了小弟写的一个类。
初学者按照视频教程 即可在几分钟内编译出一个不错的五子棋游戏。
Q】这个五子棋游戏和其他的五子棋比起来有什么优势?
A】在小弟的课程设计报告里有详细说明(如和TX的商业游戏做对比)。
其他的都在报告里说得比较清楚,这里就不赘述了。
大家看完源码后可能会发现:
小弟的源码和网上的源码毫无类似之处,
你会不会有以下疑问?
Q】你的总共不到800行,为什么有些人写了差不多2万行,你的是不是很差?
A】代码的行数只是衡量项目质量的标准之一,要是您乐意,可以把代码减少到500行以内,在实际商业应用中,代码的可读性和稳定性是最重要的,为了安全性,多几百行代码完全不必担心效率问题。
您只需下载【五子棋游戏源码--入门版】,
然后根据【五子棋游戏教学视频】操作即可(有VS2010、VS2008 、VC6.0
三个版本)
下面是资源的下载地址:
视频教程:
五子棋游戏教学视频 (VS2010版)
五子棋游戏教学视频 (VS2008 + VC6.0版)
五子棋游戏源码--入门版
五子棋游戏源码--完整版(含课程设计报告、开发文档、参考资料)
网上搜集的五子棋源码
初学者入门书籍:
C++ Primer 第三版中文版
C++ Primer Plus 第四版 chm
C++ Primer Plus(第五版)中文版PDF
windows程序设计 中文版 【侯捷译】
温馨提示:
Alberl目前只是喜欢做一些常用应用,而MFC都能满足需求,所以就专心搞MFC。
Alberl的下一个开源应用为 嵌入式仿酷狗播放器, 预计以后会发布出来。
也就是毕业设计提交完以后。
截至,Alberl仅为大四童鞋一枚,其知识面的深度和广度都很欠缺,
故以上所有言论和观点仅供参考
预祝学弟学妹寒假学习愉快~
预祝考研的兄弟姐妹金榜题名~
预祝大家元旦快乐~
原文出处:
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 五子棋小游戏下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信