unknown
java
14 days ago
2.7 kB
1
Indexable
Never
```static void task2(){
//read the input file and the number of test case
Scanner scan = new Scanner(Main.class.getResourceAsStream("board.txt"));
int t = scan.nextInt();
//loop for each test case
for(int n=0;n<t;n++){
int xP = 0;
int yP = 0;
int xQ = 0;
int yQ = 0;
//decalre the needed variable
int board[][] = new int[8][8];
//loop to assign the number into 2D array and find the position of queen and Pawn
for(int i = 0; i < board.length; i++){
for(int j = 0; j < board[0].length; j++){
board[i][j] = scan.nextInt();
if(board[i][j] == 1){
xQ = i;
yQ = j;
}
else if(board[i][j] == 2){
xP = i;
yP = j;
}
}
}

//decalare any required variables here
boolean isThreaten = false;

//check whether the pawn is threatened or not and update board
if (xP == xQ){
isThreaten = true;
if(yP < yQ){
for(int i = yP+1; i<yQ; i++){
board[xP][i] = 3;
}
} else{
for(int i = yQ + 1; i<yP; i++){
board[xP][i] = 3;
}
}
} else if(yP == yQ){
isThreaten = true;
if(xP > xQ){
for(int i = xQ + 1; i<xP; i++){
board[i][yP] = 3;
}
}
else{
for(int i = xP + 1; i < xQ; i++){
board[i][yP] = 3;
}
}
}   else if(Math.abs(xP-xQ) == Math.abs(yP - yQ) ){
isThreaten = true;
if(xQ < xP && yQ < yP){
for(int i = 1; i< xP - xQ; i++){
board[xQ + i][xQ + i] = 3;
}
}
else if(xQ < xP && yQ > yP){
for(int i = 1; i< xP - xQ; i++){
board[xQ + i][xQ - i] = 3;
}
}
else if(xQ > xP && yQ > yP){
for(int i = 1; i< xQ - xP; i++){
board[xQ - i][xQ - i] = 3;
}
}
else if(xQ > xP && yQ < yP){
for(int i = 1; i< xQ - xP; i++){
board[xQ + i][xQ - i] = 3;
}
}
}```