Witam :)
Jestem dość początkujący. Uczę się z książki (już miesiąc-półtora miesiąca): "Programowanie w języku Swift. Big Nerd Ranch Guide" autorów Matthew Mathias, John Gallagher i skończyłem rozdział o strukturach i klasach. Za zadanie miałem poprawić kod, aby liczba ludności nie spadała poniżej 0 i gdy liczba zabitych ludzi będzie większa niż aktualna liczba ludności w mieście to aby wyświetlało, że populacja wynosi 0. W drugim zadaniu natomiast mam dodać wampiry i ich użyć. Niestety jak korzystam z wampirów to liczba ludności zawsze wychodzi 100. Próbowałem wielu rzeczy, ale albo są błędy, których nie dało się niestety rozwiązać albo nie daje to porządanego skutku. Chcę, aby po każdym ataku pokazywało ile ludzi pozostało po ataku wampira (tak jakby zawsze 1 wampir atakuje) a najlepiej, żeby wraz z atakiem coraz większej ilości wampirów i zombie coraz szybciej ubywało ludzi, czyli chcę coś ponad zadaniem zrobić. Niestety pomysłów już nie mam. Próbuję korzystać z dokumentacji, ale na razie słabo mi idzie korzystanie z niej. Ktoś mi pomoże? Nakieruje mnie lub wskaże mi gdzie czegoś brakuje? Może jakiegoś sposobu nie zauważyłem i nadal nie widzę.
import Foundation
class Monster {
var town: Town?
var name: String
init(names: String = "Monster") {
name = names
}
func terrorizeTown() {
if town != nil {
print("\(name) terrorizes the city")
}
else if Town().population == 0 {
print("\(name) ceases to terrorize the city")
}
else {
attackTheZombie.terrorizeTown()
print("\(name) jet not found the city to terrorize.")
}
}
}
import Foundation
struct Town {
var population = 100
var numberOfStopLights = 4
func printPopulation() {
print("Population: \(population), number intersections with light signaling: \(numberOfStopLights)")
}
mutating func changePopulation(amout: Int) {
if population > 0 {
population += amout
}
else if population < amout {
print("Populations isn't in the city")
}
}
}
import Foundation
class Zombie: Monster {
override init (names: String = "Zombie") {
super.init(names: "Zombie")
}
final override func terrorizeTown() {
if Town().population > 0 {
town?.changePopulation(amout: -10)
print(Town().population)
super.terrorizeTown()
}
else if Town().population < 0 {
print("Populations is 0.")
}
}
}
import Foundation
class Vampire: Monster {
var vampires: [String] = []
var newVampires = [
"Marcin",
"Ewa",
"Daniel",
"Paweł",
"Daniel",
"Adam"
]
override init (names: String = "Vampire") {
super.init(names: "Vampire")
}
override func terrorizeTown() {
if Town().population > 0 {
for number in newVampires {
vampires.append(number)
print(vampires)
print(vampires.count)
print(Town().population)
}
}
else if Town().population == 0 {
print("Populations: \(Town().population)")
}
}
}
import Foundation
var myTown = Town()
myTown.printPopulation()
let attackTheZombie = Zombie()
attackTheZombie.town = myTown
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
attackTheZombie.terrorizeTown()
attackTheZombie.town?.printPopulation()
myTown.printPopulation()
let attackTheVampire = Vampire()
attackTheVampire.town = myTown
attackTheVampire.terrorizeTown()
attackTheVampire.town?.printPopulation()
attackTheVampire.terrorizeTown()
attackTheVampire.town?.printPopulation()
attackTheVampire.terrorizeTown()
attackTheVampire.town?.printPopulation()
attackTheVampire.terrorizeTown()
attackTheVampire.town?.printPopulation()