【题目链接】
【解题思路】
按照题解模拟即可,要注意各种棋子移动的数组有没有写错,我调这个用了一个多月。
【CODE】
#include<bits/stdc++.h>
using namespace std;
string qipan[1001][1001]=
{
{
"red car","red horse","red elephant","red guard","red captain","red guard","red elephant","red horse","red car"," "," "," "," "," "," "," "},
{
" ", " ", " ", " ", " ", " "," " ," " , " "," "," "," "," "," "," "," "},
{
"red duck", " ", " ", " ", " ", " ", " ", " ","red duck"," "," "," "," "," "," "," "},
{
"red soldier", " ","red soldier", " ","red soldier", " ","red soldier", " ","red soldier"," "," "," "," "," "," "," "},
{
" ", " ", " ", " ", " ", " "," " ," " , " "," "," "," "," "," "," "," "},
{
" ", " ", " ", " ", " ", " "," " ," " , " "," "," "," "," "," "," "," "},
{
"blue soldier", " ","blue soldier", " ","blue soldier", " ","blue soldier", " ","blue soldier"," "," "," "," "," "," "," "},
{
"blue duck", " ", " ", " ", " ", " ", " ", " ","blue duck"," "," "," "," "," "," "," "},
{
" ", " ", " ", " ", " ", " "," " ," " , " "," "," "," "," "," "," "," "},
{
"blue car","blue horse","blue elephant","blue guard","blue captain","blue guard","blue elephant","blue horse","blue car"," "," "," "," "," "," "," "},
};
//这些是重点
int captain[4][2]={
{
0,1},{
0,-1},{
-1,0},{
1,0}};
int guard[4][2]={
{
1,1},{
-1,-1},{
-1,1},{
1,-1}};
int soldier[8][2]={
{
1,0},{
-1,0},{
0,1},{
0,-1},{
-1,1},{
1,1},{
1,-1},{
-1,-1}};
int car[4][2]={
{
1,0},{
-1,0},{
0,1},{
0,-1}};
int elephant[4][4]={
{
2,2,1,1},{
-2,-2,-1,-1},{
-2,2,-1,1},{
2,-2,1,-1}};
int horse[8][4]={
{
-2,1,-1,0},{
-1,2,0,1},{
1,2,0,1},{
2,1,1,0},{
2,-1,1,0},{
1,-2,0,-1},{
-1,-2,0,-1},{
-2,-1,-1,0}};
int duck[8][6]={
{
-3,2,-1,0,-2,1},{
3,-2,1,0,2,-1},{
-2,3,0,1,-1,2},{
2,3,0,1,1,2},{
3,2,1,0,2,1},{
2,-3,0,-1,1,-2},{
-2,-3,0,-1,