Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lab3 – Quiz game!

Du har fått i uppgift att skapa ett grafiskt quiz-spel.
Man ska kunna spela, editera befintligt eller skapa nytt quiz.
Att editera, spela och skapa skall vara separata vyer (UserControls).
Ett quiz skall innehålla flera flervalsfrågor med 3 svarsalternativ till varje fråga. Och sparas som XML, JSON eller CSV. Quiz-filerna skall sparas i appdata/local/"appens namn"

I templaterepot finnes två klasser fördefinierade, Quiz och Question. Dessa får utökas men det som finns där i får inte ändras.

När man spelar spelet skall frågorna slumpas fram och man ska kunna se totala andelen och antalet korrekta svar efter varje fråga.

När man skapar en ny quiz ska man kunna ange titel och skapa frågor tills man är nöjd. När man skapar en fråga ska man kunna lägga till minst 3 svarsalternativ och markera vilket av dessa som är korrekt. Sedan kunna spara till csv/json eller xml.

När man editerar ett quiz så skall man få en överblick av samtliga frågor och välja en av dessa för att kunna ändra dess statement och/eller svarsalternativ.

Redovisning

Uppgiften ska lösas individuellt.

Betygskriterier

För godkänt:

  • Man skall lämna in en planering med tillhörande klassdiagram för arbetet.
  • Koden ska fungera enligt ovan beskrivning.
  • Programmet skall fungera utan krasch.
  • Både att spara och läsa fil skall ske asynkront.
  • Både Quiz och Question skall ha lämpliga konstruktorer.

För väl godkänt krävs även:

  • Koden ska vara väl strukturerad och lätt att förstå
  • Lösningen ska inte innehålla massa onödig kod.
  • Det ska vara skalbart och enkelt att utöka.
  • Man ska även implementera extrauppgiften enligt nedan.

OBS! Extra uppgift som krävs för VG!

Som extra uppgift vill kunden gärna ha följande extra funktionalitet:

  • Frågor ska kunna ha bilder kopplade till sig.
  • Quiz skall sparas i JSON-format.
  • Frågorna skall vara ordnade efter ämne så att man kan välja att visa slumpade frågor från antingen ett eller flera ämnen.

Inlämning sker före deadline.

Tips och Hjälp

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) returnerar sökvägen till användarens ‘/appdata/local’ mapp För hantering av filer och mappar, kolla upp följande klasser:
Path, Directory, StreamWriter, StreamReader
Tänk på att göra både user input och lagrad data till lower case innan du jämför dem om du vill att ditt program ska vara case insensitive.

ListView kan användas för att visa ordlistorna och Open-/Save-Dialog kan användas för att öppna/spara filer.

Kolla upp Asynkron programmering här för mer info kring hur du skapar ett asynkront anrop.

Färdiga frågor: 35 Quiz questions

JSON: MS Docs Json

XML: MS Docs XML in .net

draw.io

Använd valfritt grafiskt ramverk, det måste inte vara WPF (Om man väljer annat ramverk så synka med Niklas hur inlämning sker.)

About

Template Repo för Labb 3 i Programmering med C#

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages