Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum Figures: String {
- case king = "King"
- case queen = "Queen"
- case bishop = "Bishop"
- case knight = "Knight"
- case rook = "Rook"
- case pawns = "Pawns"
- }
- enum Colors: String {
- case black = "Black"
- case white = "White"
- }
- enum Columns: String {
- case a = "A"
- case b
- case c
- case d
- case e
- case f
- case g
- case h
- }
- enum Rows: Int {
- case one = 1
- case two
- case three
- case four
- case five
- case six
- case seven
- case eight
- }
- class Figure {
- let figureType: Figures
- let figureColor: Colors
- let figureColumn: Columns
- let figureRow: Rows
- init(figureType: Figures, figureColor: Colors, figureColumn: Columns, figureRow: Rows) {
- self.figureType = figureType
- self.figureColor = figureColor
- self.figureColumn = figureColumn
- self.figureRow = figureRow
- }
- }
- let blackKing = Figure(figureType: .king, figureColor: .black, figureColumn: .h, figureRow: .eight)
- let whiteKing = Figure(figureType: .king, figureColor: .white, figureColumn: .f, figureRow: .seven)
- let whiteRook = Figure(figureType: .rook, figureColor: .white, figureColumn: .h, figureRow: .six)
- var arrayFigure = [Figure]()
- arrayFigure.append(blackKing)
- arrayFigure.append(whiteKing)
- arrayFigure.append(whiteRook)
- func printArrayFigure(figure: Figure) {
- print("Figure type: \(figure.figureType.rawValue), color: \(figure.figureColor.rawValue), position: \(figure.figureColumn.rawValue)\(figure.figureRow.rawValue)")
- }
- for figure in arrayFigure {
- printArrayFigure(figure: figure)
- }
- func printFiguresOnChessBoard(figureArray: [Figure]) {
- let letterList = ["A", "B", "C", "D", "E", "F", "G", "H"]
- for x in 0..<letterList.count {
- var line = String()
- loop: for y in 0..<letterList.count {
- for figure in figureArray {
- let figureType = figure.figureType
- let figureColor = figure.figureColor
- let figureColumn = figure.figureColumn.rawValue
- let figureRow = figure.figureRow.rawValue
- switch (figureType, figureColumn, figureRow) {
- case (.king, letterList[x], y): figureColor == .black ? line.append(" ♚") : line.append(" ♔")
- continue loop
- case (.knight, letterList[x], y): figureColor == .black ? line.append(" ♞") : line.append(" ♘")
- continue loop
- case (.queen, letterList[x], y): figureColor == .black ? line.append(" ♛") : line.append(" ♕")
- continue loop
- case (.bishop, letterList[x], y): figureColor == .black ? line.append(" ♝") : line.append(" ♗")
- continue loop
- case (.pawns, letterList[x], y): figureColor == .black ? line.append(" ♟") : line.append(" ♙")
- continue loop
- case (.rook, letterList[x], y): figureColor == .black ? line.append(" ♜") : line.append(" ♖")
- continue loop
- default:
- break
- }
- }
- line.append(x % 2 == y % 2 ? "⬜️" : "⬛️")
- }
- print(line)
- }
- }
- printFiguresOnChessBoard(figureArray: arrayFigure)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement