import java.util.*;
import java.io.*;
import java.lang.*;
class Figure
{
protected Figure
(String color
) { this.color = color;
}
return this.color;
}
}
class Pawn extends Figure
{
super(color);
}
return color.charAt(0) + "P";
}
}
class Queen extends Figure
{
super(color);
}
return color.charAt(0) + "Q";
}
}
class None extends Figure
{
public None() {
super("None");
}
return " ";
}
}
class BoardRow
{
List<Figure> row = new ArrayList<>();
public BoardRow() {
for (int i = 0; i < 10; i++) {
row.add(new None());
}
}
public boolean setFigure(int n, Figure figure) {
if (n < row.size()) {
row.set(n, figure);
return true;
} else {
return false;
}
}
public String checkFigure
(int n
) { return "Figure at " + n + " position is " + row.get(n);
}
public Figure getFigure(int n) {
return row.get(n);
}
for(int n = 0; n < row.size(); n++) {
s += "|" + row.get(n);
}
s = s + "|";
return s;
}
}
class Board
{
BoardRow r = new BoardRow();
List<BoardRow> board = new ArrayList<>();
public Board() {
for (int i = 0; i < 10; i++) {
board.add(new BoardRow());
}
}
public boolean setFigure(Figure f, int x, int y) {
if ((x < board.size()) && (y < board.size())) {
board.get(x).setFigure(y, f);
return true;
} else {
return false;
}
}
public String getFigure
(int x,
int y
) { return "Figure at X" + x + " Y" + y + ": " + board.get(x).row.get(y);
}
return "Maximum X value is: " + board.size();
}
return "Maximum Y value is: " + r.row.size();
}
public void showBoard() {
System.
out.
println(" 1 2 3 4 5 6 7 8 9 10"); for(int n = 0; n < board.size(); n++) {
System.
out.
println(board.
get(n
)); }
}
}
class App
{
public static void main
(String[] args
) { BoardRow boardRow = new BoardRow();
Board b = new Board();
b.setFigure(new Pawn("white"), 0, 0);
b.setFigure(new Queen("black"), 9, 9);
b.setFigure(new Queen("white"), 0, 5);
b.showBoard();
System.
out.
println(b.
getFigure(0,
0)); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwppbXBvcnQgamF2YS5sYW5nLio7CgpjbGFzcyBGaWd1cmUKewoJU3RyaW5nIGNvbG9yOwoJCglwcm90ZWN0ZWQgRmlndXJlKFN0cmluZyBjb2xvcikgewoJCXRoaXMuY29sb3IgPSBjb2xvcjsKCX0KCXB1YmxpYyBTdHJpbmcgZ2V0Q29sb3IoKSB7CgkJcmV0dXJuIHRoaXMuY29sb3I7Cgl9Cn0KY2xhc3MgUGF3biBleHRlbmRzIEZpZ3VyZQp7CglwdWJsaWMgUGF3bihTdHJpbmcgY29sb3IpIHsKCQlzdXBlcihjb2xvcik7Cgl9CglwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewoJCXJldHVybiBjb2xvci5jaGFyQXQoMCkgKyAiUCI7Cgl9Cn0KY2xhc3MgUXVlZW4gZXh0ZW5kcyBGaWd1cmUKewoJcHVibGljIFF1ZWVuKFN0cmluZyBjb2xvcikgewoJCXN1cGVyKGNvbG9yKTsKCX0KCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CgkJcmV0dXJuIGNvbG9yLmNoYXJBdCgwKSArICJRIjsKCX0KfQpjbGFzcyBOb25lIGV4dGVuZHMgRmlndXJlCnsKCXB1YmxpYyBOb25lKCkgewoJCXN1cGVyKCJOb25lIik7Cgl9CglwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewoJCXJldHVybiAiICAiOwoJfQp9CmNsYXNzIEJvYXJkUm93CnsKCUxpc3Q8RmlndXJlPiByb3cgPSBuZXcgQXJyYXlMaXN0PD4oKTsKCQoJcHVibGljIEJvYXJkUm93KCkgewoJCWZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykgewoJCQlyb3cuYWRkKG5ldyBOb25lKCkpOwoJCX0KCX0KCXB1YmxpYyBib29sZWFuIHNldEZpZ3VyZShpbnQgbiwgRmlndXJlIGZpZ3VyZSkgewoJCWlmIChuIDwgcm93LnNpemUoKSkgewoJCQlyb3cuc2V0KG4sIGZpZ3VyZSk7CgkJCXJldHVybiB0cnVlOwoJCX0gZWxzZSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CglwdWJsaWMgU3RyaW5nIGNoZWNrRmlndXJlKGludCBuKSB7CgkJcmV0dXJuICJGaWd1cmUgYXQgIiArIG4gKyAiIHBvc2l0aW9uIGlzICIgKyByb3cuZ2V0KG4pOwoJfQoJcHVibGljIEZpZ3VyZSBnZXRGaWd1cmUoaW50IG4pIHsKCQlyZXR1cm4gcm93LmdldChuKTsKCX0KCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CgkJU3RyaW5nIHMgPSAiIjsKCQlmb3IoaW50IG4gPSAwOyBuIDwgcm93LnNpemUoKTsgbisrKSB7CgkJCXMgKz0gInwiICsgcm93LmdldChuKTsKCQl9CgkJcyA9IHMgKyAifCI7CgkJcmV0dXJuIHM7Cgl9Cn0KY2xhc3MgQm9hcmQKewoJQm9hcmRSb3cgciA9IG5ldyBCb2FyZFJvdygpOwoJTGlzdDxCb2FyZFJvdz4gYm9hcmQgPSBuZXcgQXJyYXlMaXN0PD4oKTsKCXB1YmxpYyBCb2FyZCgpIHsKCQlmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKCQkJYm9hcmQuYWRkKG5ldyBCb2FyZFJvdygpKTsKCQl9Cgl9CglwdWJsaWMgYm9vbGVhbiBzZXRGaWd1cmUoRmlndXJlIGYsIGludCB4LCBpbnQgeSkgewoJCWlmICgoeCA8IGJvYXJkLnNpemUoKSkgJiYgKHkgPCBib2FyZC5zaXplKCkpKSB7CgkJCWJvYXJkLmdldCh4KS5zZXRGaWd1cmUoeSwgZik7CgkJCXJldHVybiB0cnVlOwoJCX0gZWxzZSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CglwdWJsaWMgU3RyaW5nIGdldEZpZ3VyZShpbnQgeCwgaW50IHkpIHsKCQlyZXR1cm4gIkZpZ3VyZSBhdCBYIiArIHggKyAiIFkiICsgeSArICI6ICIgKyBib2FyZC5nZXQoeCkucm93LmdldCh5KTsKCX0KCXB1YmxpYyBTdHJpbmcgbWF4WCgpIHsKCQlyZXR1cm4gIk1heGltdW0gWCB2YWx1ZSBpczogIiArIGJvYXJkLnNpemUoKTsKCX0KCXB1YmxpYyBTdHJpbmcgbWF4WSgpIHsKCQlyZXR1cm4gIk1heGltdW0gWSB2YWx1ZSBpczogIiArIHIucm93LnNpemUoKTsKCX0KCXB1YmxpYyB2b2lkIHNob3dCb2FyZCgpIHsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAxICAgIDIgICAgMyAgICA0ICAgIDUgICAgNiAgICA3ICAgIDggICAgOSAgICAxMCIpOwoJCWZvcihpbnQgbiA9IDA7IG4gPCBib2FyZC5zaXplKCk7IG4rKykgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oYm9hcmQuZ2V0KG4pKTsKCQl9Cgl9Cn0KY2xhc3MgQXBwCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlCb2FyZFJvdyBib2FyZFJvdyA9IG5ldyBCb2FyZFJvdygpOwoJCUJvYXJkIGIgPSBuZXcgQm9hcmQoKTsKCQliLnNldEZpZ3VyZShuZXcgUGF3bigid2hpdGUiKSwgMCwgMCk7CgkJYi5zZXRGaWd1cmUobmV3IFF1ZWVuKCJibGFjayIpLCA5LCA5KTsKCQliLnNldEZpZ3VyZShuZXcgUXVlZW4oIndoaXRlIiksIDAsIDUpOwoJCWIuc2hvd0JvYXJkKCk7CgkJU3lzdGVtLm91dC5wcmludGxuKGIuZ2V0RmlndXJlKDAsIDApKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oYi5tYXhYKCkpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihiLm1heFkoKSk7Cgl9Cn0=