[SWIFT] Schnelle Anfänger haben versucht, die Automatenlogik zu implementieren!

Überblick

Derzeit nutze ich den MENTA-Service und erhalte Anleitungen von Yamataku Mentor.

Klicken Sie hier, um mehr über Yamataku Mentoren und Dienstleistungen zu erfahren! (https://menta.work/plan/584)

Unter ihnen haben wir diesmal die Aufgabe "Implementierung der Automatenlogik" übernommen, also werden wir sie ausgeben.

Darüber hinaus ist dieses Problem eine Logik, die von Swift-Anfängern erstellt wurde, und ich denke, es gibt viele Punkte, die nicht erreicht werden können. Ich würde es begrüßen, wenn Sie mit warmen Augen wachen könnten.

Wir akzeptieren immer Ratschläge.

Umgebung

-Playground

Bedarf

Beispiel für Implementierungsanforderungen

・ Sie können japanischen Yen eingeben -Vergleicht den eingegebenen japanischen Yen mit dem Preis des Getränks und gibt die käufliche Flagge zurück, wenn der erstere den Wert des letzteren überschreitet und das Zielgetränk auf Lager ist. ・ Zielgetränke sind "Kaffee", "Wasser" und "Monster" ・ Reduzieren Sie den Vorrat des Zielgetränks um 1, wenn Sie die Kaufverfügbarkeitsbeurteilung des Zielgetränks zurückgeben.

Die Anforderungen für die Überweisung wurden dieses Mal implementiert

・ Geben Sie den Änderungsbetrag beim Kauf eines Getränks zurück ・ Ausgabe "nicht vorrätig", wenn nicht vorrätig

Beispielimplementierung

VirtualVendingMachine.rb


import UIKit

class VirtualVendingMachine {
   
    //Getränketyp
    enum DrinkType {
        case coffee
        case water
        case monster
    }
    
    
    var inputedYen: Int = 0
    
    //Preis
    var coffeePrice: Int = 120
    var waterPrice: Int = 100
    var monsterPrice: Int = 210
    
    //Lager
    var coffeeStock: Int = 5
    var waterStock: Int = 5
    var monsterStock: Int = 5
    
    
    //Getränk kaufen
    func buyDrink(type: DrinkType, inputedYen: Int) -> Bool {
       
       
        var isBuyable = false
        
        coinOutput(type: type, inputedYen: inputedYen)
        
        switch type {
    
        case .coffee:
            isBuyable = coffeePrice <= inputedYen && 0 < coffeeStock
        case .water:
            isBuyable = waterPrice <= inputedYen && 0 < waterStock
        case .monster:
            isBuyable = monsterPrice <= inputedYen && 0 < monsterStock
        
        }
        
        returnDrinkTypeSwich(type: type, inputedYen:inputedYen)
        
        return isBuyable
    
    }
    


    //Getränketyp
    func returnDrinkTypeSwich(type: DrinkType, inputedYen:Int) {
            
        switch type {
      
        case .coffee:
            
            coffeeReturnYenStock(type:type, inputedYen: inputedYen)
            
        case .water:
           
            waterReturnYenStock(type:type, inputedYen: inputedYen)
            
        case .monster:
          
            waterReturnYenStock(type:type, inputedYen: inputedYen)
            
        }
    
    
    }

    //Japanischer Yen ausgeben
    func coinOutput(type: DrinkType,inputedYen: Int){
        print("\(inputedYen)Yen wurde eingesetzt")
   
    }
    
 
//Wenn Kaffee gekauft wird, ändern und verwalten Sie das Inventar
    func coffeeReturnYenStock(type: DrinkType,inputedYen: Int){
      
        //Wechselgeld zurückgeben
        if coffeeStock <= 0 {
             
            print("Weil kein Kaffee auf Lager ist\(inputedYen)Ich werde den Yen zurückgeben")
            
        }else if inputedYen >= coffeePrice{
           
            var returnYen1   =  inputedYen - coffeePrice
            
          
            print("Danke für Ihren Einkauf")
            print("Veränderung\(returnYen1)Es ist ein Kreis")
            
            
        }else{
          
            var noenoughcoins = coffeePrice - inputedYen
            print("\(noenoughcoins)Nicht genug Yen")
        
        }
        
        
        //Bestandsverwaltung
       if inputedYen >= coffeePrice && coffeeStock > 0 {
             
           coffeeStock -= 1
             print("Aktueller Kaffeeinventar\(coffeeStock)ist")
     
      
    }else{
          
            return
          
         }
        
    }
    
//Ändern und verwalten Sie das Inventar, wenn Wasser gekauft wird
    func waterReturnYenStock(type: DrinkType,inputedYen: Int){
       
        if waterStock <= 0 {
            
            print("Weil kein Wasser auf Lager ist\(inputedYen)Ich werde den Yen zurückgeben")
            
            
        }else if inputedYen >= waterPrice{
         
            var returnYen2   =  inputedYen - waterPrice
            print("Danke für Ihren Einkauf")
            print("Veränderung\(returnYen2)Es ist ein Kreis")
            
        }else{
            
            print("Nicht genug Geld")
        
        }
        
       
        if inputedYen >=  waterPrice && waterStock > 0 {
           
            waterStock -= 1
            print("Aktueller Wasserbestand\(waterStock)ist")
        
        }else{
       
            return

       }
           
        
    }
    
 //Verwalte Veränderungen und Inventar, wenn Monster gekauft werden
    func monsterReturnYenStock(type: DrinkType,inputedYen: Int){
        
      
        if monsterStock <= 0 {
            
            print("Weil kein Monster auf Lager ist\(inputedYen)Ich werde den Yen zurückgeben")
            
        }else if inputedYen >= monsterPrice {
         
            var returnYen3   =  inputedYen - monsterPrice
           
            print("Danke für Ihren Einkauf")
            print("Veränderung\(returnYen3)Es ist ein Kreis")
            
        }else{
            print("Nicht genug Geld")
         
        }
     
        if inputedYen >=  monsterPrice && monsterStock > 0{
               
                monsterStock -= 1
           print("Der aktuelle Bestand an Monstern\(monsterStock)ist")
            
            }else{
            
                 return
        
    }
        
    }
    
}
let virtualVendingMachine = VirtualVendingMachine()
let isSuccessToBuy = virtualVendingMachine.buyDrink(type: .water, inputedYen:  150)
print(isSuccessToBuy)

Reflexionen

-Es war schwierig, die Funktion zu benennen. ・ Ich habe das Gefühl, dass der Code eintönig geworden ist.

Zusammenfassung

Ich denke, dass das Nachdenken über Logik sehr gut für die Ausgabe des grundlegenden Lernens geeignet ist. Sie können verschiedene Dinge entdecken und feststellen, was Sie nicht können. Wenn Sie also vom Grundlernen abbrechen möchten, probieren Sie es einfach aus.

Na dann!

Recommended Posts

Schnelle Anfänger haben versucht, die Automatenlogik zu implementieren!
Schnelle Anfänger versuchten, Mikrowellenlogik zu implementieren!
Ich habe versucht, das Iterator-Muster zu implementieren
[Swift5] So implementieren Sie Animationen mit "lottie-ios"
[Für Anfänger] So implementieren Sie die Löschfunktion
Rails-Anfänger haben versucht, mit RSpec zu beginnen
Ich habe versucht, einen Server mit Netty zu implementieren
[Swift] Ich habe versucht, mit UICollectionView eine Instagram-ähnliche Benutzeroberfläche mit nur Code ohne Storyboard zu implementieren
So implementieren Sie UICollectionView mit Code nur in Swift
Ich habe versucht, TCP / IP + BIO mit JAVA zu implementieren
Ich habe versucht, die Firebase-Push-Benachrichtigung in Java zu implementieren
[Für Anfänger] Lassen Sie uns wie Swift beschichten!
Ich habe versucht, Sterling Sort mit Java Collector zu implementieren
[Java] Ich habe versucht, die Yahoo API-Produktsuche zu implementieren
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
[Für Swift-Anfänger] Ich habe versucht, den chaotischen Layoutzyklus von ViewController und View zusammenzufassen