资源简介
这是我们学院的08级课程设计,是用MFC做的国际象棋,里面结构比较合理,算法非常好,适合广大初学者使用,希望大家喜欢。
代码片段和文件信息
#include “stdafx.h“
#include “chessgo.h“
#include
extern int chess[8][8];
int Board1::check_rook_move (int x0int y0int xint y)
{
bool can_move=false;
if (((chess[x0][y0]==21||chess[x0][y0]==24)&&(chess[x][y]==0||chess[x][y]==16||
chess[x][y]==11||chess[x][y]==12||chess[x][y]==13||chess[x][y]==14||chess[x][y]==15))
||((chess[x0][y0]==11||chess[x0][y0]==14)&&(chess[x][y]==0||chess[x][y]==26||chess[x][y]==21||
chess[x][y]==22||chess[x][y]==23||chess[x][y]==24||chess[x][y]==25)))
{
can_move=true;
if(y==y0) // 车横向移动
{
if (x>(x0+1))
{
for(int j=(x0+1);j {
if (chess[j][y]!=0){
can_move=false;}
}
}
else if (x<(x0-1))
{
for(int j=x+1;j {
if(chess[j][y]!=0){
can_move=false;}
}
}
else {}
}
else if (x==x0) //车纵向移动
{
if(y>(y0+1))
{
for (int j=y0+1;j {
if(chess[x][j]!=0){
can_move=false;}
}
}
else if(y<(y0-1))
{
for(int j=y+1;j {
if (chess[x][j]!=0)
can_move=false;
}
}
else{}
}
else can_move=false;
}
return can_move;
}
int Board1::check_knight_move(int x0int y0int xint y)
{
bool can_move=false;
if( ( (chess[x0][y0]==22&&(chess[x][y]==0||chess[x][y]==16||chess[x][y]==11||
chess[x][y]==12||chess[x][y]==13||chess[x][y]==14||chess[x][y]==15 ) )
||( chess[x0][y0]==12&& ( chess[x][y]==0||chess[x][y]==26||chess[x][y]==21||
chess[x][y]==22||chess[x][y]==23||chess[x][y]==24||chess[x][y]==25 ) ) ) )
{
//马走日字
if((abs(x-x0)==2&&abs(y-y0)==1)||(abs(x-x0)==1&&abs(y-y0)==2))
{
can_move=true;
}
}
return can_move;
}
int Board1::check_bishop_move(int x0int y0int xint y)
{
bool can_move=false;
//斜走斜线,且中间都为空格
if(((chess[x0][y0]==13||chess[x0][y0]==14)&&(chess[x][y]==0||chess[x][y]==26||chess[x][y]==21||
chess[x][y]==22||chess[x][y]==23||chess[x][y]==24||chess[x][y]==25))||((chess[x0][y0]==23||
chess[x0][y0]==24)&&(chess[x][y]==0||chess[x][y]==16||chess[x][y]==11||chess[x][y]==12||
chess[x][y]==13||chess[x][y]==14||chess[x][y]==15)))
{
can_move=true;
if(abs(x-x0)==abs(y-y0))
{
int mn;
if (x>x0&&y>y0)
{
for(m=x0+1n=y0+1;m {
if(chess[m][n]!=0){
can_move=false;}
}
}
else if (xy0)
{
for(m=x0-1n=y0+1;m>x&&n {
if(chess[m][n]!=0){
can_move=false;}
}
}
else if (x>x0&&y {
for (m=x0+1n=y0-1;my;m++n--)
{
if(chess[m][n]!=0){
can_move=false;}
}
}
else if (x {
for (m=x0-1n=y0-1;m>x&&n>y;m--n--)
{
if (chess[m][n]!=0){
can_move=false;}
}
}
else can_move=true;
}
else
can_move=false;
}
return can_move;
}
int Board1::check_Queen_move(int x0int y0int xint y)
{
//后兼具车和
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5131 2009-06-06 17:47 国际象棋\national\chessgo.cpp
文件 468 2009-06-04 13:39 国际象棋\national\chessgo.h
文件 1673 2009-06-05 18:29 国际象棋\national\D.cpp
文件 1186 2009-05-26 19:18 国际象棋\national\D.h
文件 1217 2009-05-25 20:07 国际象棋\national\Diff.h
文件 1289 2009-05-26 19:16 国际象棋\national\hero.cpp
文件 1254 2009-05-26 18:56 国际象棋\national\hero.h
文件 1127 2009-05-26 15:29 国际象棋\national\lasthero.cpp
文件 1224 2009-05-26 15:29 国际象棋\national\lasthero.h
文件 4490 2009-06-07 17:03 国际象棋\national\national.clw
文件 2093 2009-06-02 21:46 国际象棋\national\national.cpp
文件 539 2009-05-23 12:59 国际象棋\national\national.dsw
文件 1346 2009-05-23 12:59 国际象棋\national\national.h
文件 263168 2009-06-07 17:09 国际象棋\national\national.ncb
文件 884 2009-06-07 17:07 国际象棋\national\national.plg
文件 3615 2009-05-23 12:59 国际象棋\national\ReadMe.txt
文件 1054 2009-05-23 12:59 国际象棋\national\StdAfx.h
文件 0 2009-05-24 00:31 国际象棋\national\VA_C__Documents and Settings_Administrator_Local Settings_Application Data_VisualAssist_vc6_history_
文件 1223 2009-06-07 15:05 国际象棋\national\diffore.h
文件 1325 2009-06-07 15:16 国际象棋\national\diffcanuse.h
文件 1610 2009-06-07 15:25 国际象棋\national\diffcanuse.cpp
文件 8357 2009-06-07 15:33 国际象棋\national\national.dsp
文件 2815 2009-06-07 15:33 国际象棋\national\resource.h
文件 1295 2009-06-07 15:34 国际象棋\national\shengji.h
文件 14156 2009-06-07 15:40 国际象棋\national\national.rc
文件 1440054 2009-06-04 20:01 国际象棋\national\res\back111.bmp
文件 1440054 2009-06-04 19:57 国际象棋\national\res\back3.bmp
文件 3470020 2009-05-29 21:59 国际象棋\national\res\backgroundmusic.mp3
文件 1078 2005-05-21 02:53 国际象棋\national\res\chess.ico
文件 397 2005-05-21 02:53 国际象棋\national\res\chess.rc2
............此处省略61个文件信息
相关资源
- Effective C++中文版高清完整目录混乱
- 基于mfcc特征的dtw算法实现
- 可以改变ListCtr控件中的显示颜色和背
- 坦克大战 c++ 源代码
- 用二叉树做的心理测试mfc
- 公交车查询系统可换乘 MFC 自己做的
- C++语音识别接口Microsoft Speech SDK简单清
- vs2010 mfc编写的串口助手
- Data Structures With C++ Using STL(中文版)
- OpenCV MFC实现图像处理大集合
- C++ MFC 调用twain接口采集图像
- 基于mfc的学生信息管理系统159407
- 上期技术CTP_C++_API实盘范例代码及帮助
- C++飞机游戏源代码
- LL1文法消除左递归编译原理mfc实现完
-
C++xm
l高级编程指南扫描版 - 基于VLC的MFC播放器
- 疯狂跑酷游戏
- C++ MFC实现计算器基本功能
- mfc实现抓包程序
- MFC ListCtrl控件上增加Comb以及可编写子
- TCPSocket摄像头实时传输视频和图片传
- 初步实现ATM机MFC、 实现ATM系统
- Visual C++角色扮演游戏程序设计电子书
- MFC生成二维码并显示的基于qrencode修改
- 嵌入式系统高级C语言编程.凌明(带详
- 基于MFC实现的数独小游戏,可在vc6.
- Visual C++ 2015 Redistributable Packages.(x6
- C++实现的人脸识别系统
- 传智播客 c/c++ 课件
评论
共有 条评论