Ahoj, mám takový problém. Snažím se udělat losování otázek se správnými odpověďmi. Nějak jsem to sesmolil, ale přijde mi to krkolomné a stále mi něco říká, že by to šlo lépe.
new question[20][1000];//u té tisícovky si nejsem jistý, jestli je to v pořádku, ale toho textu je celkem dostnew answer[20][2];//tady také nevím, ale když bude ve stringu např. "a", tak by to mělo stačit
Spoiler
question[0] = "Otázka číslo 1\nA) ano\nB) ne\nC) nevim";
question[1] = "Otázka číslo 2\nA) ano\nB) ne\nC) nevim";
question[2] = "Otázka číslo 3\nA) ano\nB) ne\nC) nevim";
question[3] = "Otázka číslo 4\nA) ano\nB) ne\nC) nevim";
question[4] = "Otázka číslo 5\nA) ano\nB) ne\nC) nevim";
question[5] = "Otázka číslo 6\nA) ano\nB) ne\nC) nevim";
question[6] = "Otázka číslo 7\nA) ano\nB) ne\nC) nevim";
question[7] = "Otázka číslo 8\nA) ano\nB) ne\nC) nevim";
question[8] = "Otázka číslo 9\nA) ano\nB) ne\nC) nevim";
question[9] = "Otázka číslo 10\nA) ano\nB) ne\nC) nevim";
question[10] = "Otázka číslo 11\nA) ano\nB) ne\nC) nevim";
question[11] = "Otázka číslo 12\nA) ano\nB) ne\nC) nevim";
question[12] = "Otázka číslo 13\nA) ano\nB) ne\nC) nevim";
question[13] = "Otázka číslo 14\nA) ano\nB) ne\nC) nevim";
question[14] = "Otázka číslo 15\nA) ano\nB) ne\nC) nevim";
question[15] = "Otázka číslo 16\nA) ano\nB) ne\nC) nevim";
question[16] = "Otázka číslo 17\nA) ano\nB) ne\nC) nevim";
question[17] = "Otázka číslo 18\nA) ano\nB) ne\nC) nevim";
question[18] = "Otázka číslo 19\nA) ano\nB) ne\nC) nevim";
question[19] = "Otázka číslo 20\nA) ano\nB) ne\nC) nevim";
Pak potřebuju náhodně vybrat 5 otázek z 20 tak, aby se ve výběru žádná neopakovala:
new allot[5];for(new i =0; i <5; i++){
allot[i]= random(19);//nevím, jak sestavit podmínku, aby to opravdu hodilo znovu random pokud to na nějakém indexu 0-4 najde stejné číslo}
Pak uložím hráči do proměnné správné odpovědi, abych je později mohl porovnat s těmi, které zadal (v jiném dialogu):
new correctanswer[MAX_PLAYERS][5][2];//opět nevím, jestli stačí dva znaky pro "a"
correctanswer[playerid][0]= answer[allot[0]];
correctanswer[playerid][1]= answer[allot[1]];
correctanswer[playerid][2]= answer[allot[2]];
correctanswer[playerid][3]= answer[allot[3]];
correctanswer[playerid][4]= answer[allot[4]];//toto by se také dalo přidat do toho cyklu?
Pak to vypíšu do dialogu:
new allquestions[1000];//opět délka - to číslo mě děsí a zdá se mi, že i pawno déle compiluje
format(allquestions,sizeof(allquestions),"1. %s", question[allotq[0]);
format(allquestions,sizeof(allquestions),"%s2. %s", allquestions, question[allotq[1]]);
format(allquestions,sizeof(allquestions),"%s3. %s", allquestions, question[allotq[2]]);
format(allquestions,sizeof(allquestions),"%s4. %s", allquestions, question[allotq[3]]);
format(allquestions,sizeof(allquestions),"%s5. %s", allquestions, question[allotq[4]]);ShowPlayerDialogEx(playerid,0, DIALOG_STYLE_INPUT,"Otázky", allquestions,"Odeslat","Ukončit");
A nakonec zkontroluju odpovědi, když zadám do inputtextu např. a,b,c,a,c
new questionout[][];//tady nevím, jak to bude s velikostmi - myslím, že v prvním poli bude 5 jako pět částí stringu a u druhého nevím
questioncount = strexplode(questionout, inputtext,",");//include strlibif(questioncount !=5)return SCM //špatný formát//A porovnáníif(questionout[0][0]== correctanswer[playerid][0][0])//ta nula v druhém pole u každé podmínky je dobře? Řvalo to, že array must be indexed a snad to i funguje, ale...{//Odpověď na otázku číslo 1 je správně}if(questionout[1][0]== correctanswer[playerid][1][0]){//Odpověď na otázku číslo 2 je správně}if(questionout[2][0]== correctanswer[playerid][2][0]){//Odpověď na otázku číslo 3 je správně}if(questionout[3][0]== correctanswer[playerid][3][0]){//Odpověď na otázku číslo 4 je správně}if(questionout[4][0]== correctanswer[playerid][4][0]){//Odpověď na otázku číslo 5 je správně}
Je to snad vše
Jde mi o:
1) Je tohle efektivní řešení? Nevynalézám kolo?
2) Pomoc s věcmi, u kterých opravdu nevím (viz popisky)
Dal jsem si s tím opravdu práci, abych vše popsal, o co jde a mohli jsme to společně vyřešit, tak i pevně věřím, že se najde někdo ochotný, kdo si dá práci to projít a pomůže mi. Děkuji předem za pomoc všem
Dotaz
ForestCZE 2
Ahoj, mám takový problém. Snažím se udělat losování otázek se správnými odpověďmi. Nějak jsem to sesmolil, ale přijde mi to krkolomné a stále mi něco říká, že by to šlo lépe.
question[0] = "Otázka číslo 1\nA) ano\nB) ne\nC) nevim";
question[1] = "Otázka číslo 2\nA) ano\nB) ne\nC) nevim";
question[2] = "Otázka číslo 3\nA) ano\nB) ne\nC) nevim";
question[3] = "Otázka číslo 4\nA) ano\nB) ne\nC) nevim";
question[4] = "Otázka číslo 5\nA) ano\nB) ne\nC) nevim";
question[5] = "Otázka číslo 6\nA) ano\nB) ne\nC) nevim";
question[6] = "Otázka číslo 7\nA) ano\nB) ne\nC) nevim";
question[7] = "Otázka číslo 8\nA) ano\nB) ne\nC) nevim";
question[8] = "Otázka číslo 9\nA) ano\nB) ne\nC) nevim";
question[9] = "Otázka číslo 10\nA) ano\nB) ne\nC) nevim";
question[10] = "Otázka číslo 11\nA) ano\nB) ne\nC) nevim";
question[11] = "Otázka číslo 12\nA) ano\nB) ne\nC) nevim";
question[12] = "Otázka číslo 13\nA) ano\nB) ne\nC) nevim";
question[13] = "Otázka číslo 14\nA) ano\nB) ne\nC) nevim";
question[14] = "Otázka číslo 15\nA) ano\nB) ne\nC) nevim";
question[15] = "Otázka číslo 16\nA) ano\nB) ne\nC) nevim";
question[16] = "Otázka číslo 17\nA) ano\nB) ne\nC) nevim";
question[17] = "Otázka číslo 18\nA) ano\nB) ne\nC) nevim";
question[18] = "Otázka číslo 19\nA) ano\nB) ne\nC) nevim";
question[19] = "Otázka číslo 20\nA) ano\nB) ne\nC) nevim";
answer[0] = "a";
answer[1] = "a";
answer[2] = "c";
answer[3] = "b";
answer[4] = "c";
answer[5] = "b";
answer[6] = "a";
answer[7] = "c";
answer[8] = "b";
answer[9] = "b";
answer[10] = "a";
answer[11] = "a";
answer[12] = "c";
answer[13] = "a";
answer[14] = "c";
answer[15] = "b";
answer[16] = "a";
answer[17] = "a";
answer[18] = "c";
answer[19] = "c";
Pak potřebuju náhodně vybrat 5 otázek z 20 tak, aby se ve výběru žádná neopakovala:
Pak uložím hráči do proměnné správné odpovědi, abych je později mohl porovnat s těmi, které zadal (v jiném dialogu):
Pak to vypíšu do dialogu:
A nakonec zkontroluju odpovědi, když zadám do inputtextu např. a,b,c,a,c
Je to snad vše
Jde mi o:
1) Je tohle efektivní řešení? Nevynalézám kolo?
2) Pomoc s věcmi, u kterých opravdu nevím (viz popisky)
Dal jsem si s tím opravdu práci, abych vše popsal, o co jde a mohli jsme to společně vyřešit, tak i pevně věřím, že se najde někdo ochotný, kdo si dá práci to projít a pomůže mi. Děkuji předem za pomoc všem
Link to comment
Share on other sites
6 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now