Actuellement, j'utilise le service MENTA et je reçois des conseils de Yamataku Mentor.
Cliquez ici pour en savoir plus sur les mentors et les services Yamataku! (https://menta.work/plan/584)
Parmi eux, cette fois, nous avons fait la tâche de "mettre en œuvre la logique des distributeurs automatiques", nous allons donc le sortir.
De plus, ce problème est une logique créée par les débutants de Swift, et je pense que de nombreux points ne peuvent être atteints. J'apprécierais que vous puissiez veiller avec des yeux chaleureux.
Nous acceptons toujours les conseils.
environnement
-Playground
・ Vous pouvez entrer le yen japonais -Compare le yen japonais entré avec le prix de la boisson, et renvoie le drapeau achetable si le premier dépasse la valeur du second et que la boisson cible est en stock. ・ Les boissons cibles sont "café", "eau" et "monstre" ・ Réduisez le stock de la boisson cible de 1 lorsque vous renvoyez le jugement de disponibilité d'achat de la boisson cible.
・ Retournez le montant de la monnaie lors de l'achat d'une boisson ・ Sorties "en rupture de stock" en cas de rupture de stock -À chaque fois que vous effectuez un achat, le nombre de boissons achetées en stock est affiché. -Ajout d'une fonction pour sortir le yen japonais d'entrée ・ Rendre le montant investi lorsqu'il n'y a pas d'actions ・ Renvoie la boisson même lorsque le même prix que la boisson est mis ・ Lorsque l'achat est terminé, "Merci pour votre achat" est affiché.
VirtualVendingMachine.rb
import UIKit
class VirtualVendingMachine {
//Type de boisson
enum DrinkType {
case coffee
case water
case monster
}
var inputedYen: Int = 0
//prix
var coffeePrice: Int = 120
var waterPrice: Int = 100
var monsterPrice: Int = 210
//Stock
var coffeeStock: Int = 5
var waterStock: Int = 5
var monsterStock: Int = 5
//Acheter une boisson
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
}
//Type de boisson
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)
}
}
//Sortie Yen japonais
func coinOutput(type: DrinkType,inputedYen: Int){
print("\(inputedYen)Yen a été mis en")
}
//Lors de l'achat de café, modifiez et gérez l'inventaire
func coffeeReturnYenStock(type: DrinkType,inputedYen: Int){
//Changement de retour
if coffeeStock <= 0 {
print("Parce qu'il n'y a pas de café en stock\(inputedYen)Je retournerai le yen")
}else if inputedYen >= coffeePrice{
var returnYen1 = inputedYen - coffeePrice
print("Merci pour votre achat")
print("Changement\(returnYen1)C'est un cercle")
}else{
var noenoughcoins = coffeePrice - inputedYen
print("\(noenoughcoins)Pas assez de yens")
}
//Gestion de l'inventaire
if inputedYen >= coffeePrice && coffeeStock > 0 {
coffeeStock -= 1
print("Inventaire actuel du café\(coffeeStock)est")
}else{
return
}
}
//Modifier et gérer l'inventaire lors de l'achat d'eau
func waterReturnYenStock(type: DrinkType,inputedYen: Int){
if waterStock <= 0 {
print("Parce qu'il n'y a pas d'eau en stock\(inputedYen)Je retournerai le yen")
}else if inputedYen >= waterPrice{
var returnYen2 = inputedYen - waterPrice
print("Merci pour votre achat")
print("Changement\(returnYen2)C'est un cercle")
}else{
print("Pas assez d'argent")
}
if inputedYen >= waterPrice && waterStock > 0 {
waterStock -= 1
print("Inventaire actuel de l'eau\(waterStock)est")
}else{
return
}
}
//Gérez la monnaie et l'inventaire lorsque des monstres sont achetés
func monsterReturnYenStock(type: DrinkType,inputedYen: Int){
if monsterStock <= 0 {
print("Parce qu'il n'y a pas de monstre en stock\(inputedYen)Je retournerai le yen")
}else if inputedYen >= monsterPrice {
var returnYen3 = inputedYen - monsterPrice
print("Merci pour votre achat")
print("Changement\(returnYen3)C'est un cercle")
}else{
print("Pas assez d'argent")
}
if inputedYen >= monsterPrice && monsterStock > 0{
monsterStock -= 1
print("Le stock actuel de monstres\(monsterStock)est")
}else{
return
}
}
}
let virtualVendingMachine = VirtualVendingMachine()
let isSuccessToBuy = virtualVendingMachine.buyDrink(type: .water, inputedYen: 150)
print(isSuccessToBuy)
-Il était difficile de nommer la fonction. ・ Je sens que le code est devenu monotone.
Je pense que penser à la logique est très approprié pour le résultat de l'apprentissage de base. Vous pouvez découvrir diverses choses et remarquer ce dans quoi vous n'êtes pas doué, donc si vous souhaitez rompre avec l'apprentissage de base, pourquoi ne pas l'essayer?
Eh bien!
Recommended Posts