Wpis z mikrobloga

#naukaswifta
Dzień 25/100 kursu 100 days of SwiftUI

Challenge!!! Zadanie polega na samodzielnym wykonaniu appki od zera. Należy ustawić, aby cpu wybierał Kamień, Papier lub Nożyce, potem aby wylosowało losowo - czy mamy wygrać czy przegrać i w odniesieniu do dwóch powyższych wybrać odpowiedź na dwa wybory cpu. Jeśli odpowiemy dobrze - zdobywamy +1 punkt, remis = 0, przegrana -1. Po 10-ciu pytaniach alert i przycisk do restartu.

Robiłem to kilka godzin, najpierw chciałem zrobić sam jak najwięcej całkowicie z głowy. Udało się do momentu, gdy trzeba było zrobić funkcję odpowiedzialną za wybór i zaliczanie punktów. Stanąłem i nie dałem rady. Pomogłem sobie podobnym rozwiązaniem z githuba. Efekt końcowy jest taki, że po około 4-5 godzinach udało mi się zrobić wszystko do takiego momentu, że wszystko działa, ale nie wygląda jakoś spektakularnie. Design to już tylko kosmetyka, ale nie dam rady dziś tego skończyć. Pobawię się jutro.

#naukaprogramowania #ios #swift
  • 11
@hebato : W choiceTapped widzę, że nie masz ogarniętej obsługi remisu. I w ogóle default powinien być dla lepszej czytelności w nowej linijce.
Z tego co widzę po logice, to w wypadku remisu jest też przegrana, bo won jest na false.
Możesz sobie na górze zrobić

let won: Bool
I później zamiast if i else przykładowo w pierwszym robić

won = currentCoice == 2 ? true : false
I nie wiem czy
@Prism2772: remis jest zakodowany tutaj:

if (number == currentChoice) {
score += 0

wiem, widziałem inne rozwiązania tej appki na githubie robione na enumach i rzeczywiście to wygląda lepiej, ale to jest tak jakby wyprzedzenie materiału, bo poprzednie dwie lekcje(projekty) gdzie robiłem coś podobnego były bardziej robione na tej zasadzie, więc nie chciałem się wychylać
@hebato: to w sumie logiczniej remis by było sprawdzać na samym początku. Wtedy program nie przechodzi bezsensownie przez całą logikę sprawdzenia czy dany gracz wygrał czy przegrał
@Prism2772: tak mi było najłatwiej to zrobić. chyba nie mam jeszcze w sobie takiego myślenia nt. pracy kodu, tzn jak to zrobić żeby było wydajniejsze. w ogóle o tym nie myślę przy pisaniu... :( póki co ważne żeby działało.
dzięki za wskazówki
@hebato: Dlatego też jakiś czas temu Ci pisałem, że warto wrzucić kod, bo wtedy właśnie takie rzeczy można wychwycić i Ci podpowiedzieć, na co fajnie zwrócić uwagę. Jeśli chodzi o formę wrzucania kodu, najbardziej polecam https://pastebin.com
Wtedy łatwiej by było ten kod lekko zmienić, bez przepisywania.
Zwracaj też uwagi na entery, w odpowiednich miejscach. Tak jak wcześniej miałeś default switcha za wysoko, tak teraz brakuje entera w 73 linijce.
Jak wrzucisz