Seriály

Swift akademie pro začátečníky: zakládáme druhý projekt #8

Vítám vás u dalšího dílu naší akademie, ve kterém si vytvoříte další projekt. Doufám, že vás tvorba minulého projektu alespoň trochu bavila. Zase s vámi zopakuji pár věcí a poté se přesuneme se na zadání.

Opakování

V dnešním projektu budete potřebovat jen jednu novou věc, jinak všechny ostatní znáte a umíte.

Nová metoda .random

Tato nová metoda se používá u datového typu Int. S touto metodou můžeme vygenerovat náhodné číslo z námi uvedeného rozmezí čísel:

Int.random(in: 0...3)

Tento kus kódu nám vygeneruje náhodné číslo od 0 do 3, pokud bychom to číslo poté chtěli přiřadit k proměnné, můžeme to udělat následujícím způsobem:

var nahodneCislo = Int.random(in: 0...3)

Proměnná nahodneCislo bude mít hodnotu vygenerovaného náhodného čísla

Ukážeme si ještě jednou použití této metody, kterým vám možná dost napovím, při řešení jednoho problému při tvorbě projektu:

var nahodneCislo = Int.random(in: 1...10)

if nahodneCislo <= 5 {

    print("Je poloviční šance, že jste vyhrál/a")

} else {

    print("Bohužel jste nevyhrál/a")

}

Zadání

Chci po vás, abyste si stejným způsobem jako v minulé epizodě založili nový projekt a naprogramovali vaší první hru, kámen, nůžky, papír. Hra bude velice jednoduchá, zeptáte se uživatele na vstup a po zadání zobrazíte, zda uživatel proti počítači vyhrál nebo prohrál.

Mé řešení

Prosím vás, abyste se nekoukali na řešení projektu, pokud jste se ho ani alespoň chvíli nesnažili vyřešit. Uškodíte tím jen sami sobě.

Chystáte se podívat na řešení tohoto projektu.
//

//  main.swift

//  SwiftProjektCeskyMac2

//

//  Created by Matyáš Himmer on 26/08/2020.

//  Copyright © 2020 Matyáš Himmer. All rights reserved.

//

import Foundation

let moznosti = ["kámen", "nůžky", "papír"]

func restartovat() {

    zacitHru()

}

func zacitHru() {

    print("")

    print("Zahrajeme si kámen, nůžky, papír.")

    print(" ")

    print("Tvůj výběr:")

    

    let volba = readLine()!

    

    if moznosti.contains(volba.lowercased()) {

        let ai = Int.random(in: 0...2)

        

        let aiVolba = moznosti[ai]

        

        print(" ")

        print("Výběr protivníka:")

        print(aiVolba)

        

       rozhodnutiVysledku(ai: aiVolba, hrac: volba)

    

    } else {

        print("Nerozpoznaný vstup")

    }

}

func rozhodnutiVysledku(ai: String, hrac: String) {

    if ai == hrac {

        print(" ")

        print("Remíza!")

        print(" ")

    }

    

    // ai vyhraje

    

    if ai == moznosti[0] && hrac == moznosti[1] || ai == moznosti[1] && hrac == moznosti[2] || ai == moznosti[2] && hrac == moznosti[0] {

        print(" ")

        print("Prohrál jsi")

        print(" ")

        

    } else if hrac == moznosti[0] && ai == moznosti[1] || hrac == moznosti[1] && ai == moznosti[2] || hrac == moznosti[2] && ai == moznosti[0] {

        print(" ")

        print("Vyhrál jsi!!!")

        print(" ")

        

        

    

    }

    

    print("")

    

    print("Přejete si hrát znovu? ano/ne")

    let odpoved = readLine()!

    

    if odpoved.lowercased() == "ano" {

        restartovat()

    } else {

        print("")

    }

    

}

zacitHru()
Štítky

Matyáš Himmer

Fanoušek Applu od roku 2011, rád fotím a programuji. Články píši ve svém volném čase, studuji informační technologie na SSPŠ.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Close