Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.99 KB | None | 0 0
  1. /*
  2. 1. Создать энум с шахматными фигруами (король, ферзь и т.д.). Каждая фигура должна
  3. иметь цвет белый либо черный (надеюсь намек понят), а так же букву и цифру для
  4. позиции. Создайте пару фигур с расположением на доске, так, чтобы черному королю
  5. был мат :) Поместите эти фигуры в массив фигур
  6. 2. Сделайте так, чтобы энумовские значения имели rawValue типа String. Каждому
  7. типу фигуры установите соответствующее английское название. Создайте функцию,
  8. которая выводит в консоль (текстово, без юникода) название фигуры, цвет и
  9. расположение. Используя эту функцию распечатайте все фигуры в массиве.
  10. */
  11.  
  12.  
  13. enum Color {
  14.     case white
  15.     case black
  16. }
  17.  
  18. enum FigureName: String {
  19.     case king = "King"
  20.     case queen = "Queen"
  21.     case elephant = "Elephant"
  22.     case rook = "Rook"
  23.     case pawn = "Pawn"
  24. }
  25.  
  26. enum DiscribeChessFigure {
  27.     case king(symbol: String, number: Int, name: FigureName, color: Color)
  28.     case queen(symbol: String, number: Int, name: FigureName, color: Color)
  29.     case elephant(symbol: String, number: Int, name: FigureName, color: Color)
  30.     case rook(symbol: String, number: Int, name: FigureName, color: Color)
  31.     case pawn(symbol: String, number: Int, name: FigureName, color: Color)
  32. }
  33.  
  34. let queen = DiscribeChessFigure.queen(symbol: "a", number: 2, name: .queen, color: .white)
  35. let rook = DiscribeChessFigure.rook(symbol: "g", number: 1, name: .rook, color: .black)
  36. let king = DiscribeChessFigure.king(symbol: "d", number: 1, name: .king, color: .white)
  37.  
  38. var chessArray = [queen, rook, king]
  39.  
  40. func printFigureInfo(figure: DiscribeChessFigure) {
  41.     switch figure {
  42.     case let .king(symbol, number, name, color):
  43.         print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
  44.     case let .queen(symbol, number, name, color):
  45.         print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
  46.     case let .elephant(symbol, number, name, color):
  47.         print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
  48.     case let .rook(symbol, number, name, color):
  49.         print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
  50.     case let .pawn(symbol, number, name, color):
  51.         print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
  52.     }
  53. }    
  54.        
  55. func arrayFigureInfo(array: [DiscribeChessFigure]) {
  56.     for value in array {
  57.         printFigureInfo(figure: value)
  58.     }
  59. }
  60.  
  61. arrayFigureInfo(array: chessArray)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement