Labb 1: Koda GDScript
Ht1-2
## Syfte
I denna labb ska vi komma i kontakt med alla programmeringsmässiga grunder som ingåt i krusen och är basen för all programmering. for-loop, if-sats, funktioner, parametrar, returvärden, funktionsanrop, printsatser och variabler och Arrayer (listor, grupper av variabler/data).
Labb 1 är mer fokuserad på att räkna på data som är givet. Men vi ska senare i kursen används sådan kodning så labben förbereder er även för arbetet i Uppgiften och i Projektet.
## DEL 1 Skapa en tid-mätare
Skapa en funktion kan räkna ut hur många minuter och sekunder spelet har kört. Funktionen ska hämta data med `Time.get_tick_msec()` som ger antalet millisekunder sedan spelet startat och returnera en text-sträng på formatet "MM:SS", där t.ex. det ska stå 05:04.
Vi ska även skapa en `Label` i mitten av skrämen och koppla användning av funktionen till uppdatering av texten som exempel på en spel-komponent. Labeln kan vi placera i det övre högra hörnet av skärmen.
## DEL 2: Summering
I denna uppgiften ska ni räkna ut summan av alla jämna till i Arrayer, se nedan bild på data ni ska använda. Funktionen heter `sum_even`, tar som parameter en Array och returnera summan av alla jämna heltal som finns i den Arrayen. (Ett exempel på en beräkning med filtrering, vi kommer göra liknande beräkningar för i uppgiften eller projektet för vår optimering). Funktionen ska även kunna hantera att Arrayen kan innehålla Arrayer som i sin tur innehåller heltal. `three`-Arrayen är ett exemple på ett sådant projekt.
Ni ska själva skapa summeringen utan att använda en funktion som gör detta för er. Det är för att lära er grunder i programmering och se alla delar som är viktigt. Godot har vissa funktioner för sådana grunder, men vi ska med en for-loop skapa summan.
## DEL 3: Filterar datat från fil.
1. Ladda ner [följande fil](#) och spara i er projekt i en katalog som heter data.
1. Skriv av följnade kod i ett script för att läsa in och spara kod. För denna labben behövs egenligen bara den ena funktionen, men jag har båda kodraderna med för ni ska ju spara varabler till fil senare.
![](read_save_file.png)
1. Det finns två inbyggda funktioner här i lila. De gör om varabler till text (String) och gör text till varabler. Mycket bra för att lagra t.ex. en Array med data...
[Gör en sträng till en variabel](https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#class-globalscope-method-str-to-var). Används tillsammans med den omvända globala funktionen str_to_var för att göra en variable till en sträng.
Sedan kan vi spara denna text till fil, eller skapa variablerna från en String för att behålla data mellan omgågnar.
Målet med labben är att hitta den Array i listan som har lägsta medelvärde över alla de tider som finns sparade i filerna. Filerna representerar tider som en i ett antal olika hinderbanor. Datat är fejkat men liknar den typ av data ni själva ska spara i Uppgiften och projektet.
## Redovising av labben
För att bli godkänd på labben ska ni visa att ni genomfört stegen och att det fungerar samt förklara koden och visa att ni förstår.
Labben visas upp för assistent och lämnas in på [inlämningssidan](https://www.ida.liu.se/~TDDE04/handin/inlamning.sv.shtml)
Sidansvarig: infomaster
Senast uppdaterad: 2024-04-30