解析棋盘之”Help Me with the Game“

题目大意:

  输入棋盘。

  打印两行字符串代表棋盘上棋子的位置。

  其中字母的含义:  "K" (King), "Q" (Queen), "R" (Rook), "B" (Bishop), "N" (Knight), or "P" (Pawn).

  用 ::: 构成的格子是黑的

  用 .   .   .  构成的格子是白的

  白棋用大写,黑棋用小写。

  样例:

      White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4

      Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6

      ————————————————-————————————

      

解题思路:

  模拟大法好。

  除了坐标很坑以外,没有任何难点。

AC代码:

 1 import java.util.*;
 2 
 3 public class Main{
 4     public static void main(String[] args){
 5         Scanner sc = new Scanner(System.in);
 6         while(sc.hasNext()){
 7             String map[] = new String[10];
 8             for(int i = 1;i <= 8;i ++){
 9                 String edge = sc.nextLine();
10                 map[i] = sc.nextLine();
11             }
12             String edge = sc.nextLine();
13 
14             System.out.print("White: ");
15             for(int i = 8;i >= 1;i --){
16                 for(int j = 2;j <= 30; ){
17                     if(map[i].charAt(j) == 'K'){System.out.print( "K" + (char)('a' + j / 4) + (8 - i + 1) );}
18                     j = j + 4;
19                 }
20             }
21             for(int i = 8;i >= 1;i --){
22                 for(int j = 2;j <= 30; ){
23                     if(map[i].charAt(j) == 'Q'){System.out.print( ",Q" + (char)('a' + j / 4) + (8 - i + 1) );}
24                     j = j + 4;
25                 }
26             }
27             for(int i = 8;i >= 1;i --){
28                 for(int j = 2;j <= 30; ){
29                     if(map[i].charAt(j) == 'R'){System.out.print( ",R" + (char)('a' + j / 4) + (8 - i + 1) );}
30                     j = j + 4;
31                 }
32             }
33             for(int i = 8;i >= 1;i --){
34                 for(int j = 2;j <= 30; ){
35                     if(map[i].charAt(j) == 'B'){System.out.print( ",B" + (char)('a' + j / 4) + (8 - i + 1) );}
36                     j = j + 4;
37                 }
38             }
39             for(int i = 8;i >= 1;i --){
40                 for(int j = 2;j <= 30; ){
41                     if(map[i].charAt(j) == 'N'){System.out.print( ",N" + (char)('a' + j / 4) + (8 - i + 1) );}
42                     j = j + 4;
43                 }
44             }
45             for(int i = 8;i >= 1;i --){
46                 for(int j = 2;j <= 30; ){
47                     if(map[i].charAt(j) == 'P'){System.out.print( "," + (char)('a' + j / 4) + (8 - i + 1) );}
48                     j = j + 4;
49                 }
50             }
51             System.out.println();
52 
53             System.out.print("Black: ");
54             for(int i = 1;i <= 8;i ++){
55                 for(int j = 2;j <= 30; ){
56                     if(map[i].charAt(j) == 'k'){System.out.print( "K" + (char)('a' + j / 4) + (8 - i + 1) );}
57                     j = j + 4;
58                 }
59             }
60             for(int i = 1;i <= 8;i ++){
61                 for(int j = 2;j <= 30; ){
62                     if(map[i].charAt(j) == 'q'){System.out.print( ",Q" + (char)('a' + j / 4) + (8 - i + 1) );}
63                     j = j + 4;
64                 }
65             }
66             for(int i = 1;i <= 8;i ++){
67                 for(int j = 2;j <= 30; ){
68                     if(map[i].charAt(j) == 'r'){System.out.print( ",R" + (char)('a' + j / 4) + (8 - i + 1) );}
69                     j = j + 4;
70                 }
71             }
72             for(int i = 1;i <= 8;i ++){
73                 for(int j = 2;j <= 30; ){
74                     if(map[i].charAt(j) == 'b'){System.out.print( ",B" + (char)('a' + j / 4) + (8 - i + 1) );}
75                     j = j + 4;
76                 }
77             }
78             for(int i = 1;i <= 8;i ++){
79                 for(int j = 2;j <= 30; ){
80                     if(map[i].charAt(j) == 'n'){System.out.print( ",N" + (char)('a' + j / 4) + (8 - i + 1) );}
81                     j = j + 4;
82                 }
83             }
84             for(int i = 1;i <= 8;i ++){
85                 for(int j = 2;j <= 30; ){
86                     if(map[i].charAt(j) == 'p'){System.out.print( "," + (char)('a' + j / 4) + (8 - i + 1) );}
87                     j = j + 4;
88                 }
89             }
90             System.out.println();
91         }
92     }
93 }

 

转载于:https://www.cnblogs.com/love-fromAtoZ/p/7551858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值