• 解析棋盘之”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 }
  • 相关阅读:
    Java实现 LeetCode 799 香槟塔 (暴力模拟)
    Java实现 LeetCode 799 香槟塔 (暴力模拟)
    ASP.NET中使用Entity Framework开发登陆注册Demo
    ASP.NET中使用Entity Framework开发登陆注册Demo
    ASP.NET中使用Entity Framework开发登陆注册Demo

    requirejs
    转一个网址,canvas用法
    这是个排序,摘的,记一下
    今天面前端哦 2015 08 27
  • 原文地址:https://www.cnblogs.com/love-fromAtoZ/p/7551858.html
Copyright © 2020-2023  润新知