current progress LG python to swift

fukurou

the supreme coder
ADMIN
Swift:
//
//  LivinGrimoire.swift
//  LivinGrimoireSwiftV1
//
//  Created by fuki barski on 21/06/2022.
//

import Foundation
class AbsDictionaryDB{
    func save(key:String, value: String){
        // save to DB (override me)
    }
    func load(key:String)->String{
        // override me
        return "null"
    }
}
enum enumFail{
    case fail, requip, dequip, cloudian, ok
}
class Mutatable{
    func action(ear: String, skin: String, eye: String) -> String{
        return ""
    }
    func failure(input: String) -> enumFail{
        // Failure type only mutatable may use enumFail.fail
        return enumFail.ok
    }
    func completed() -> Bool{
        //Has finished ?
        return false
    }
    func clone() -> Mutatable{
        return Mutatable()
    }
    
    func getMutationLimit() -> Int{
        return 0
    }
    
    func myName() -> String{
        // Returns the class name
        return String(describing: type(of: self))
                      }
    
    func mutation() -> Mutatable{
        return Mutatable()
    }
}
class T1:Mutatable{
    var isCompleted:Bool = false
    override func mutation() -> Mutatable {
        print("T1 mutating into T2")
        return T2() // modify to t2
    }
    override func clone() -> Mutatable {
        print("T1 cloning another T1 object")
        return T1()
    }
    override func action(ear: String, skin: String, eye: String) -> String {
        self.isCompleted = true
        return "I am a T1 object"
    }
    override func completed() -> Bool {
        return self.isCompleted
    }
}
class T2:Mutatable{
    var isCompleted:Bool = false
    override func mutation() -> Mutatable {
        print("T2 mutating into T1")
        return T1() // modify to t2
    }
    override func clone() -> Mutatable {
        print("T2 cloning another T2 object")
        return T2()
    }
    override func action(ear: String, skin: String, eye: String) -> String {
        self.isCompleted = true
        return "I am a T2 object"
    }
    override func completed() -> Bool {
        return self.isCompleted
    }
}
/*
 it speaks something x times
 a most basic skill.
 also fun to make the chobit say what you want */
class APsay:Mutatable{
    var at:Int=10
    var param:String="hmm"
    convenience init(repetitions:Int, param:String) {
        self.init()
        if repetitions<at {self.at=repetitions}
        self.param=param
    }
    override func action(ear: String, skin: String, eye: String) -> String {
        var axnStr=""
        if self.at>0{
            if ear.lowercased() != self.param{
                axnStr=self.param
                self.at -= 1
            }
        }
        return axnStr
    }
    override func completed() -> Bool {
        return self.at < 1
    }
    override func clone() -> Mutatable {
        return APsay(repetitions: self.at, param: self.param)
    }
}
 
Top