• 大小: 2.16MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-06
  • 语言: C/C++
  • 标签: 跳棋游戏  

资源简介

不支持人机对弈,必须逐步跳跃,不能只指定起点终点自动计算路径,此点可设计适当算法进行完善。鼠标右键表示移动取消/完成。C++ VS2005

资源截图

代码片段和文件信息

// Chess.cpp: implementation of the CChess class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “JumpChess.h“
#include “Chess.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

IMPLEMENT_SERIAL(CChess Cobject 0)

CChess::CChess()
{
PutChess(true);
}

CChess::~CChess()
{

}

void CChess::InitChess(int p_block)
{
m_nBlockNumber = p_block;
m_nCurrentPlayer = 0;
m_nPrevLine = 0;
m_nPrevCol = 0;
m_nStartLine = 0;
m_nStartCol = 0;

bPending=false;
m_bFirstJump = true;

bContinueMove = false;
m_bWin[0]=false;
m_bWin[1]=false;

PutChess(false);
}

int CChess::Who(int i int j)
{
return m_arrChess[i][j];
}

bool CChess::IsValid(int line int col)
{
return (col >= JC_COL_BEGIN[line]) && (col <= JC_COL_END[line]);
}

int CChess::ClickAt(int line int col int & prev_line int & prev_col)
{

if(bPending)
{
if(m_arrChess[line][col] != 0) // try to move to a non-empty hole
return 0;

 //judge whether the move is valid
int nCanMove = CanMove(m_nPrevLinem_nPrevCollinecol);

if(nCanMove == 0)
return 0;
else
{
if(nCanMove == 1) //last drop
{
int nOriChess = m_arrOriChess[line][col];
int nChess = m_arrChess[m_nPrevLine][m_nPrevCol];
if(nOriChess != 0)
{
if(nOriChess != nChess && nOriChess != GetRevChess(nChess))
return 6; // try to stop at other chess‘s base except it‘s and it‘s rev chess
}
}

prev_line = m_nPrevLine;
prev_col = m_nPrevCol;
m_arrChess[line][col] = m_arrChess[m_nPrevLine][m_nPrevCol];
m_arrChess[m_nPrevLine][m_nPrevCol] = 0;
m_nPrevLine = line;
m_nPrevCol = col;
}

if(nCanMove == 1) //last drop
{
bPending = false;
if(IsWin(linecol))
{
int nOther = (m_nCurrentPlayer == 0) ? 1 : 0;
m_bWin[m_nCurrentPlayer] = true;
if(m_bWin[nOther]) //Game is end! another win!
return 4;
else // current player win! Let another continue moving
{
bContinueMove = true;
m_nCurrentPlayer = nOther;
return 5;
}
}
// next player
if(!bContinueMove)
{
if(m_nCurrentPlayer == 0)
m_nCurrentPlayer = 1;
else
m_nCurrentPlayer = 0;
}
return 3;
}
else // not last drop
{
m_bFirstJump = false;
return 2;
}
}
else
{
int nCurChess = m_arrChess[line][col];
if (nCurChess == 0) //first click should not be in a empty hole
return 0;
if(m_nCurrentPlayer == 0) // left player
if(nCurChess == 4 || nCurChess == 5 || nCurChess == 6) 
//try to move another player‘s chess
return 0;
if(m_nCurrentPlayer == 1) // right player
if(nCurChess == 1 || nCurChess == 2 || nCurCh

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3564  2007-12-22 21:58  JumpChess.clw

     文件       4138  2016-09-07 21:52  JumpChess.cpp

     文件       6145  2006-02-15 18:58  JumpChess.dsp

     文件        541  2004-11-29 21:20  JumpChess.dsw

     文件       1399  2004-08-02 11:33  JumpChess.h

     文件    8252416  2016-09-07 21:53  JumpChess.ncb

     文件      56832  2011-06-20 23:15  JumpChess.opt

     文件       1883  2011-06-20 23:06  JumpChess.plg

     文件      12713  2004-08-06 08:08  JumpChess.rc

     文件        882  2015-08-25 22:37  JumpChess.sln

     文件      10444  2015-08-25 22:37  JumpChess.vcproj

     文件       1427  2016-09-07 21:53  JumpChess.vcproj.UBPJ19NPZWDN1SU.Administrator.user

     文件       2044  2004-08-05 13:17  JumpChessDoc.cpp

     文件       1549  2004-08-02 19:43  JumpChessDoc.h

     文件      17822  2006-02-16 13:02  JumpChessView.cpp

     文件       2622  2004-08-08 17:13  JumpChessView.h

     文件       1498  2004-08-05 14:04  MainFrm.cpp

     文件       1426  2004-08-02 11:33  MainFrm.h

     文件       3832  2004-08-02 11:33  ReadMe.txt

     文件       1320  2004-08-05 20:27  Resource.h

     文件       1016  2004-08-05 13:13  SetBlockDlg.cpp

     文件       1267  2004-08-05 13:12  SetBlockDlg.h

     文件        207  2004-08-02 11:33  StdAfx.cpp

     文件        928  2004-08-02 11:33  StdAfx.h

     文件        822  2006-02-16 12:43  res\Bmp\chess1.bmp

     文件        822  2006-02-16 12:43  res\Bmp\chess2.bmp

     文件        822  2006-02-16 12:44  res\Bmp\chess3.bmp

     文件        822  2006-02-16 12:44  res\Bmp\chess4.bmp

     文件        822  2006-02-16 12:44  res\Bmp\chess5.bmp

     文件        822  2006-02-16 12:45  res\Bmp\chess6.bmp

............此处省略33个文件信息

评论

共有 条评论