Advertisement
QwertyAvatar

Swift 11

Jan 9th, 2023
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 5.20 KB | Software | 0 0
  1. //
  2. //  main.swift
  3. //  Zad_11_5
  4. //
  5.  
  6. import Foundation
  7.  
  8. enum Ozdoba{
  9.     case bombka
  10.     case cukierek
  11.     case pierniczek
  12.     case zabawka
  13. }
  14.  
  15. enum RodzajDrzewa{
  16.     case iglaste
  17.     case lisciaste
  18. }
  19.  
  20. let drzewko = Choinka(liczbapoziomow: 3, wysokoscpnia: 4, liczbaozdob: 5, rodzajozdoby: .bombka, wysokosc: 8, rodzajdrzewa: .iglaste, rokzasadzenia: 2023)
  21.  
  22. drzewko.wyswietl()
  23. print("\n")
  24. drzewko.rysujChoinke(layercount: drzewko.liczbapoziomow, levelcount: drzewko.wysokosc)
  25. print("\n")
  26. let zmienna = drzewko.rysujOzdobionaChoinke(layercount: drzewko.liczbapoziomow, levelcount: drzewko.wysokosc, liczbaozdob1: drzewko.liczbaozdob)
  27. print("\n")
  28. let zmienna2 = drzewko.ozdobyDoKupienia(liczbaOzdob2: zmienna)
  29. print("Brakujacych ozdob: \(zmienna2)")
  30.  
  31. ////////////////////////////////////////////////////////
  32.  
  33. //
  34. //  Drzewo.swift
  35. //  Lab_11_5
  36. //
  37.  
  38. import Foundation
  39.  
  40. class Drzewo{
  41.     var wysokosc: Int = 100
  42.     var rodzajdrzewa: RodzajDrzewa
  43.     var rokzasadzenia: Int = 2000
  44.    
  45.     init(wysokosc: Int, rodzajdrzewa: RodzajDrzewa, rokzasadzenia: Int) {
  46.         self.wysokosc = wysokosc
  47.         self.rokzasadzenia = rokzasadzenia
  48.         self.rodzajdrzewa = rodzajdrzewa
  49.     }
  50.    
  51.     func wyswietl(){
  52.         print("Drzewo: \(rodzajdrzewa) o wysokosci: \(wysokosc) i roku zasadzenia: \(rokzasadzenia)")
  53.     }
  54. }
  55.  
  56. ////////////////////////////////////////////////////////
  57.  
  58. //
  59. //  Choinka.swift
  60. //  Lab_11_5
  61. //
  62.  
  63. import Foundation
  64.  
  65. class Choinka : Drzewo
  66. {
  67.     var liczbapoziomow: Int = 3
  68.     var wysokoscpnia: Int = 20
  69.     var liczbaozdob: Int = 1
  70.     var rodzajozdoby: Ozdoba
  71.  
  72.     init(liczbapoziomow: Int, wysokoscpnia: Int, liczbaozdob: Int, rodzajozdoby: Ozdoba, wysokosc: Int, rodzajdrzewa: RodzajDrzewa, rokzasadzenia: Int){
  73.         self.liczbapoziomow = liczbapoziomow
  74.         self.wysokoscpnia = wysokoscpnia
  75.         self.liczbaozdob = liczbaozdob
  76.         self.rodzajozdoby = rodzajozdoby
  77.         super.init(wysokosc: wysokosc, rodzajdrzewa: rodzajdrzewa, rokzasadzenia: rokzasadzenia)
  78.     }
  79.    
  80.     func umiesc() -> [Int]{
  81.         var tab1: [Int] = []
  82.         for i in 0..<liczbapoziomow{
  83.             tab1[i] = i+1
  84.         }
  85.         return tab1
  86.     }
  87.    
  88.     override func wyswietl(){
  89.         print("Drzewo: \(rodzajdrzewa) o wysokosci: \(wysokosc) i roku zasadzenia: \(rokzasadzenia), choinka o liczbie poziomow: \(liczbapoziomow), wysokosci pnia: \(wysokoscpnia), liczbie ozdob: \(liczbaozdob) rodzaju: \(rodzajozdoby)")
  90.     }
  91.    
  92.     func rysujChoinke(layercount:Int, levelcount:Int) {
  93.         let length = layercount * levelcount
  94.         var starcount = 1
  95.         var spacecount = length
  96.         for _ in 1...layercount {
  97.             for _ in 1...levelcount {
  98.                 for _ in 1...spacecount{
  99.                     print(" ",terminator: "")
  100.                 }
  101.                 for _ in 1...starcount {
  102.                     print("*",terminator: "")
  103.                 }
  104.                 print()
  105.                 starcount += 2
  106.                 spacecount -= 1
  107.             }
  108.             starcount = starcount - 2
  109.             spacecount = spacecount + 1
  110.             if levelcount <= 3 {
  111.                 starcount -= 2
  112.                 spacecount += 1
  113.             } else {
  114.                 starcount -= 4
  115.                 spacecount += 2
  116.             }
  117.         }
  118.         spacecount = length;
  119.         for _ in 1...wysokoscpnia {
  120.             for _ in 1...spacecount-1 {
  121.                 print(" ",terminator: "")
  122.             }
  123.             for _ in 1...3 {
  124.                 print("#",terminator: "")
  125.             }
  126.             print()
  127.             }
  128.         }
  129.    
  130.     func rysujOzdobionaChoinke(layercount:Int, levelcount:Int, liczbaozdob1: Int) -> Int{
  131.     let length = layercount * levelcount
  132.     var starcount = 1
  133.     var spacecount = length
  134.     var ilosc = liczbaozdob1
  135.     var iloscwszystkich: Int = 0
  136.     for _ in 1...layercount {
  137.         for _ in 1...levelcount {
  138.             for _ in 1...spacecount{
  139.                 print(" ",terminator: "")
  140.             }
  141.             for x in 1...starcount {
  142.                 if(x%2 == 0){
  143.                     if(ilosc>0){
  144.                         print("o",terminator: "")
  145.                         ilosc -= 1
  146.                     }
  147.                     else{
  148.                         print("*",terminator: "")
  149.                     }
  150.                     iloscwszystkich += 1
  151.                 }else{
  152.                     print("*",terminator: "")
  153.                 }
  154.             }
  155.             print()
  156.             starcount += 2
  157.             spacecount -= 1
  158.         }
  159.         starcount = starcount - 2
  160.         spacecount = spacecount + 1
  161.         if levelcount <= 3 {
  162.             starcount -= 2
  163.             spacecount += 1
  164.         } else {
  165.             starcount -= 4
  166.             spacecount += 2
  167.         }
  168.     }
  169.     spacecount = length;
  170.     for _ in 1...wysokoscpnia {
  171.         for _ in 1...spacecount-1 {
  172.             print(" ",terminator: "")
  173.         }
  174.         for _ in 1...3 {
  175.             print("#",terminator: "")
  176.         }
  177.         print()
  178.     }
  179.     return iloscwszystkich
  180.     }
  181.    
  182.     func ozdobyDoKupienia(liczbaOzdob2: Int) -> Int{
  183.         let iloscbrak = liczbaOzdob2 - liczbaozdob
  184.         return iloscbrak
  185.     }
  186. }
  187.  
Tags: swift
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement