På denna sida finner du grundläggande övningsuppgifter i C. Lösningsförslag finns till alla uppgifterna (se nedan). Det finns givetvis ofta ett flertal rätt sätt att lösa en och samma uppgift. Dessa övningsuppgifter är mer orienterade mot vad ni behöver i just den här kursen jämfört med andra grundläggande övningar ni kan finna på nätet. Förhoppningsvis är de även lite roligare. De syftar bl a på att förbereda er för er sista laboration där ni får implementera ett valfritt spel (eller annan dylik app) på labdatorn MD407. Tanken där är framförallt att ni på egen hand skall kommunicera med periferienheter och kunna utnyttja interrupts.
Duktiga spelprogrammerare är ofta mycket attraktiva inom övriga industrin, medan omvänt är mindre självklart. Det är svårt att föreställa sig applikationer med mer diversifierade, mångfaceterade och allomfattande problemområden än spel. Dagens avancerade spel är inte sällan som små minioperativsystem, med en realtidskärna, parallellism, multitasking, high-performance computing, filhantering, nätverk, säkerhet, ljud, grafik och artificiell intelligens. Det mesta av detta omfattar färdigheter som ni tillskansar er i senare kurser. Ni har typiskt heller ännu inte läst om avancerade datastrukturer och algoritmer.
Grundläggande i realtidsspel är dock att de hanterar en mängd överlappande händelseförlopp och har inputs och outputs. Vad övningarna på den här sidan syftar till (förutom att ge er grundkunskaper i C, att adressera minne och manipulera bitar) är att även lära er bemästra hyfsat avancerade händelseflöden som inte nödvändigtvis följer en rak sekventiell ordning (något som ofta saknas i andra kurser och tas för givet att ni kan hantera). Men vi ska starta mjukt.
Hur som helst finns här andra grundläggande övningar för den som skulle vilja ha:
Om du sitter i en datasal på Chalmers
Oftast fungerar den installerade CodeLite-miljön automatiskt. Får du problem med att GCC eller CrossGCC inte finns som alternativ när du skapar projekt, eller att inget händer när du kompilerar, titta på följande beskrivning om inställningar i CodeLite för sökvägar till GCC samt CrossGCC i datasal.