📄 chess.cpp
字号:
#include "Chess.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
CChess::CChess(unsigned n=1)
{
unsigned i, j;
m_Length = n;
m_ChessBoard = new char *[n];
for(i=0; i<n; i++){
m_ChessBoard[i] = new char [n];
for(j=0; j<n; j++){
m_ChessBoard[i][j] = '.';
}
}
srand( time(NULL) );
dr = rand() % n;
dc = rand() % n;
m_ChessBoard[dr][dc]='@';
}
void CChess::Solve(unsigned tr, unsigned tc, unsigned dr, unsigned dc, unsigned length)
{
if(length==1)
return;
unsigned l = length/2;
char t;
if(dr<tr+l && dc<tc+l)
t = '#';
else if(dr<tr+l && dc>=tc+l)
t = '+';
else if(dr>=tr+l && dc<tc+l)
t = '*';
else
t = '-';
if(t == '#')
Solve(tr, tc, dr, dc, l);
else{
m_ChessBoard[tr+l-1][tc+l-1] = t;
Solve(tr, tc, tr+l-1, tc+l-1, l);
}
if(t == '+')
Solve(tr, tc+l, dr, dc, l);
else{
m_ChessBoard[tr+l-1][tc+l] = t;
Solve(tr, tc+l, tr+l-1, tc+l, l);
}
if(t == '*')
Solve(tr+l, tc, dr, dc, l);
else{
m_ChessBoard[tr+l][tc+l-1] = t;
Solve(tr+l, tc, tr+l, tc+l-1, l);
}
if(t == '-')
Solve(tr+l, tc+l, dr, dc, l);
else{
m_ChessBoard[tr+l][tc+l] = t;
Solve(tr+l, tc+l, tr+l, tc+l, l);
}
}
void CChess::GetInfo(unsigned *info)
{
info[0] = dr;
info[1] = dc;
info[2] = m_Length;
}
void CChess::BoardDisp()
{
int i, j;
for(i=0; i<m_Length; i++){
for(j=0; j<m_Length; j++)
cout<<m_ChessBoard[i][j]<<' ';
cout<<endl;
}
}
CChess::~CChess()
{
int i;
for(i=0; i<m_Length; i++)
delete [] m_ChessBoard[i];
delete [] m_ChessBoard;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -