Проблемы с созданием программы Cat Шредингера в Swift - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь создать некоторый код, который имитирует эксперимент с котом Шредингера с некоторыми изменениями.Я очень новичок в Swift и вообще программирую, поэтому я борюсь с основами.

Я пробовал кое-что, но чувствую, что хожу по кругу.

   struct Cat: Explosive, Bunker {
    let name: String
    var isAlive: Bool?
    var bombExploded: Bool?
    init(name:String, isAlive: Bool?, bombExploded: Bool?){
     self.name = "Jessica"
     self.isAlive = nil
     self.bombExploded = bombExploded
   }

    func detonate () -> Bool {
        let halfTime = Bool.random()
        if halfTime {
      return halfTime == bombExploded
      }
        else {
      return halfTime == bombExploded
      }
    }

    func open() {
      let explosive = bombExploded
      if bombExploded == nil {
      print("Cat ded")
      }else { 
      print("Live cat live")
      }
    }
}


protocol Explosive {
    func detonate () -> Bool
}

protocol Bunker {
     //: - TODO: when initialising cat's `isAlive` should be set to nil, to represent that cat is in a super-position
    var occupent: Cat { get set }
    var explosive: Explosive { get }
        //: - TODO: By the mere action of opening the bunker door, determines the state of the cat's life.
    func open()
}

Я чувствовал, что на правильном пути, пока не начал реализовывать протокол Bunker.Я знаю, что мне не хватает некоторого кода, и, вероятно, есть многочисленные ошибки, однако я не уверен, как исправить то, что я сделал.

...