Diskuze: Metoda bez opakování???
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 21 zpráv z 21.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Mohl bys poslat cely kod? Nevytvaris nahodou opakovane instanci tridy Random? Kdyz ji vytvoris jednou, tak by to melo splnit co, co pozadujes...
Teda, samozrejme zalezi na tom, jak to mas udelane, ale pokud bys to projizdel cyklem, tak by to teoreticky fungovat mohlo, jak jsem ti psal... Posli kod
Nebo me jeste napada, cyklus na generovani otazek napis tak, aby "i < pocetOtazek" a v tele cyklu volej ten random
Tady jsem to trochu zkratil a změnil názvy, aby to bylo srozumitelný.
Zkopiruj to cele a hod to tady do code...
Myslíš celou třídu? Mám to strašně dlouhý.. mělo by to být z obrázku srozumitelný ne? Nebo napiš co konkrektně potřebuješ a pošlu
Proc to nechces vlozit cele? CTRL A, CTRL C a CTRL V, ale vlozis to do CODE.
Protože v tom přeci nemám jen tohle. Nevyznal by ses v tom, nebo by ti to trvalo aspon hodinu, protože je to strašně dlouhý. Tak počkej nějak to zkrátím at je tam jen to duležitý.
Tak si na začátku třeba vlož všechny ty otázky do nějakého listu a náhodně generuj index, kterým se k nim dostaneš. Aby se neopakovaly, můžeš je po použití z toho listu oddělat.
Klidne to posli cele, vzdyt o nic nejde. Ja ti to neukradu.
Nebojím se toho abys mi to ukradl spiš chci abys to chápal... nechal jsem tam jen to duležité.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Quiz
{
public partial class Vsechno : Form
{
public Vsechno()
{
}
int i = 30;
private void Vsechno_Load(object sender, EventArgs e)
{
novaOtazka();
}
private void timer1_Tick(object sender, EventArgs e)
{
i = 30;
novaOtazka();
}
if(od1.BackColor = Color.Green)
{
i = 30;
novaOtazka();
}
if (od2.BackColor == Color.Green)
{
i = 30;
novaOtazka();
}
if (od3.BackColor == Color.Green)
{
i = 30;
novaOtazka();
if (od4.BackColor == Color.Green)
{
i = 30;
novaOtazka();
}
}
i--;
label2.Text = Convert.ToString(i);
if (label2.Text == "0")
{
timer1.Stop();
MessageBox.Show("Je mi líto, vypršel Vám čas");
}
}
void novaOtazka()
{
od1.Visible = true;
od2.Visible = true;
od3.Visible = true;
od4.Visible = true;
label3.Visible = false;
label4.Visible = false;
label5.Visible = false;
pictureBox1.Visible = false;
od1.BackColor = Color.Navy; //Po další otazce se barva buttonu samo
nezmění
od2.BackColor = Color.Navy;
od3.BackColor = Color.Navy;
od4.BackColor = Color.Navy;
Random rd = new Random();
int otazka = rd.Next(1, 3);
OtazkyVsechno o = new OtazkyVsechno(textBox1, od1, od2, od3, od4, volani, hlaslidu, padepade, pictureBox1, volanix, label3, label5, hlaslidux, padepadex);
if (otazka == 1) o.Otazky("Kolik je 5+5", "7", "10", "12", "14", od2);
if (otazka == 2) o.Otazky("kolik je 1+1 ", "1", "2", "3", "4", od2);
}
}
}
Je to špatně navržené. Nejlépe budeš potřebovat třídu Question,
která se ti postará o logiku otázky. V samotném okně kvízu bude
List<Question>, do kterého při inicializaci dáš všechny otázky co
chceš.
Náhodný výběr provedeš třeba:
private Question GetRandomQuestion()
{
int index = random.Next(questions.Count);
Question ret = questions[index];
questions.Remove(ret);
return ret;
}
Toto neni prvni vlakno, kde resi tu samou vec. Radil jsem mu to uz nekolikrat a pote i do zprav...
Pominu-li fakt, ze tady mas vice uctu:
http://www.itnetwork.cz/portfolio/35848
tak jsi to resil uz tady:
http://www.itnetwork.cz/csharp/diskuzni-forum-c-sharp-visual-studio-net-xna/random-ze-tridy-objektu-56fab3464d7c4
a bylo vice lidi, kteri ti radili to same co ja, tak chyba bude asi jinde
Vždyt se Jakub Bořucký před tím ptál, na to jak udělat aby se mu otázky vůbec změnily, ne aby se neopakovaly. Já se nyní ptám co udělat, aby se otázky neopakovaly. Hádát se tu nehodlám, slušně jsem se zeptal, je to pro mě důležitější než si asi myslíš, pokud ti tak vadím tak si mě blokni.
Vzdyt ses tady prozradil...
http://www.itnetwork.cz/csharp/diskuzni-forum-c-sharp-visual-studio-net-xna/if-button-click--56f44ed23f7a4?all-comments
Ja spise nechapu, proc neposlechnes druhe a neudelas to tak, protoze to delas
zbytecne slozite...
Ja se vubec nehadam,takze klidek.
Koukám, že má tady někdo opravdu nudný život, že to všechno prohledáváš Chápeš, že tu aplikaci nedělám pro sebe, ale je to můj ukol a ten ukol má taky nějaký zádání? Zatím jsem poslechl každou rozumnou radu, od tebe jsem bohužel zatím žadnou rozumnou radu nedostal, tak nechápu co to meleš. Napišeš, že neposlouchám druhý a pak mi řikáš, že jsem se prozdrail tím, že jsem použil to co mi ostatní poradili. Nekaž mi zbytečně náladu a přestan mi psát, nemám tolik času se tu s tebou dohadovat. Měj se.
Oproti tvemu nudny urcite nebude, jen mi prijde stupidni si tady zakladat nekolik uctu. Ja chapu, ze mas vztek, ale nemusis si jej vybijet zrovna zde.
To prozrazeni bylo samozrejme mysleno tak, ze tam odepisujes ze dvou uctu. Navic se te tam jeste nekdo ptal, zda je to tve alterego.
At to vyresis.
Zobrazeno 21 zpráv z 21.