Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1. Создать энум с шахматными фигруами (король, ферзь и т.д.). Каждая фигура должна
- иметь цвет белый либо черный (надеюсь намек понят), а так же букву и цифру для
- позиции. Создайте пару фигур с расположением на доске, так, чтобы черному королю
- был мат :) Поместите эти фигуры в массив фигур
- 2. Сделайте так, чтобы энумовские значения имели rawValue типа String. Каждому
- типу фигуры установите соответствующее английское название. Создайте функцию,
- которая выводит в консоль (текстово, без юникода) название фигуры, цвет и
- расположение. Используя эту функцию распечатайте все фигуры в массиве.
- */
- enum Color {
- case white
- case black
- }
- enum FigureName: String {
- case king = "King"
- case queen = "Queen"
- case elephant = "Elephant"
- case rook = "Rook"
- case pawn = "Pawn"
- }
- enum DiscribeChessFigure {
- case king(symbol: String, number: Int, name: FigureName, color: Color)
- case queen(symbol: String, number: Int, name: FigureName, color: Color)
- case elephant(symbol: String, number: Int, name: FigureName, color: Color)
- case rook(symbol: String, number: Int, name: FigureName, color: Color)
- case pawn(symbol: String, number: Int, name: FigureName, color: Color)
- }
- let queen = DiscribeChessFigure.queen(symbol: "a", number: 2, name: .queen, color: .white)
- let rook = DiscribeChessFigure.rook(symbol: "g", number: 1, name: .rook, color: .black)
- let king = DiscribeChessFigure.king(symbol: "d", number: 1, name: .king, color: .white)
- var chessArray = [queen, rook, king]
- func printFigureInfo(figure: DiscribeChessFigure) {
- switch figure {
- case let .king(symbol, number, name, color):
- print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
- case let .queen(symbol, number, name, color):
- print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
- case let .elephant(symbol, number, name, color):
- print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
- case let .rook(symbol, number, name, color):
- print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
- case let .pawn(symbol, number, name, color):
- print("Figures's name = \(name.rawValue), her position: \(symbol)\(number). Color is \(color)")
- }
- }
- func arrayFigureInfo(array: [DiscribeChessFigure]) {
- for value in array {
- printFigureInfo(figure: value)
- }
- }
- arrayFigureInfo(array: chessArray)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement