首页 > 分享 > 挑战编程 程序设计竞赛训练手册

挑战编程 程序设计竞赛训练手册

挑战编程 程序设计竞赛训练手册-1.6.7 将军(Check_the_Check)

public class problem_Check_The_Check {

public static void main(String[] args) {

char[][] check1 = {

{'.','.','k','.','.','.','.','.'},

{'p','p','p','.','p','p','p','p'},

{'.','.','.','.','.','.','.','.'},

{'.','.','.','.','.','B','.','.'},

{'.','.','.','.','.','.','.','.'},

{'.','.','.','.','.','.','.','.'},

{'P','P','P','P','P','P','P','P'},

{'K','.','.','.','.','.','.','.'},

};

char[][] check = {

{'r','n','b','q','k','.','n','r'},

{'p','p','p','.','.','p','p','p'},

{'.','.','.','.','p','.','.','.'},

{'.','.','.','P','.','.','.','.'},

{'.','b','P','P','.','.','.','.'},

{'.','.','.','.','.','.','.','.'},

{'P','P','.','.','P','P','P','P'},

{'R','N','B','Q','K','B','.','R'},

};

int rK[]=kKPosition(check);

if(judgekChecked(check,rK[0],rK[1])){

System.out.println("black king is in check");

}

if(judgeKChecked(check,rK[2],rK[3])){

System.out.println("white king is in check");

}

}

private static boolean judgeKChecked(char[][] check, int i, int j) {

boolean white = false;

int x ;

if(i-1>=0&&j-1>=0&&check[i-1][j-1]=='p'||i-1>=0&&j-1>=0&&check[i-1][j-1]=='b'||i-1>=0&&j-1>=0&&check[i-1][j-1]=='q'

||i-1>=0&&j+1<8&&check[i-1][j+1]=='p'||i-1>=0&&j+1<8&&check[i-1][j+1]=='b'||i-1>=0&&j+1<8&&check[i-1][j+1]=='q'){

white = true;

}

if((i-2>=0&&j-1>=0&&check[i-2][j-1]=='n')||

(i-2>=0&&j+1<8&&check[i-2][j+1]=='n')||

(i+2<8&&j-1>=0&&check[i+2][j-1]=='n')||

(i+2<8&&j+1<8&&check[i+2][j+1]=='n')||

(i-1>=0&&j-2>=0&&check[i-1][j-2]=='n')||

(i-1>=0&&j+2<8&&check[i-1][j+2]=='n')||

(i+1<8&&j-2>=0&&check[i+1][j-2]=='n')||

(i+1<8&&j+2<8&&check[i+1][j+2]=='n')){

white = true;

}

if(i+1<8&&j+1<8&&check[i+1][j+1]=='k'||

j+1<8&&check[i][j+1]=='k'||

i-1>=0&&j+1<8&&check[i-1][j+1]=='k'||

i-1>=0&&check[i-1][j]=='k'||

i-1>=0&&j-1>=0&&check[i-1][j-1]=='k'||

i+1<8&&j-1>=0&&check[i+1][j-1]=='k'||

i+1<8&&check[i+1][j]=='k'||

j-1>=0&&check[i][j-1]=='k'){

white=true;

}

for(int a=i-1;a>=0;a--){

if(check[a][j]<'a'&&check[a][j]>'.'){

break;

}else{

if(check[a][j]=='r'||check[a][j]=='q'){

white=true;

}

}

}

for(int a=i+1;a<8;a++){

if((check[a][j]<'a'&&check[a][j]>'.')){

break;

}else{

if(check[a][j]=='r'||check[a][j]=='q'){

white=true;

}

}

}

for(int a=j+1;a<8;a++){

if((check[i][a]<'a'&&check[i][a]>'.')){

break;

}else{

if(check[i][a]=='r'||check[i][a]=='q'){

white=true;

}

}

}

for(int a=j-1;a>=0;a--){

if((check[i][a]<'a'&&check[i][a]>'.')){

break;

}else{

if(check[i][a]=='r'||check[i][a]=='q'){

white=true;

}

}

}

for(int a=1;a<((i<j)?i:j);a++){

if((check[i-a][j-a]<'a'&&check[i-a][j-a]>'.')){

break;

}else{

if(check[i-a][j-a]=='b'||check[i-a][j-a]=='q'){

white=true;

}

}

}

for(int a=1;a<=((i<8-j)?i:8-j);a++){

if((i-a>=0&&j+a<8&&check[i-a][j+a]<'a'&&check[i-a][j+a]>'.')){

break;

}else{

if(i-a>=0&&j+a<8&&check[i-a][j+a]=='b'||i-a>=0&&j+a<8&&check[i-a][j+a]=='q'){

white=true;

}

}

}

for(int a=1;a<((8-i<8-j)?8-i:8-j);a++){

if((check[i+a][j-a]<'a'&&check[i+a][j-a]>'.')){

break;

}else{

if(check[i+a][j-a]=='b'||check[i+a][j-a]=='q'){

white=true;

}

}

}

for(int a=1;a<((8-i<j)?8-i:j);a++){

if((i+a<8&&j-a>=0&&check[i+a][j-a]<'a')&&check[i+a][j-a]>'.'){

break;

}else{

if(i+a<8&&j-a>=0&&check[i+a][j-a]=='b'||i+a<8&&j-a>=0&&check[i+a][j-a]=='q'){

white=true;

}

}

}

return white;

}

private static boolean judgekChecked(char[][] check, int i, int j) {

boolean black = false;

int x ;

if(i+1<8&&j-1>=0&&check[i+1][j-1]=='P'||i+1<8&&j-1>=0&&check[i+1][j-1]=='B'||i+1<8&&j-1>=0&&check[i+1][j-1]=='Q'

||i+1<8&&j+1<8&&check[i+1][j+1]=='P'||i+1<8&&j+1<8&&check[i+1][j+1]=='B'||i+1<8&&j+1<8&&check[i+1][j+1]=='Q'){

black = true;

}

if((i-2>=0&&j-1>=0&&check[i-2][j-1]=='N')||

(i-2>=0&&j+1<8&&check[i-2][j+1]=='N')||

(i+2<8&&j-1>=0&&check[i+2][j-1]=='N')||

(i+2<8&&j+1<8&&check[i+2][j+1]=='N')||

(i-1>=0&&j-2>=0&&check[i-1][j-2]=='N')||

(i-1>=0&&j+2<8&&check[i-1][j+2]=='N')||

(i+1<8&&j-2>=0&&check[i+1][j-2]=='N')||

(i+1<8&&j+2<8&&check[i+1][j+2]=='N')){

black = true;

}

if(i+1<8&&j+1<8&&check[i+1][j+1]=='K'||

j+1<8&&check[i][j+1]=='K'||

i-1>=0&&j+1<8&&check[i-1][j+1]=='K'||

i-1>=0&&check[i-1][j]=='K'||

i-1>=0&&j-1>=0&&check[i-1][j-1]=='K'||

i+1<8&&j-1>=0&&check[i+1][j-1]=='K'||

i+1<8&&check[i+1][j]=='K'||

j-1>=0&&check[i][j-1]=='K'){

black=true;

}

for(int a=i-1;a>=0;a--){

if(check[a][j]>'a'){

break;

}else{

if(check[a][j]=='R'||check[a][j]=='Q'){

black=true;

}

}

}

for(int a=i+1;a<8;a++){

if((check[a][j]>'a')){

break;

}else{

if(check[a][j]=='R'||check[a][j]=='Q'){

black=true;

}

}

}

for(int a=j+1;a<8;a++){

if((check[i][a]>'a')){

break;

}else{

if(check[i][a]=='R'||check[i][a]=='Q'){

black=true;

}

}

}

for(int a=j-1;a>=0;a--){

if((check[i][a]>'a')){

break;

}else{

if(check[i][a]=='R'||check[i][a]=='Q'){

black=true;

}

}

}

for(int a=1;a<((i<j)?i:j);a++){

if((check[i-a][j-a]>'a')){

break;

}else{

if(check[i-a][j-a]=='B'||check[i-a][j-a]=='Q'){

black=true;

}

}

}

for(int a=1;a<=((i<8-j)?i:8-j);a++){

if((i-a>=0&&j+a<8&&check[i-a][j+a]>'a')){

break;

}else{

if(i-a>=0&&j+a<8&&check[i-a][j+a]=='B'||i-a>=0&&j+a<8&&check[i-a][j+a]=='Q'){

black=true;

}

}

}

for(int a=1;a<((8-i<8-j)?8-i:8-j);a++){

if((check[i+a][j-a]>'a')){

break;

}else{

if(check[i+a][j-a]=='B'||check[i+a][j-a]=='Q'){

black=true;

}

}

}

for(int a=1;a<((8-i<j)?8-i:j);a++){

if((i+a<8&&j-a>=0&&check[i+a][j-a]>'a')){

break;

}else{

if(i+a<8&&j-a>=0&&check[i+a][j-a]=='B'||i+a<8&&j-a>=0&&check[i+a][j-a]=='Q'){

black=true;

}

}

}

return black;

}

public static int[] kKPosition(char[][] check){

int kingPosition[]=new int[4];

for(int i=0;i<check.length;i++){

for(int j=0;j<check[i].length;j++){

if(check[i][j]=='k'){

kingPosition[0]=i;

kingPosition[1]=j;

}else if(check[i][j]=='K'){

kingPosition[2]=i;

kingPosition[3]=j;

}

}

}

return kingPosition;

}

}


相关知识

立体化课程
2023年汉江师范学院普通专升本《C语言程序设计》考试大纲
大学计算机实验报告范文
畜禽环境实践技能训练手册文档.pdf
计算机经典书籍电子书合集(适合计算机学生学习以及程序员笔试、面试)
javascript dom 编程艺术pdf javascript dom编程艺术pdf下载网盘
2013.10
元编程艺术,第 1 部分: 元编程简介
(优选)课程设计心得体会15篇
【灌溉系统】

网址: 挑战编程 程序设计竞赛训练手册 https://m.huajiangbk.com/newsview153546.html

所属分类:花卉
上一篇: 百合花的花语是什么?百合花的寓意
下一篇: 北京冬奥会花滑完整赛程出炉&nb