1
5 public class Schachbrett {
6 public static void main(String[] args) {
7
8
10 String[] spielfeld = new String[8];
11
12 spielfeld[7] = "tsldklst";
13 spielfeld[6] = "bbbbbbbb";
14 spielfeld[5] = "........";
15 spielfeld[4] = "........";
16 spielfeld[3] = "........";
17 spielfeld[2] = "........";
18 spielfeld[1] = "BBBBBBBB";
19 spielfeld[0] = "TSLDKLST";
20
21 ausgabe (spielfeld);
22
23 ziehe (spielfeld, "Ba1-a2");
24 ausgabe (spielfeld);
25
26 ziehe (spielfeld, "De3-g5");
27 ausgabe (spielfeld);
28
29 ziehe (spielfeld, "Bc2-c3");
30 ausgabe (spielfeld);
31
32 ziehe (spielfeld, "Dd1-a4");
33 ausgabe (spielfeld);
34
35 }
36
37
40 private static void ziehe(String[] spielfeld, String zug) {
41
42 char figur = zug.charAt( 0 ); char vonspalte = zug.charAt( 1 ); int vonreihe = ziffer2int( zug.charAt(2) ); char nachspalte = zug.charAt( 4 ); int nachreihe = ziffer2int( zug.charAt(5) );
48 System.out.println(zug + ":");
49
50 if ( figur != figurauf( spielfeld, vonspalte, vonreihe )) {
52
53 System.out.println(figurname(figur) + " steht nicht auf " + vonspalte + vonreihe);
54 return;
55 }
56
57 setze( spielfeld, '.' , vonspalte, vonreihe );
59
60 setze( spielfeld, figur, nachspalte, nachreihe );
62
63 return;
64 }
65
66
70 private static char figurauf(String[] spielfeld, char idspalte, int idreihe) {
71
72 String reihe = spielfeld[ idreihe -1 ];
74 char figur = reihe.charAt( buchstabe2pos(idspalte) );
76 return figur;
77 }
78
79
83 private static void setze(String[] spielfeld, char figur, char idspalte, int idreihe) {
84
85 String reihe = spielfeld[ idreihe -1 ];
87 char[] zeichenarray = reihe.toCharArray();
89 zeichenarray [ buchstabe2pos(idspalte) ] = figur;
91 spielfeld[ idreihe -1 ] = String.valueOf(zeichenarray);
93 }
94
95
98 private static int buchstabe2pos(char z) {
99 int pos;
100
101 switch ( z ) {
102
103 case 'a': pos = 0; break;
104 case 'b': pos = 1; break;
105 case 'c': pos = 2; break;
106 case 'd': pos = 3; break;
107 case 'e': pos = 4; break;
108 case 'f': pos = 5; break;
109 case 'g': pos = 6; break;
110 case 'h': pos = 7; break;
111
112 default: pos = -1;
113
114 }
115 return pos;
116
117 }
118
119
122 private static int ziffer2int(char z) {
123 int i;
124
125 switch ( z ) {
126
127 case '1': i = 1; break;
128 case '2': i = 2; break;
129 case '3': i = 3; break;
130 case '4': i = 4; break;
131 case '5': i = 5; break;
132 case '6': i = 6; break;
133 case '7': i = 7; break;
134 case '8': i = 8; break;
135
136 default: i = -1;
137
138 }
139 return i;
140
141 }
142
143
146 private static String figurname(char figur) {
147 String name;
148
149 switch ( figur ) {
150
151 case 'B': name = "Bauer(w)"; break;
152 case 'T': name = "Turm(w)" ; break;
153 case 'S': name = "Springer(w)"; break;
154 case 'L': name = "Läufer(w)"; break;
155 case 'D': name = "Dame(w)"; break;
156 case 'K': name = "König(w)"; break;
157
158 case 'r': name = "Bauer(s)"; break;
159 case 't': name = "Turm(s)" ; break;
160 case 's': name = "Springer(s)"; break;
161 case 'l': name = "Läufer(s)"; break;
162 case 'd': name = "Dame(s)"; break;
163 case 'k': name = "König(s)"; break;
164
165 default: name = "noname";
166
167 }
168 return name ;
169
170 }
171
172
175 private static void ausgabe(String[] spielfeld) {
176 System.out.println();
177
178 for (int i = 8; i > 0; i--)
179 System.out.println(i+" "+spielfeld[i-1]);
180 System.out.println(" abcdefgh");
181
182 System.out.println();
183 }
184
185 }
186