Emag eht htiw Em Pleh(POJ 2993)、Help Me with the Game(POJ 2996)模拟题

本文介绍了如何使用C语言实现棋盘布局的输入与输出,包括棋子的位置转换和棋盘状态的可视化。通过两个示例,展示了从棋子列表到棋盘布局的转换过程,以及反之亦然。

Emag eht htiw Em Pleh(POJ 2993)

~题目链接~

http://poj.org/problem?id=2993

输入

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

结果

+---+---+---+---+---+---+---+---+
|.r.|:::|.b.|:q:|.k.|:::|.n.|:r:|
+---+---+---+---+---+---+---+---+
|:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|
+---+---+---+---+---+---+---+---+
|...|:::|.n.|:::|...|:::|...|:p:|
+---+---+---+---+---+---+---+---+
|:::|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|...|:::|...|:::|.P.|:::|...|:::|
+---+---+---+---+---+---+---+---+
|:P:|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|.P.|:::|.P.|:P:|...|:P:|.P.|:P:|
+---+---+---+---+---+---+---+---+
|:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.|
+---+---+---+---+---+---+---+---+
图示:white:大写字母,顺序从下往上
black:小写字母,顺序从上往下

 
 
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #include<ctype.h>
 5 
 6 char map[10][10];
 7 
 8 int main()
 9 {
10     char str[100];
11     int i,j;
12     memset(map,0,sizeof(map));
13     for(i=0; i<2; i++)
14     {
15         memset(str,0,sizeof(str));
16         gets(str);
17         if(str[0]=='W')
18         {
19             int x,y;
20             int n=strlen(str);
21             for(j=7; j<n; j++)
22             {
23                 if(isupper(str[j]))
24                 {
25                     char st=str[j];
26                     y=str[++j]-'a';
27                     x=8-str[++j]+'0';
28                     map[x][y]=st;
29                 }
30                 else if(islower(str[j]))
31                 {
32                     y=str[j++]-'a';
33                     x=8-str[j++]+'0';
34                     map[x][y]='P';
35                 }
36             }
37         }
38         else if(str[0]=='B')
39         {
40             int x,y;
41             int n=strlen(str);
42             for(j=7; j<n; j++)
43             {
44                 if(isupper(str[j]))
45                 {
46                     char st=str[j]-'A'+'a';
47                     y=str[++j]-'a';
48                     x=8-str[++j]+'0';
49                     map[x][y]=st;
50                 }
51                 else if(islower(str[j]))
52                 {
53                     y=str[j++]-'a';
54                     x=8-str[j++]+'0';
55                     map[x][y]='p';
56                 }
57             }
58         }
59     }
60     for(i=0; i<8; i++)
61     {
62         printf("+---+---+---+---+---+---+---+---+\n");
63         for(j=0; j<8; j++)
64         {
65             int flag;
66             flag=(i+j)%2;
67             if(flag)
68                 printf("|:");
69             else
70                 printf("|.");
71             if(map[i][j])
72                 printf("%c",map[i][j]);
73             else
74             {
75                 if(flag)
76                     printf(":");
77                 else
78                     printf(".");
79             }
80             if(flag)
81                 printf(":");
82             else
83                 printf(".");
84 
85         }
86         printf("|\n");
87     }
88     printf("+---+---+---+---+---+---+---+---+\n");
89     return 0;
90 }
View Code

Help Me with the Game(POJ 2996)模拟题

~题目链接~

http://poj.org/problem?id=2996

输入

+---+---+---+---+---+---+---+---+
|.r.|:::|.b.|:q:|.k.|:::|.n.|:r:|
+---+---+---+---+---+---+---+---+
|:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|
+---+---+---+---+---+---+---+---+
|...|:::|.n.|:::|...|:::|...|:p:|
+---+---+---+---+---+---+---+---+
|:::|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|...|:::|...|:::|.P.|:::|...|:::|
+---+---+---+---+---+---+---+---+
|:P:|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|.P.|:::|.P.|:P:|...|:P:|.P.|:P:|
+---+---+---+---+---+---+---+---+
|:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.|
+---+---+---+---+---+---+---+---+

结果

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
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #include<ctype.h>
 5 
 6 int flag;
 7 char s[40],map[8][8];
 8 
 9 void find1(char str)
10 {
11     for(int i=7; i>=0; i--)
12         for(int j=0; j<8; j++)
13             if(map[i][j]==str)
14             {
15                 if(!flag)
16                     flag=1;
17                 else
18                     printf(",");
19                 if(str!='P')
20                     printf("%c",str);
21                 printf("%c%d",j+'a',8-i);
22             }
23 }
24 
25 void find2(char str)
26 {
27     for(int i=0; i<8; i++)
28         for(int j=0; j<8; j++)
29             if(map[i][j]==str)
30             {
31                 if(!flag)
32                     flag=1;
33                 else
34                     printf(",");
35                 if(str!='p')
36                     printf("%c",toupper(str));
37                 printf("%c%d",j+'a',8-i);
38             }
39 }
40 
41 int main()
42 {
43     gets(s);
44     for(int i=0; i<8; i++)
45     {
46         gets(s);
47         for(int j=0; j<8; j++)
48         {
49             if(isalpha(s[4*(j+1)-2]))
50                 map[i][j]=s[4*(j+1)-2];
51         }
52         gets(s);
53     }
54     flag=0;
55     printf("White: ");
56     find1('K');find1('Q');find1('R');find1('B');find1('N');find1('P');
57     printf("\n");
58     flag=0;
59     printf("Black: ");
60     find2('k');find2('q');find2('r');find2('b');find2('n');find2('p');
61     printf("\n");
62     return 0;
63 }
View Code

 

 

转载于:https://www.cnblogs.com/guoyongzhi/p/3243323.html

Java是一种具备卓越性能与广泛平台适应性的高级程序设计语言,最初由Sun Microsystems(现属Oracle公司)的James Gosling及其团队于1995年正式发布。该语言在设计上追求简洁性、稳定性、可移植性以及并发处理能力,同时具备动态执行特性。其核心特征与显著优点可归纳如下: **平台无关性**:遵循“一次编写,随处运行”的理念,Java编写的程序能够在多种操作系统与硬件环境中执行,无需针对不同平台进行修改。这一特性主要依赖于Java虚拟机(JVM)的实现,JVM作为程序与底层系统之间的中间层,负责解释并执行编译后的字节码。 **面向对象范式**:Java全面贯彻面向对象的设计原则,提供对封装、继承、多态等机制的完整支持。这种设计方式有助于构建结构清晰、模块独立的代码,提升软件的可维护性与扩展性。 **并发编程支持**:语言层面集成了多线程处理能力,允许开发者构建能够同时执行多项任务的应用程序。这一特性尤其适用于需要高并发处理的场景,例如服务器端软件、网络服务及大规模分布式系统。 **自动内存管理**:通过内置的垃圾回收机制,Java运行时环境能够自动识别并释放不再使用的对象所占用的内存空间。这不仅降低了开发者在内存管理方面的工作负担,也有效减少了因手动管理内存可能引发的内存泄漏问题。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值