⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chess.cpp

📁 这是有关数据结构的例程序
💻 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 + -