91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .cpp
    金幣: 1
    下載: 1 次
    發布日期: 2021-06-18
  • 語言: C/C++
  • 標簽: 馬踏棋盤??c語言??

資源簡介

帶蹩馬腿功能的馬踏棋盤程序,運用了帶有回溯功能的遞歸函數輸出所有的路徑。運行時間可能較長,打印輸出所有的情況需要等待一定的時間。

資源截圖

代碼片段和文件信息

#include
#include
#include
#pragma?warning(disable:4996)//頭文件及宏定義

#define?MAXN?10//棋盤的最大尺寸
#define?STALL_PIECE?123//蹩馬腿棋子

int?board[MAXN][MAXN]?=?{?0?};//初始化棋盤
int?moveHorizental[8]?=?{?21-1-2-2-112?};
int?moveVertical[8]?=?{?1221-1-2-2-1?};//定義馬移動的八種方式

int?stallPieceNumber;//蹩馬腿棋子的數目

/*
??功能:檢查輸入是否符合規范
??傳入參數:馬的橫縱坐標?棋盤的大小
??返回參數:bool數據類型
*/
bool?Check(int?x?int?y?int?N)
{
if?(x?=?N?||?y?=?N?||?board[x][y]?!=?0) //檢查輸入坐標是否在棋盤內以及該位置是否已經被走過或有蹩馬腿棋子占用
return?false;//輸入不符合規范
return?true;//輸入符合規范
}

/*
??功能:判斷是否被蹩馬腿
??傳入參數:當前位置?下一個位置
??返回參數:bool數據類型
*/
bool?IsStalled(int?currentX?int?currentY?int?nextX?int?nextY)
{
bool?flag?=?false;//有沒有被蹩馬腿的標志

int?deltX?=?nextX?-?currentX;
int?deltY?=?nextY?-?currentY;//計算位置的變化量

bool?pieces[4]?=?{?false?};//初始假設四個方向均未被蹩馬腿
if?(board[currentX?-?1][currentY]?==?STALL_PIECE)
pieces[0]?=?true;//左側有棋子
else?if?(board[currentX][currentY?+?1]?==?STALL_PIECE)
pieces[1]?=?true;//下方有棋子
else?if?(board[currentX?+?1][currentY]?==?STALL_PIECE)
pieces[2]?=?true;//右側有棋子
else?if?(board[currentX][currentY?-?1]?==?STALL_PIECE)
pieces[3]?=?true;//上方有棋子

if?(pieces[0]?&&?abs(deltY)?==?1?&&?deltX?==?-2)
flag?=?true;//左側被蹩馬腿
if?(pieces[1]?&&?abs(deltX)?==?1?&&?deltY?==?2)
flag?=?true;//下方被蹩馬腿
if?(pieces[2]?&&?abs(deltY)?==?1?&&?deltX?==?2)
flag?=?true;//右側被蹩馬腿
if?(pieces[3]?&&?abs(deltX)?==?1?&&?deltY?==?-2)
flag?=?true;//上方被蹩馬腿
return?flag;//返回是否被蹩馬腿
}

/*
??功能:尋找馬踏棋盤的路徑
??傳入參數:馬的當前位置坐標?棋盤大小?走的步數
??返回參數:無
*/
void?HorseTraversal(int?thisX?int?thisY?int?N?int?stepNumber)
{
int?i;//循環控制變量
int?nextX?nextY;//馬的下一個位置的坐標
for?(i?=?0;?i?

評論

共有 條評論