Quiz - co jeszcze zrobić?

2012-05-07 18:21

Rejestracja: 8 lat temu

Ostatnio: 1 dzień temu

0

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ć..?

Losowane losowo? :D - TomRiddle 2012-05-08 13:18

Pozostało 580 znaków

2012-05-07 18:22
Moderator

Rejestracja: 12 lat temu

Ostatnio: 6 minut temu

Lokalizacja: Wrocław

0

Zrób tak, aby pytania się nie powtarzały (chyba, że już tak jest).


już jest tak.:) - ProProgramer 2012-05-07 18:23
To teraz zrób to, ale korzystając z list, a nie z tablic jak zapewne zrobiłeś :D - Patryk27 2012-05-07 18:24
Nie, bo nie wiem co to sa te listy.. - ProProgramer 2012-05-07 18:25

Pozostało 580 znaków

2012-05-07 23:36
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 5 godzin temu

Lokalizacja: Tuchów

0
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, :

  1. jest to aplikacja konsolowa czy okienkowa?
  2. jeśli konsolowa, to w trybie tekstowym czy graficznym?
  3. jeśli w trybie graficznym, to jak wygląda interfejs?
  4. jeśli w okienkowym, to jakie komponenty wchodzą w skład formularza?
  5. ile pytań liczy zestaw?
  6. z jakiej dziedziny są pytania w zestawie?
  7. 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ę :]


edytowany 4x, ostatnio: furious programming, 2012-05-08 00:17
mogą być jeszcze pseudo losowo ;-) może chciał podkreślić że jego algorytm jest 100% losowy ... ;-) - xxx_xx_x 2012-05-08 10:02
To ja chcę widzieć kod, który to robi :) - furious programming 2012-05-08 12:57

Pozostało 580 znaków

2012-05-08 01:06

Rejestracja: 8 lat temu

Ostatnio: 1 tydzień temu

Lokalizacja: Łódź

0

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ń:

  1. Encyklopedia i jedziesz.
  2. 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

edytowany 6x, ostatnio: babubabu, 2012-05-08 01:21

Pozostało 580 znaków

2012-05-08 13:04
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 5 godzin temu

Lokalizacja: Tuchów

0
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;


macierz łańcuchów bo to ma być odpowiedź. Przykład: Pytanie "Jak nazywał się Einstein?" do łańcucha pyt. odpowiedzi: "Zdzisław","Krzysiu","Jasiu","Albert" 4 odpowiedzi do macierzy. A do popr idzie cyferka 4 bo czwarta odpowiedź jest poprawna. Przynajmniej na szybko tak wymyśliłem. - babubabu 2012-05-08 22:37
A co do mojego quizu to ja się ograniczę do konsoli bo z c++ dopiero zacząłem przygodę więc nawet nie wiem jak tam odpalić tryb graficzny. Doczytałem że jest tam coś jak graphic.h co jest odpoiedznikiem turbopascalowego unitu graph. Najpierw się poduczę a dopiero potem coś wstawię na forum bo nie chce z siebie zrobić pośmiewiska :) - babubabu 2012-05-08 22:39

Pozostało 580 znaków

2012-05-08 14:53

Rejestracja: 8 lat temu

Ostatnio: 1 dzień temu

0

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ć..

Ale my nie wiemy, co ty w nim zrobiłeś. Możemy sugerować różne rzeczy, które ty już masz dodane, a chyba nie o to chodzi? - Patryk27 2012-05-08 14:54
no to napisałem.. Że sam losuje i wyświetla pytania z tablicy.. odpowiedz wpisuje sie z klawiatury.. - ProProgramer 2012-05-08 15:02
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". Lepiej zrobić wybór z podanych odpowiedzi gdzie jedna jest poprawna. - babubabu 2012-05-08 22:36

Pozostało 580 znaków

2012-05-09 12:10
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 5 godzin temu

Lokalizacja: Tuchów

0
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;


edytowany 2x, ostatnio: furious programming, 2012-05-09 14:44

Pozostało 580 znaków

2012-05-09 13:01
Moderator

Rejestracja: 10 lat temu

Ostatnio: 8 minut temu

0

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 ;)

Da się zrobić. - TomRiddle 2012-05-09 14:11

Pozostało 580 znaków

2012-05-09 13:16

Rejestracja: 8 lat temu

Ostatnio: 1 tydzień temu

Lokalizacja: Łódź

0

@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

edytowany 2x, ostatnio: babubabu, 2012-05-09 14:37
Moja propozycja przynajmniej jest praktyczna i rozwijająca zarazem ;) - aurel 2012-05-09 14:25
Diakrytyczne, racja; Tylko nie wiem, dlaczego w kółko piszę dialektyczne... :P - furious programming 2012-05-09 14:43

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0