五子棋 - 图文

发布时间 : 星期二 文章五子棋 - 图文更新完毕开始阅读

江苏大学《设计一个五子棋》课程设计任务书

}

}

j = cp_y ;

i = cp_x ;

count = 1 ;

return false ; }

3.2.3轮流下子的实现程序

void CCk1401View::OnLButtonDown(UINT nFlags, CPoint point) {int x=(point.x-5)/35,y=(point.y-7)/35; if(GameOver==1) return; xx=x; yy=y;

if(x<15&&y<15)

{//点击鼠标的位置在棋盘内

if(wb[x][y]==0&&Blackchess) //且该位置还没有棋子 {wb[x][y]=1; //设置成黑棋

a[x][y]=1; count++; j1[x][y]=count; CDC *pDC;

pDC=this->GetDC();

PutBitmap(pDC,5+x*35,7+y*35,&Black,RGB(255,255,255)); int x=isWin(point);

if(x==1) { AfxMessageBox(\黑棋胜!\OnGameStart();} else if(x==2) {AfxMessageBox(\白棋胜!\

Blackchess=0; }

else if(wb[x][y]==0) //且该位置还没有棋子

//计算坐标

//显示棋子

OnGameStart();}

{wb[x][y]=2; //设置成白棋

21

江苏大学《设计一个五子棋》课程设计任务书

count++; j1[x][y]=count; a[x][y]=2; CDC *pDC;

pDC=this->GetDC();

PutBitmap(pDC,5+x*35,7+y*35,&White,RGB(255,255,255));//显示棋子 int x=isWin(point);

if(x==1) { AfxMessageBox(\黑棋胜!\OnGameStart();} else if(x==2) {AfxMessageBox(\白棋胜!\

OnGameStart();}

Blackchess=1; }

3.2.4悔棋的实现主程序

void CCk1401View::OnGameBack() {if(count!=0)

{ for(inti=0;i<15;i++)

for(int j=0;j<15;j++) if(j1[i][j]==count) { wb[i][j]=0; a[i][j]=0; }

count--;

switch(Blackchess) {case 1: Blackchess=0; break;

case 0: Blackchess=1;

}

}

CView::OnLButtonDown(nFlags, point);

break;

default:break;

22

江苏大学《设计一个五子棋》课程设计任务书

}

OnDraw(GetDC());

} }

3.2.5平局的实现主程序

intCCk1401View::ping(int a[15][15]) { for(inti=0;i<15;i++) for(int j=0;j<15;j++) { if(a[i][j]==0)

//当棋盘全部子都不是0时才能return 1,即棋盘已下满

return 0; }

return 1; }

3.2.6新游戏的实现主程序

void CCk1401View::OnGameStart() {Blackchess=1; count=0;

for(inti=0;i<15;i++) for(int j=0;j<15;j++) wb[i][j]=0;

for(int iii=0;iii<15;iii++)

for(intjjj=0;jjj<15;jjj++)

a[iii][jjj]=0;

for(int ii=0;ii<15;ii++)

for(intjj=0;jj<15;jj++)

j1[ii][jj]=0; OnDraw(GetDC()); }

3.2.7背景音乐的实现主程序

23

江苏大学《设计一个五子棋》课程设计任务书

voidCKView::Onbeijing() {

{ mciSendString(\mciSendString(\ }

3.2.8保存和读取文件

void CCk1401View::OnOnSave() {//设置保存的文件,后缀名wzq

CFileDialogdlg(FALSE,\}

*.WB)|*.wb|All Files|*.*||\

//如果公共类对话框为确定 if(dlg.DoModal()==IDOK) //获取文件名 dlg.GetFileName(); //否则,退出 else

return;

//字符串变量 CStringstr; inti,j;

CStdioFile file; //如果有问题,退出

if(file.Open(dlg.GetFileName(),CFile::modeCreate|CFile::modeWrite|CFil

e::typeText)==0)

{ }

//循环把棋盘数组的值写进文件

24

AfxMessageBox(\return;

联系合同范文客服:xxxxx#qq.com(#替换为@)