Witam.
Chciałbym się was poradzić co jeszcze dodać do Quizu.. Na razie mam, że pytania losowane są losowo.. A na końcu quizu jest wyświetlana ilość poprawnych odpowiedzi i ocena :) Co jeszcze można by zrobić..?
Zrób tak, aby pytania się nie powtarzały (chyba, że już tak jest).
ProProgramer napisał(a)
Na razie mam, że pytania losowane są losowo..
Wyszło masło maślane - skoro losowane to zapewne losowo;
Zbyt wiele nie masz w tym quiz'ie; Z resztą nie podałeś kłizu w załączniku, więc skąd mamy wiedzieć co masz, a co jeszcze można dodać?
Ogólnie to możesz dodać miliard rzeczy na miliard sposobów; Wszystko zależy od tego co byś chciał żeby się tam znalazło i co umiałbyś zaprogramować;
Nie wiemy o Twoim programie nic, :
- jest to aplikacja konsolowa czy okienkowa?
- jeśli konsolowa, to w trybie tekstowym czy graficznym?
- jeśli w trybie graficznym, to jak wygląda interfejs?
- jeśli w okienkowym, to jakie komponenty wchodzą w skład formularza?
- ile pytań liczy zestaw?
- z jakiej dziedziny są pytania w zestawie?
- jakie jest prawdopodobieństwo powtórzenia pytania?
To tylko kilka pytań postawionych spontanicznie;
Nie podałeś praktycznie żadnych informacji o Twoim projekcie, więc można jedynie spekulować; Pokaż choćby skriny jeśli nie chcesz przedstawić całej aplikacji (w sumie to możnaby się trochę pobawić w zgadywanki), a pewnie dostaniesz więcej podpowiedzi;
Ode mnie sugestia: pozwól użytkownikowi wybrać nie dość, że zestaw pytań to jeszcze dziedzinę, z której będą zadawane pytania, a także umieść w jednym zestawie tyle pytań, żeby się w jednym dniu nie powtórzyły; Czyli zrób ich w cholerę :]
Mam wrażenie, że jak ProProgramer pokaże źródło to znowu będzie śmiesznie.
Moja sugestia rozwijająca tą wyżej. Nadaj pytaniom numerki i zapisuj które pytanie już było, a podczas losowania kolejnego sprawdzaj czy takie już było wylosowane jeśli tak to losuj dalej jeśli nie to zadaj pytanie, a jeśli wszystkie już były wylosowane to wylicz i podaj wynik. Unikniesz wymyślania milionów pytań jednak jeśli umieścisz w quizie 5 pytań to będzie on bardzo krótki. Myślę że optymalna liczba to około 30 pytań na zestaw 10 zestawów na dziedzinę i około 10 dziedzin, co jak by nie patrzeć da 3000 pytań, więc 2 podpowiedzi odnośnie wymyślania pytań:
- Encyklopedia i jedziesz.
- Poszukaj quizów w necie i zerżnij pytania.
Aha żeby kod źródłowy programu nie zawierał 1231234234235 linii oraz nie zżerał gigabajtów pamięci to pytania umieść w pliku i wczytuj tylko te które są akurat potrzebne (odpowiednia dziedzina i odpowiedni zestaw). Podpowiedź:
Typ rekordowy
TPytanie = record
Pyt : String;
odp : array [1..x] of String;
popr : Byte;
end;
// x - liczba odpowiedzi (4 odpowiedzi na pytanie zamiast x wpisz 4)
// popr - numer odpowiedzi która jest poprawna
Uch dużo się rozpisałem i jak tak dalej pójdzie to gotowca napisze xD
PS
W sumie dobry pomysł by się trochę nauczyć, a ponieważ mam zamiar nauczyć się C++ to napisze taki quiz w C++ w okienku konsoli :D
babubabu napisał(a)
Moja sugestia rozwijająca tą wyżej. Nadaj pytaniom numerki i zapisuj które pytanie już było, a podczas losowania kolejnego sprawdzaj czy takie już było wylosowane jeśli tak to losuj dalej jeśli nie to zadaj pytanie, a jeśli wszystkie już były wylosowane to wylicz i podaj wynik.
Patryk27 napisał(a)
Zrób tak, aby pytania się nie powtarzały (chyba, że już tak jest).
ProProgramer napisał(a)
już jest tak.:)
To już ma, więc nie ma co opisywać w jaki sposób można to wykonać :P
@babubabu, trochę dziwi mnie ten kod:
TPytanie = record
Pyt : String;
odp : array [1..x] of String;
popr : Byte;
end;
Po co Ci macierz łańcuchów? Czyżbyś chciał odpowiadać całym zdaniem...? :]
Jeśli chodzi o pole popr
to raczej deklarowałbym ją jako Boolean
, bo po co tutaj pakować liczby? Odpowiedź albo jest poprawna, albo nie, stąd do tego typu zmiennych służy wartość ligiczna;
babubabu napisał(a)
a ponieważ mam zamiar nauczyć się C++ to napisze taki quiz w C++ w okienku konsoli
Koniecznie w trybie graficznym; Jak napiszesz coś to zaprezentuj, może @ProProgramer coś podpatrzy od Ciebie;
Nie wiem po co ci tyle wiedzieć.. I znać kod.. Ja nie potrzebuje abyście mi robili ten Quiz.. Potrzeba mi tylko abyscie doradzili co można w nim jeszcze dodać..
ProProgramer napisał(a)
Nie wiem po co ci tyle wiedzieć.. Potrzeba mi tylko abyscie doradzili co można w nim jeszcze dodać..
A no racja, po co mi to wiedzieć, jeszcze ukradnę Ci program i wysteruję Cię jak Saverin'a Zuckerberg; Uważak, bo miliardów się dorobię i nie podzielę się;
To napisz mi co mogę zrobić jeszcze przy aucie? To Volkswagen;
ProProgramer napisał(a)
no to napisałem.. Że sam losuje i wyświetla pytania z tablicy.. odpowiedz wpisuje sie z klawiatury..
Napisałeś tyle, że nie wiadomo w co ręce włożyć; Normalna epopeja;
babubabu napisał(a)
"Jak nazywał się Einstein?"
Mnie nie trzeba żadnych podpowiedzi do tego pytania; Einstein nazywał się Einstein :P
Teraz już wiem co miałeś na myśli; Ja nie wiedziałem, że chcesz to zrobić w ten sposób, że do pytania będą cztery odpowiedzi - autor podaje odpowiedź z klawiatury; Skoro chce zabłysnąć i sprawdzać łańcuchy to wystarczy zadeklarować taki rekord:
TQuestion = record
Content,
Answer,
UserAnswer: String;
end;
I też będzie grało; Jeśli autor chce przechowywać pytania i odpowiedzi w plikach typowanych - trzeba ustalić długości łańcuchów;
babubabu napisał(a)
wpisywanie odpowiedzi z klawiatury nie jest dobrym pomysłem bo porównywanie 2 stringów jest ciężkie. musisz sprawdzić czy są odpowiedniej długości i czy wszystkie znaki się zgadzają a "a" nie jest równe "A".
Nie jest to aż takie trudne; Wystarczy ignorować polskie znaki diakrytyczne, a poźniej przygotowane łańcuchy sprawdzić funkcją np. SameText
(brak rozróżniania dużych i małych liter) i gotowe;
Wszystko zależy od poziomu trudności quiz'u; Można by wprowadzić dwa tryby gry - prosty i zaawansowany; W tym pierwszym gracz wybiera jedną z np. czterech odpowiedzi, a w zaawansowanym podaje się odpowiedź z klawiatury;
Można dodać miliard rzeczy, ale trzeba wiedzieć co już jest; Autor nie pokaże aplikacji więc prędko się nie dowiemy;
A jak wczytujesz pytania? Podejrzewam, że można by w tej kwestii sporo dopracować. Wg mnie najwygodniej by było, gdybyś miał plik xml, tak by podmiana pytań/odpowiedzi mogła odbywać się w zwykłym notatniku.
Ale zależy też, czy program robisz dla siebie, żeby się z niego uczyć (wtedy łatwość podmiany pytań/odpowiedzi stawiałabym na pierwszym miejscu) czy też będziesz kogoś egzaminował :P W tym drugim przypadku, trzeba by jednak pomyśleć o bezpieczeństwie. Ja bym taki plik xml umieściła na serwerze i dała dostęp tylko po uwierzytelnieniu.
Nie znam jednak możliwości Pascala ;)
@aurel nie świruj :P ProProgramer nie umie poprawnie zastosować pętli for a Ty tu wyskakujesz z pobieraniem danych z serwera po uwierzytelnieniu xD
@Furious Programming znaki diakrytyczne :P