Gå til innhold

Anbefalte innlegg

Lager en tråd jeg håper jeg kan få tilbakemelding på mine ideer og tanker.

Først ut, jeg skal lage brettspill, quiz. Blir noe likt geni.

 

Saken er at jeg skal ha endel spørsmål.

 

De er laget slik:

Kategori, spørsmål, svar, vanskelighetsgrad.

Dette er informasjonen jeg trenger av spørsmåla.

 

Så kommer spørsmålet, hvordan skal jeg bruke de i programmet? Skal jeg adde de til et objekt under oppstart av programmet? Eller bør jeg lage en database for dette?

:hmm: Er veldig usikker her igrunn...

 

Eller kanskje det er like greit å lage spørsmåla i et tekstdokument og så lese fra det?

Endret av discostu
Lenke til kommentar
Videoannonse
Annonse

Ja, du sier noe der, men kan jeg kjøre databasen sammen med programmet? Jeg mener, vi har hatt litt om database på skole, og slik jeg forsto det bør databasen ligge på nett! Noe som er litt kjipt, da jeg ønsker at dette skal være en offline funksjon.

Og jeg vil jo gjerne at andre folk skal kunne prøve det ut også.

 

Jeg kunne jo kanskje brukt xml..

Endret av discostu
Lenke til kommentar

Jeg ville også brukt en database, men kun for å ha et admin verktøy for å skrive inn spørsmål.

 

Til selve programmet ville jeg nok ikke brukt en database, men XML eller binærfiler som ble generert fra databasen.

 

Hvis du vil at andre skal kunne lese/endre/"stjele" spørsmålene på en enkel måte er XML bra. Spørsmålsfilen blir litt større enn ved binærfiler.

 

Binærfiler gjør det hakket verre å hente ut spørsmålene. Litt mindre filer og raskere å laste inn.

 

Uansett så er det ikke vanskelig å stjele spørsmålene dine når de kommer sammen med klienten. Hvis du skal være enda sikrere kan du f.eks. lage en webservice, passe på at man ikke kan hente ut spørsmål oftere enn 1spm. / 10 sec., og ha innlogging... :)

 

 

Siden det er ditt første program ville jeg nok brukt XML hvis jeg var deg. Rett og slett for å lære seg hvordan dette gjøres i .Net... Kanskje 1 XML fil for kategorier og "KategoriID", så 1 stk. XML fil for hver kategori...?

 

Om du har litt på litt større utfordring kan du kikke på serialization... Da kan du deserialisere fra både XML og binærfiler..

Endret av jorn79
Lenke til kommentar

Ah, trur jeg går for xml..

Hadde det blitt noe sånt:

 

<Questions count="antall spørsmål">
     <Question>
         <Category>Musikk</category>
         <Q>I hvilket band spiller....<Q>
         <A>svar<A>
         <Vanskelighetsgrad>1</vgrad> //Tall mellom 1-3, der 3 er                                                       vanskeligst.
      </Question>
</Questions>

 

 

 

Lurer litt på svaralternativ, tenker jeg skal ha med det, iallefall på noen spørsmål, så derfor tror jeg kanskje der er lurt og legge med det / i selve spørsmålet, feks <Q> hva heter britney til etternavn, 1=Pære, / 2=Spears 3=Jolie</Q>

Endret av discostu
Lenke til kommentar

Jeg synes System.XML er rotete, og pluss at det ikke er konsekvent med resten av .NET framework, så jeg ville gjort det noe lignende dette:

public interface IStreamable
{
 void FromStream(System.IO.Stream src);
 void ToStream(System.IO.Stream dst);
}

public class Question : IStreamable
{
 string m_cat;
 string m_query;
 string m_answer;
 int m_difficulty;

 public string Catergory { get { return m_cat; } set { m_cat = value; } }
 public string Question { get { return m_query; } set { m_query = value; } }
 public string Answer { get { return m_answer; } set { m_answer = value; } }
 public int Difficulty { get { return m_difficulty; } } set { m_difficulty = value; } }
 public void FromStream(System.IO.Stream src)
 {
   System.IO.BinaryReader reader = new System.IO.BinaryReader(src);
   m_cat = reader.ReadString();
   m_query = reader.ReadString();
   m_answer = reader.ReadString();
   m_difficulty = reader.ReadIntr32();
 }
 public void ToStream(System.IO.Stream dst)
 {
   System.IO.BinaryWriter writer = new System.IO.BinaryWriter(dst);
   writer.Write(m_cat);
   writer.Write(m_query);
   writer.Write(m_answer);
   writer.Write(m_difficulty);
 }
 public Question()
 {
   m_cat = "";
   m_query = "";
   m_answer = "";
   m_difficulty = 0;
 }
 public Question(System.IO.Stream src)
   : this()
 {
   FromStream(src);
 }
}

public class QuestionList : System.Collection.Generic.List<Question>, IStreamable
{
 public void FromStream(System.IO.Stream src)
 {
   System.IO.BinaryReader reader = new System.IO.BinaryReader(src);
   int count = reader.ReadInt32();
   for(int x = 0; x < count;x++)
     Add(new Question(src));    
 }
 public void ToStream(System.IO.Stream dst)
 {
   System.IO.BinaryWriter writer = new System.IO.BinaryWriter(dst);
   writer.Write(Count);
   foreach(Question q in this)
     q.ToStream(dst);
 }
 public void FromFile(string path)
 {
   System.IO.FileStream fs = new System.IO.FileStream(path);
   System.IO.Compression.GZipStream stream = new System.IO.Compression.GZipStream(fs, Decompress);
   FromStream(stream);
   stream.Close();
   fs.Close();
 }
 public void ToFile(string path)
 {
   System.IO.FileStream fs = new System.IO.FileStream(path);
   System.IO.Compression.GZipStream stream = new System.IO.Compression.GZipStream(fs, Compress);
   ToStream(stream);
   stream.Close();
   fs.Close();
 }
}

Lenke til kommentar

Ah, litt avansert program, titta igjennom noenganger nå. Skal vurdere den løsningen der, men foreløpig kommer jeg til å kjøre xml. Får heller utvide det til binærfil ved senere tidspunkt. Takk for innspill.

 

Kommer sikkert med flere spørsmål underveis :p

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...