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

📄 board.cpp

📁 这是一个八皇后问题
💻 CPP
字号:
/*************************************************************************
  *      CS2617 Assignment 3 --                                Board.cpp      *
  *      BY Bobby Foerster   Created:  03/21/01    Modified: 03/28/01            *
  ************************************************************************/ 
#include <iostream.h>
#include "Board.h"

Board::Board()   //构造函数,初始化为空
{
   for(int i=0; i<8; i++)
   {
      Rows[i] = free;
      for(int j=0; j<8; j++)  board[i][j] = '.';
   }
   for(int k=0; k<15; k++)  DiagsLR[k] = DiagsRL[k] = free;
} 

void Board::Print()  //显示一组排列结果
{
   cout << endl;
   for(int i=0; i<8; i++)
   {
      for(int j=0; j<8; j++)
	 cout << board[i][j] << ' ';
      cout << endl;
   }
} 

bool Board::isAttacked(int row, int col)  //是否冲突,是返回TRUE,否返回FALSE
{
   int diagLR = col-row+7;
   int diagRL = row+col;
   if (Rows[row] == used || DiagsLR[diagLR] == used || DiagsRL[diagRL] == used)
      return true;
   return false;
}
void Board::PlaceQueen(int row, int col) //放皇后
{
   int diagLR = col-row+7; //左对角线元素
   int diagRL = row+col;  //右对角线元素
   board[row][col] = 'Q';
   Rows[row] = used;
   DiagsLR[diagLR] = used;
   DiagsRL[diagRL] = used;
}

void Board::RemoveQueen(int row, int col)  //移去皇后
{
   int diagLR = col-row+7;
   int diagRL = row+col;
   board[row][col] = '.';
   Rows[row] = free;
   DiagsLR[diagLR] = free;
   DiagsRL[diagRL] = free;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -