Discuss Scratch

tosiaf
Scratcher
30 posts

[PORADNIK] Jak zrobić quiz?

Opisek wrote:



Witaj
Pokażę ci jak zrobić dobry quiz.
Robisz 2 listy i dwie zmienne.
W jednej liście piszesz pytania, a w drugiej odpowiedzi
np.

Pytania:
3+5=
7+2=

Odpowiedzi:
8
9

Jedną zmienną nazwij “punkty”, a drugą “runda”.

Teraz podam najlepszy skrypt do zrobienia quizu:

kiedy kliknięto zieloną flagę
ustaw [punkty v] na [0]
ustaw [runda v] na [0]
powtórz (długość [pytania v]) razy
zmień [runda v] o (1)
zapytaj (element (runda::variables) z [pytania v]) i czekaj
jeżeli <(odpowiedź) = (element (runda::variables) z [odpowiedzi v])> to

zmień [punkty v] o (1)
powiedz [Twoja odpowiedź jest poprawna!] przez (2) s
w przeciwnym wypadku::cap //category=control
powiedz [Twoja odpowiedź nie jest poprawna!] przez (2) s
powiedz (połącz [Poprawna odpowiedź to: ] i (element (runda::variables) z [odpowiedzi v])) przez (4) s
end

end
powiedz [Brawo!] przez (2) s
powiedz (połącz (połącz [Osiągnąłeś ] i (punkty)) i (połącz [ punktów na ] i (połącz (długość [pytania v]) i [!]))) przez (4) s
powiedz [Dobry wynik!!!] przez (2) s

Tylko jeden krótki skrypt i możemy zrobić nieskończony quiz, zamiast ciągnąć pytania na całą stronę.
Proszę, umieść mnie w podziękowaniach.
A kiedy chcę zrobić taki quiz że np. jaką postacią jesteś? Próbowałam i mi nie wychodzi

when green flag clicked
forever
be yourself
end
Srebrny
Scratcher
50 posts

[PORADNIK] Jak zrobić quiz?

to już nie jest quiz, to jest test (psychotest).

ja bym zrobił tak, że tworzę tyle list ile mam pytań, w każdej liście kilka odpowiedzi (np 4 - A,B,C,D), tyle samo zmiennych i w zależności co gracz wybierze to dana zmienna się zwiększa. na koniec których odpowiedzi jest najwięcej to taki wynik wychodzi (chyba też do listy bym dał.)
wojciech-marzec
Scratcher
100+ posts

[PORADNIK] Jak zrobić quiz?

kiedy kliknięto zieloną flagę
ustaw [punkty v] na [0 ]
ustaw [runda v] na [0 ]
powtórz (długość [pytania v]) razy
zmień [runda v] o (1)
zapytaj (element (runda) z [pytania v]) i czekaj
jeżeli <(odpowiedź) = (element (runda ) z [ odpowiedzi v])> to
zmień [punkty v] o (1)
powiedz [Twoja odpowiedź jest poprawna] przez (2) s
w przeciwnym razie
powiedz [Twoja odpowiedź nie jest poprawna] przez (2) s
powiedz (połącz [Poprawna odpowiedź to ] i (połącz (element (runda ) z [ odpowiedzi v]) i [ !])) przez (4) s
end
end
powiedz [Gratulacje! Skończyłeś test!] przez (2) s
powiedz (połącz [Otrzymałeś] i (połącz (punkty) i (połącz [/] i (połącz (długość [pytania v]) i [punktów])))) przez (2) s
powiedz [Brawo!] przez (2) s
zatrzymaj [wszystko v]

Last edited by wojciech-marzec (Oct. 2, 2017 17:12:37)


when gf clicked
forever
enjoy: (all seasons (spring :: operators stack) (summer :: control stack) (autumn :: list stack) (winter :: sensing stack) :: hat motion) :: #ff0000
end

Profil
kot438
Scratcher
2 posts

[PORADNIK] Jak zrobić quiz?

fajne
wojciech-marzec
Scratcher
100+ posts

[PORADNIK] Jak zrobić quiz?

(Niepotrzebne cytat usunięty przez moderatora - proszę zachować to krótka)

Opisek, nie zrobiłeś wszystkiego!
Skrypt końcowy:
jeżeli <(runda) > (długość [pytania v])> to
zatrzymaj [wszystko v]
end

Last edited by Paddle2See (Feb. 2, 2016 12:37:06)


when gf clicked
forever
enjoy: (all seasons (spring :: operators stack) (summer :: control stack) (autumn :: list stack) (winter :: sensing stack) :: hat motion) :: #ff0000
end

Profil
OpiGames
Scratcher
100+ posts

[PORADNIK] Jak zrobić quiz?

To nic nie zmienia bo skrzpt powtarza sie tylko tak dlugo az zabraknie pytan.



((Any ideas::operators reporter)::ring obsolete) {what I could::ring sensing} ({put{in{my::events}signature::control}?::list}::variables hat) ::control
agati88
Scratcher
28 posts

[PORADNIK] Jak zrobić quiz?

Ja robię inaczej.
kiedy kliknięto zieloną flagę
powiedz [Coś tam mówi na temat quizu] przez (jakiś tam czas) s
zapytaj [Jakieś pytanie] i czekaj
jeżeli <(odpowiedź) = [Dobra odpowiedź]> to
zmień [Dobre odp.v] o ()
end
jeżeli <nie <(odpowiedź) = [Dobra odp. ]>> to
zmień [złe odp v] o (1)
end
I tak zrobiłam kilka Quizów

                                   
when this sprite clicked
forever
say [Fajne projekty]
ask [Może dam gwiazdeke lub serduszko? Tak, dam!] and wait
end
OpiGames
Scratcher
100+ posts

[PORADNIK] Jak zrobić quiz?

To jest to samo, ale musisz cały czas kopiować te same bloki, robiąc skrypt mega długi.



((Any ideas::operators reporter)::ring obsolete) {what I could::ring sensing} ({put{in{my::events}signature::control}?::list}::variables hat) ::control
ProgrammingMan654
Scratcher
100+ posts

[PORADNIK] Jak zrobić quiz?

kiedy kliknięto zieloną flagę
zapytaj [Kto był najlepszym królem wszech-szechów?] i czekaj
jeżeli <(odpowiedź) = [Król Julian ]> to
powiedz [Dobrze! Kto idzie na imprezę?] przez (2) s

end

wojciech-marzec
Scratcher
100+ posts

[PORADNIK] Jak zrobić quiz?

kiedy kliknięto red-flagę gray :: events hat
podnieś ubikację na ( v) metrów :: grey
turbo uruchomione na poziom ( v) :: motion cap

bądź {(uszczęśliwiony :: pen) :: ring sensing}, albowiem :: motion hat
myślę, że <nauczysz się> [czegoś nowego v] :: variables
chyba zapytasz się, że kto jest [najlepszym scratcherem v] :: control
potwierdzono [Opisek v] :: looks
jeżeli tak, to {puść fajerwerki :: looks} a jeżeli dasz (gwiazdkę :: variables) i (serce :: list){uciesz się :: operators} dalej bądź lubiany :: extension
polub tego, kto dał gwiazdkę :: sound cap

[scratchblocks]
kiedy kliknięto red-flagę gray :: events hat
podnieś ubikację na ( v) metrów :: grey
turbo uruchomione na poziom ( v) :: motion cap

bądź {(uszczęśliwiony :: pen) :: ring sensing}, albowiem :: motion hat
myślę, że <nauczysz się> [czegoś nowego v] :: variables
chyba zapytasz się, że kto jest [najlepszym scratcherem v] :: control
potwierdzono [Opisek v] :: looks
jeżeli tak, to {puść fajerwerki :: looks} a jeżeli dasz (gwiazdkę :: variables) i (serce :: list){uciesz się :: operators} dalej bądź lubiany :: extension
polub tego, kto dał gwiazdkę :: sound cap
[/scratchblocks]

when gf clicked
forever
enjoy: (all seasons (spring :: operators stack) (summer :: control stack) (autumn :: list stack) (winter :: sensing stack) :: hat motion) :: #ff0000
end

Profil
Apocalypse_Gaming
Scratcher
23 posts

[PORADNIK] Jak zrobić quiz?

Opisek wrote:



Witaj
Pokażę ci jak zrobić dobry quiz.
Robisz 2 listy i dwie zmienne.
W jednej liście piszesz pytania, a w drugiej odpowiedzi
np.

Pytania:
3+5=
7+2=

Odpowiedzi:
8
9

Jedną zmienną nazwij “punkty”, a drugą “runda”.

Teraz podam najlepszy skrypt do zrobienia quizu:

kiedy kliknięto zieloną flagę
ustaw [punkty v] na [0]
ustaw [runda v] na [0]
powtórz (długość [pytania v]) razy
zmień [runda v] o (1)
zapytaj (element (runda::variables) z [pytania v]) i czekaj
jeżeli <(odpowiedź) = (element (runda::variables) z [odpowiedzi v])> to:: control cstart

zmień [punkty v] o (1)
powiedz [Twoja odpowiedź jest poprawna!] przez (2) s
w przeciwnym wypadku::celse control
powiedz [Twoja odpowiedź nie jest poprawna!] przez (2) s
powiedz (połącz [Poprawna odpowiedź to: ] i (element (runda::variables) z [odpowiedzi v])) przez (4) s
end:: cend

end
powiedz [Brawo!] przez (2) s
powiedz (połącz (połącz [Osiągnąłeś ] i (punkty)) i (połącz [ punktów na ] i (połącz (długość [pytania v]) i [!]))) przez (4) s
powiedz [Dobry wynik!!!] przez (2) s

Tylko jeden krótki skrypt i możemy zrobić nieskończony quiz, zamiast ciągnąć pytania na całą stronę.
Proszę, umieść mnie w podziękowaniach.
Jeszcze lepsza wersja:
kiedy kliknięto zieloną flagę
ustaw [punkty v] na [0]
ustaw [runda v] na [0]
ustaw [max v] na [0]
powtórz (długość [pytania v]) razy
zmień [runda v] o (1)
zapytaj (połącz (połącz (połącz (runda) i [. ]) i (element (runda) z [pytania v])) i (połącz (połącz [(] i (element (runda) z [wagi v])) i [ pkt.)])) i czekaj
zmień [max v] o (element (runda) z [wagi v])
jeżeli <(odpowiedź) = (element (runda) z [odpowiedzi v])> to

zmień [punkty v] o (element (runda) z [wagi v])
powiedz [Twoja odpowiedź jest poprawna!] przez (2) s
w przeciwnym razie
powiedz [Twoja odpowiedź nie jest poprawna!] przez (2) s
powiedz (połącz [Poprawna odpowiedź to: ] i (element (runda) z [odpowiedzi v])) przez (4) s

end
jeżeli <<((punkty) / (max)) > [0.3]> lub <((punkty) / (max)) = [0.3]>> to
powiedz [Brawo!] przez (2) s
jeżeli <(punkty) = [1]> to
powiedz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punkt na ] i (połącz (max) i [!]))) przez (4) s
w przeciwnym razie
jeżeli <<((punkty) mod (100)) > [9]> i <((punkty) mod (100)) < [20]>> to
powiedz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punktów na ] i (połącz (max) i [!]))) przez (4) s
w przeciwnym razie
jeżeli <<((punkty) mod (10)) > [1]> i <((punkty) mod (10)) < [5]>> to
powiedz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punkty na ] i (połącz (max) i [!]))) przez (4) s
w przeciwnym razie
jeżeli <((punkty) mod (1)) = [0]> to
powiedz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punktów na ] i (połącz (max) i [!]))) przez (4) s
w przeciwnym razie
powiedz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punktu na ] i (połącz (max) i [!]))) przez (4) s
end
end
end
end
powiedz [Dobry wynik!!!] przez (2) s
w przeciwnym razie
powiedz [Niestety!] przez (2) s
jeżeli <(punkty) = [1]> to
powiedz (połącz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punkt na ] i (połącz (max) i [! Aby zaliczyć, musisz uzyskać ich co najmniej ]))) i (połącz ((max) * (0.3)) i [.]))
w przeciwnym razie
jeżeli <<((punkty) mod (100)) > [9]> i <((punkty) mod (100)) < [20]>> to
powiedz (połącz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punktów na ] i (połącz (max) i [! Aby zaliczyć, musisz uzyskać ich co najmniej ]))) i (połącz ((max) * (0.3)) i [.]))
w przeciwnym razie
jeżeli <<((punkty) mod (10)) > [1]> i <((punkty) mod (10)) < [5]>> to
powiedz (połącz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punkty na ] i (połącz (max) i [! Aby zaliczyć, musisz uzyskać ich co najmniej ]))) i (połącz ((max) * (0.3)) i [.]))
w przeciwnym razie
jeżeli <((punkty) mod (1)) = [0]> to
powiedz (połącz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punktów na ] i (połącz (max) i [! Aby zaliczyć, musisz uzyskać ich co najmniej ]))) i (połącz ((max) * (0.3)) i [.]))
w przeciwnym razie
powiedz (połącz (połącz (połącz [Osiągnąłeś/-aś ] i (punkty)) i (połącz [ punktu na ] i (połącz (max) i [! Aby zaliczyć, musisz uzyskać ich co najmniej ]))) i (połącz ((max) * (0.3)) i [.]))
end
end
end
end
end

Last edited by Apocalypse_Gaming (Sept. 22, 2017 22:54:13)


when green flag clicked
forever
if<not<((((current[year v])*(10000))+((current[month v])*(100)))+(current[date v]))<[20171012]>>then
say [No, it's not the apocalypse.]
iMarkiztoja
New to Scratch
2 posts

[PORADNIK] Jak zrobić quiz?

Dzięki za podpowiedź
iMarkiztoja
New to Scratch
2 posts

[PORADNIK] Jak zrobić quiz?

A jak się robi, żeby jak jakaś odpowiedź będzie nie poprawna to można spróbować jeszcze raz?
MentolMen
Scratcher
1000+ posts

[PORADNIK] Jak zrobić quiz?

Zależy jaki masz skrypt
Jeżeli już wykryjesz że odpowiedź jest błędna to musisz zapętlić proces pytania o odpowiedź takim sposobem
powtórz (ile chcesz razy) razy
skrypt który będzie zadawał pytanie

end
Można to zrobić w inny sposób ale nie wyjaśnie bo nie wiem o jaki skrypt ci chodzi Udostępnij projekt to ci zrobię
grzegi2
Scratcher
1 post

[PORADNIK] Jak zrobić quiz?

ja bym zrobił to tak


kiedy kliknięto zieloną flagę
ustaw [pytanie] na [1]
ustaw [ dobre odpowiedzi] na [0]
ustaw [ złe odpowiedzi] na [0]
nadaj [pytanie] i czekaj

kiedy otrzymam [pytanie]
jeżeli (pytanie) = [1] to
zapytaj [ile to 1+1] i czekaj
jeżeli <(odpowiedź) = [2]> to
zmień [dobre odpowiedzi] o (1)
powiedz [dobrze] przez (3) s
zmień [pytanie] o (1)
w przeciwnym razie
zmień [złe odpowiedzi] o (1)
powiedz [źle] przez (3) s
nadaj [pytanie]
end

Last edited by grzegi2 (Dec. 3, 2023 12:51:08)

Powered by DjangoBB