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ě.
// // 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()