iQuiz
irssi quiz, v131021 Autor: wilk |
Opis
Jest to skrypt quizowy napisany dla programu irssi. Obsługuje w obecnej postaci quizy klasyczne, czyli wyświetla pytanie i oczekuje na wprowadzenie jednej, prawidłowej odpowiedzi; quizy, w których należy ułożyć poprawną odpowiedź ze składających się na nią losowo pomieszanych liter oraz tryb quizów, w których na każde pytanie jest wiele odpowiedzi. Skrypt działa jedynie w formie autoquizu.
Historia
Skrypt powstał 23 maja 2010 roku w wyniku zapotrzebowania na skrypt quizowy funkcjonujący w popularnym kliencie IRC – irssi. W oficjalnym repozytorium skryptów dla tego programu nie było skryptów stricte quizowych. Początkowym założeniem projektu było przeniesienie podstawowych funkcjonalności jakie oferował skrypt dizzy, wraz z utrzymaniem kompatybilności co do formatu plików z pytaniami. Z czasem skrypt był rozbudowywany i uzyskał możliwość realizacji premier typu mieszacz (październik 2012) oraz familiada (październik 2013; w wersji bez drużyn).
Działanie
Quiz polega na wyświetleniu pytania i oczekiwaniu na podanie poprawnej odpowiedzi, zaś w trybie mieszacza wyświetlane są losowo pomieszane litery składające się na hasło, które jest jednocześnie odpowiedzią. Pierwsza osoba, która udzieli poprawnej odpowiedzi zdobywa stałą, określoną ilość punktów (zwykle jeden). W trakcie trwania pytania gracze mogą odpowiednim poleceniem poprosić o kolejną podpowiedź lub o powtórzenie pytania (w przypadku mieszacza, w domyślnej konfiguracji, powoduje to ponowne przemieszanie rozsypanki liter). W trybie familiady dla każdego pytania przygotowany jest zestaw odpowiedzi, runda gry dobiega końca gdy wszystkie odpowiedzi zostaną odgadnięte lub upłynie czas. W przeciwieństwie do oryginalnej familiady każdy gra tylko indywidualnie, bez przyłączania się do drużyny. Po wyczerpaniu się zestawu pytań quiz dobiega końca, a prowadzący może wyświetlić punktację wszystkich graczy.
Dla graczy
Komendy, które może używać każdy gracz znajdujący się na kanale podczas quizu:
!podp | - | wyświetlenie podpowiedzi (niedostępne w trybie familiady), |
!przyp | - | ponowne wyświetlenie treści pytania lub hasła, |
!ile | - | skrypt wysyła na kanał informację o liczbie punktów gracza, który wywołał komendę, |
!ile [nick] | - | skrypt wysyła na kanał informację o liczbie punktów gracza o podanym nicku. |
Polecenia wyświetlenia podpowiedzi i przypomnienia pytania są zabezpieczone przed floodem i oszukiwaniem, poprzez wprowadzenie opóźnienia przed ponowną możliwością ich użycia.
Dla autorów
• Format pytań i odpowiedzi (quiz klasyczny) w postaci przykładowego zestawu pytań w Notatniku:
Pytania poprzedzamy kluczem „pyt ”, zaś odpowiedzi „odp ” i umieszczamy naprzemiennie w pliku.
• Format pytań i odpowiedzi (mieszacz) w postaci przykładowego zestawu haseł w Notatniku:
W każdym wierszu ma być jedno hasło poprzedzone kolejną liczbą, począwszy od „1”.
• Format pytań i odpowiedzi (familiada) w postaci przykładowego zestawu pytań w Notatniku:
Pytania i zestawy odpowiedzi umieszczamy w pliku naprzemiennie. Odpowiedzi do poszczególnych pytań oddzielamy znakiem gwiazdki „*”.
Uwaga – skrypt przyjmuje także pliki bez wymaganego dla innych skryptów formatu, tj. „pyt”/„odp” w przypadku quizu klasycznego oraz numeracji linii w mieszaczu. Quiz familiadowy może posiadać dowolną ilość odpowiedzi.
Wgranie skryptu do irssi: |
Usunięcie skryptu z irssi: |
/script load quiz.pl |
/script unload quiz.pl |
Przykład typowej rozgrywki:
Skrypt należy umieścić w katalogu skryptów swojego irssi (jest to zwykle "~/.irssi/scripts"). W irssi wgrywamy go do pamięci poleceniem:
/script load quiz.pl
Jeśli mamy zamiar puścić quiz typu mieszacz, to należy ustawić odpowiednią zmienną (wartość 1: quiz klasyczny, 2: mieszacz, 3: familiada):
/qtype 2
Następnie uruchamiamy quiz na kanale #kanal korzystając z pliku z pytaniami o nazwie np. pytania.txt:
/qon #kanal pytania.txt
Po wyczerpaniu się pytań z pliku wyświetlamy punktację graczy:
/qstat
Po wyświetleniu wyników quiz kończymy komendą:
/qoff
W następnej kolejności (opcjonalnie) usuwamy skrypt z pamięci irssi:
/script unload quiz.pl
Dodatkowe polecenia:
Wyświetlenie pomocy skryptu – wszystkie polecenia i ustawienia z opisem:
/quiz
Ustawienie opóźnienia wyświetlania kolejnych pytań na np. 10 sekund (w trybie familiady wartość ta traktowana jest mnożona przez 3, czyli „/qdelay 10” ustawia 30 sekund):
/qdelay 10
Ustawienie długości trwania rundy na np. 120 sekund (tylko dla trybu familiadowego):
/qtime 120
Pominięcie bieżącego pytania:
/qskip
Wymuszenie wyświetlenia kolejnej podpowiedzi:
/qhint
Ustawienia skryptu (dla zaawansowanych quizowiczy):
Zmienne ustawiamy korzystając z poniższego polecenia:
/set zmienna wartość
quiz_type | - | rodzaj quizu (1: klasyczny, 2: mieszacz, 3: familiada) |
quiz_delay | - | opóźnienie między pytaniami w sekundach (domyślnie: 7; familiada: x3) |
quiz_round_time | - | czas trwania rundy w sekundach (domyślnie: 120; tylko familiada) |
quiz_anticheat_delay | - | ochrona przed floodem w sekundach (domyślnie: 3; 0 - wyłączona) |
quiz_points_per_answer | - | ilość punktów przyznawanych za poprawną odpowiedź (domyślnie: 1) |
quiz_progressive_points | - | czy trudniejsze odpowiedzi są lepiej punktowane? (domyślnie: tak; tylko familiada — by miało to sens należy ułożyć odpowiedzi w pliku w porządku od najtrudniejszej do najłatwiejszej) |
quiz_random_hints | - | czy litery w podpowiedziach odsłaniać losowo? (domyślnie: tak) |
quiz_show_first_hint | - | czy wyświetlać pierwszą podpowiedź razem z pytaniem? (domyślnie: nie) |
quiz_first_hint_dots | - | czy pierwsza podpowiedź to tylko kropki? (domyślnie: tak) |
quiz_mix_on_remind | - | czy mieszać litery przy każdym przypomnieniu? (domyślnie: tak; tylko mieszacz) |
quiz_cmd_hint | - | czy polecenie !podp jest aktywne? (domyślnie: tak) |
quiz_cmd_remind | - | czy polecenie !przyp jest aktywne? (domyślnie: tak) |
Kliknij by wejść na podstronę dotyczącą jeszcze starszej wersji skryptu iQuiz