discostu Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 (endret) 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? Er veldig usikker her igrunn... Eller kanskje det er like greit å lage spørsmåla i et tekstdokument og så lese fra det? Endret 8. mars 2007 av discostu Lenke til kommentar
Manfred Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 Jeg ville kjørt en database bak. Synes dette blir mer ryddig, og enklere å vedlikeholde senere. Lenke til kommentar
discostu Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 (endret) 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 8. mars 2007 av discostu Lenke til kommentar
GeirGrusom Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 Jeg ville laget en egen binærfil, enkelt, kjapt. Lenke til kommentar
j000rn Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 (endret) 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 8. mars 2007 av jorn79 Lenke til kommentar
discostu Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 (endret) 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 8. mars 2007 av discostu Lenke til kommentar
GeirGrusom Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 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
j000rn Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 så jeg ville gjort det noe lignende dette:... 8109039[/snapback] Må jo ikke lage hele programmet for han da! Lenke til kommentar
discostu Skrevet 9. mars 2007 Forfatter Del Skrevet 9. mars 2007 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 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå