Advertisement
mikolajmki

swift_lab12

Jan 9th, 2023
1,208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 4.64 KB | None | 0 0
  1. //
  2. //  Choinka.swift
  3. //  swieta
  4. //
  5. //  Created by student on 09/01/2023.
  6. //
  7.  
  8. import Foundation
  9.  
  10. class Choinka: Drzewo {
  11.     var liczbaPoziomow: Int;
  12.     var wysokoscPnia: Int;
  13.     var liczbaOzdob: Int;
  14.     var rodzajOzdob: Ozdoba;
  15.    
  16.     init (wysokosc: Int, rodzaj: RodzajDrzewa, rokZasadzenia: Int, liczbaPoziomow: Int, wysokoscPnia: Int, liczbaOzdob: Int, rodzajOzdob: Ozdoba) {
  17.         self.liczbaPoziomow = liczbaPoziomow;
  18.         self.wysokoscPnia = wysokoscPnia;
  19.         self.liczbaOzdob = liczbaOzdob;
  20.         self.rodzajOzdob = rodzajOzdob;
  21.         super.init(wysokosc: wysokosc, rodzaj: rodzaj, rokZasadzenia: rokZasadzenia);
  22.     }
  23.    
  24.     override func wyswietl() {
  25.         print("wysokosc: \(self.wysokosc) rodzaj: \(self.rodzaj) rok zasadzenia: \(self.rokZasadzenia) liczb poziomow: \(self.liczbaPoziomow) wysokosc pnia :\(self.wysokoscPnia) liczba ozdob: \(self.liczbaOzdob) rodzaj ozdob: \(self.rodzajOzdob)");
  26.     }
  27.    
  28.     func rysujChoinke() {
  29.         var liczbaOzdob = self.liczbaOzdob;
  30.         self.liczbaOzdob = 0;
  31.         rysujOzdobionaChoinke()
  32.         self.liczbaOzdob = liczbaOzdob;
  33.     }
  34.     func ozdobyDoKupienia() {
  35.         var layercount = self.liczbaPoziomow
  36.         var levelcount = self.wysokosc / self.liczbaPoziomow
  37.         var length = layercount * levelcount
  38.         var starcount = 1
  39.         var spacecount = length
  40.         for _ in 1...layercount {
  41.             for _ in 1...levelcount {
  42.                 for _ in 1...spacecount{
  43.                 }
  44.                 for i in 1...starcount {
  45.  
  46.                     if (i % 2 == 0) {
  47.                         self.liczbaOzdob += 1;
  48.                     }
  49.                 }
  50.                 starcount += 2
  51.                 spacecount -= 1
  52.             }
  53.             starcount = starcount - 2
  54.             spacecount = spacecount + 1
  55.             if levelcount <= 3 {
  56.                 starcount -= 2
  57.                 spacecount += 1
  58.             } else {
  59.                 starcount -= 4
  60.                 spacecount += 2
  61.             }
  62.         }
  63.         print("Nalezy kupic \(self.liczbaOzdob) ozdob.")
  64.     }
  65.     func rysujOzdobionaChoinke() {
  66.  
  67.         var liczbaozdob = self.liczbaOzdob;
  68.         var layercount = self.liczbaPoziomow
  69.         var levelcount = self.wysokosc / self.liczbaPoziomow
  70.         var length = layercount * levelcount
  71.         var starcount = 1
  72.         var spacecount = length
  73.         for _ in 1...layercount {
  74.             for _ in 1...levelcount {
  75.                 for _ in 1...spacecount{
  76.                     print(" ",terminator: "")
  77.                 }
  78.                 for i in 1...starcount {
  79.  
  80.                     if (i % 2 == 0 && liczbaozdob > 0 ) {
  81.                         print("O", terminator: "");
  82.                         liczbaozdob -= 1;
  83.                     } else {
  84.                         print("*",terminator: "")
  85.                     }
  86.                 }
  87.                 print()
  88.                 starcount += 2
  89.                 spacecount -= 1
  90.             }
  91.             starcount = starcount - 2
  92.             spacecount = spacecount + 1
  93.             if levelcount <= 3 {
  94.                 starcount -= 2
  95.                 spacecount += 1
  96.             } else {
  97.                 starcount -= 4
  98.                 spacecount += 2
  99.             }
  100.         }
  101.         spacecount = length;
  102.         for _ in 1...3 { //3 to wysokość pnia
  103.             for _ in 1...spacecount-1 {
  104.                 print(" ",terminator: "")
  105.             }
  106.             for _ in 1...3 {
  107.                 print("#",terminator: "")
  108.             }
  109.             print()
  110.         }
  111.  
  112.        
  113.     }
  114. }
  115.  
  116.  
  117. //
  118. //  Drzewo.swift
  119. //  swieta
  120. //
  121. //  Created by student on 09/01/2023.
  122. //
  123.  
  124. import Foundation
  125.  
  126. class Drzewo {
  127.     var wysokosc: Int;
  128.     var rodzaj: RodzajDrzewa;
  129.     var rokZasadzenia: Int;
  130.    
  131.     init(wysokosc: Int, rodzaj: RodzajDrzewa, rokZasadzenia: Int) {
  132.         self.wysokosc = wysokosc
  133.         self.rodzaj = rodzaj
  134.         self.rokZasadzenia = rokZasadzenia
  135.     }
  136.    
  137.     func wyswietl() {
  138.         print("wysokosc: \(self.wysokosc) rodzaj: \(self.rodzaj) rok zasadzenia: \(self.rokZasadzenia)");
  139.     }
  140. }
  141.  
  142.  
  143. //
  144. //  main.swift
  145. //  swieta
  146. //
  147. //  Created by student on 09/01/2023.
  148. //
  149.  
  150. import Foundation
  151.  
  152. enum Ozdoba: CaseIterable {
  153.     case bombka, pierniczek, cukierek, zabawka
  154. }
  155.  
  156. enum RodzajDrzewa: CaseIterable {
  157.     case lisciaste, iglaste
  158. }
  159.  
  160.  
  161. var choinka = Choinka(wysokosc: 15, rodzaj: RodzajDrzewa.iglaste, rokZasadzenia: 2001, liczbaPoziomow: 5, wysokoscPnia: 2, liczbaOzdob: 6, rodzajOzdob: Ozdoba.bombka);
  162.  
  163. choinka.wyswietl();
  164. choinka.rysujOzdobionaChoinke();
  165. choinka.ozdobyDoKupienia();
  166.  
  167.  
  168. print("Hello, World!")
  169.  
  170.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement