Advertisement
victor1504

Untitled

Feb 22nd, 2021
534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 3.32 KB | None | 0 0
  1. enum Figures: String {
  2.     case king = "King"
  3.     case queen = "Queen"
  4.     case bishop = "Bishop"
  5.     case knight = "Knight"
  6.     case rook = "Rook"
  7.     case pawns = "Pawns"
  8. }
  9.  
  10. enum Colors: String {
  11.     case black = "Black"
  12.     case white = "White"
  13. }
  14.  
  15. enum Columns: String {
  16.     case a = "A"
  17.     case b
  18.     case c
  19.     case d
  20.     case e
  21.     case f
  22.     case g
  23.     case h
  24. }
  25.  
  26. enum Rows: Int {
  27.     case one = 1
  28.     case two
  29.     case three
  30.     case four
  31.     case five
  32.     case six
  33.     case seven
  34.     case eight
  35. }
  36.  
  37. class Figure {
  38.     let figureType: Figures
  39.     let figureColor: Colors
  40.     let figureColumn: Columns
  41.     let figureRow: Rows
  42.    
  43.     init(figureType: Figures, figureColor: Colors, figureColumn: Columns, figureRow: Rows) {
  44.         self.figureType = figureType
  45.         self.figureColor = figureColor
  46.         self.figureColumn = figureColumn
  47.         self.figureRow = figureRow
  48.     }
  49. }
  50.  
  51. let blackKing = Figure(figureType: .king, figureColor: .black, figureColumn: .h, figureRow: .eight)
  52. let whiteKing = Figure(figureType: .king, figureColor: .white, figureColumn: .f, figureRow: .seven)
  53. let whiteRook = Figure(figureType: .rook, figureColor: .white, figureColumn: .h, figureRow: .six)
  54.  
  55. var arrayFigure = [Figure]()
  56. arrayFigure.append(blackKing)
  57. arrayFigure.append(whiteKing)
  58. arrayFigure.append(whiteRook)
  59.  
  60. func printArrayFigure(figure: Figure) {
  61.     print("Figure type: \(figure.figureType.rawValue), color: \(figure.figureColor.rawValue), position: \(figure.figureColumn.rawValue)\(figure.figureRow.rawValue)")
  62. }
  63.  
  64. for figure in arrayFigure {
  65.     printArrayFigure(figure: figure)
  66. }
  67.  
  68. func printFiguresOnChessBoard(figureArray: [Figure]) {
  69.    
  70.     let letterList = ["A", "B", "C", "D", "E", "F", "G", "H"]
  71.    
  72.     for x in 0..<letterList.count {
  73.         var line = String()
  74.         loop: for y in 0..<letterList.count {
  75.             for figure in figureArray {
  76.                 let figureType = figure.figureType
  77.                 let figureColor = figure.figureColor
  78.                 let figureColumn = figure.figureColumn.rawValue
  79.                 let figureRow = figure.figureRow.rawValue
  80.                
  81.                 switch (figureType, figureColumn, figureRow) {
  82.                 case (.king, letterList[x], y): figureColor == .black ? line.append(" ♚") : line.append(" ♔")
  83.                     continue loop
  84.                 case (.knight, letterList[x], y): figureColor == .black ? line.append(" ♞") : line.append(" ♘")
  85.                     continue loop
  86.                 case (.queen, letterList[x], y): figureColor == .black ? line.append(" ♛") : line.append(" ♕")
  87.                     continue loop
  88.                 case (.bishop, letterList[x], y): figureColor == .black ? line.append(" ♝") : line.append(" ♗")
  89.                     continue loop
  90.                 case (.pawns, letterList[x], y): figureColor == .black ? line.append(" ♟") : line.append(" ♙")
  91.                     continue loop
  92.                 case (.rook, letterList[x], y): figureColor == .black ? line.append(" ♜") : line.append(" ♖")
  93.                     continue loop
  94.                 default:
  95.                     break
  96.                 }
  97.             }
  98.             line.append(x % 2 == y % 2 ? "⬜️" : "⬛️")
  99.         }
  100.         print(line)
  101.     }
  102. }
  103.  
  104. printFiguresOnChessBoard(figureArray: arrayFigure)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement