//Starta nytt spel public void Start() { LaddaResultat(); //Nollställ värden progressBar1.Value = 100; felsvarade.Clear(); korrekta = 0; felaktiga = 0; int antalUppgifter = 21 + nivå * 20; stapelKvar.Nollställ(); stapelKvar.Max = antalUppgifter; //Generera gångeruppgifterna List <Uppgift> allaUppgifter = new List <Uppgift>(); for (int i = 2; i <= 10; i++) { for (int j = 2; j <= 10; j++) { Uppgift uppgift = new Uppgift(i, j); allaUppgifter.Add(uppgift); } } foreach (Uppgift u in allaUppgifter) { Debug.WriteLine(u.Text); } //Slumpa uppgifter till den här omgången while (uppgifterna.Count < antalUppgifter) { int nr = rng.Next(allaUppgifter.Count - 1); uppgifterna.Add(allaUppgifter[nr]); allaUppgifter.RemoveAt(nr); } //Tidtadning tid.Reset(); tid.Start(); //Nedräkningen timer1.Start(); //Starta spelet NästaUppgift(); }
//Välj nästa uppgift private void NästaUppgift() { Debug.WriteLine(uppgifterna.Count); //Det finns uppgifter i båda listorna if (felsvarade.Count > 0 && uppgifterna.Count > 0) { //20 procents chans att hämta uppgift ur fellistan if (rng.Next(5) == 0) { lblUppgift.ForeColor = Color.Blue; int nr = rng.Next(felsvarade.Count - 1); currentUppgift = felsvarade[nr]; felsvarade.RemoveAt(nr); } //Vanlig uppgift else { currentUppgift = uppgifterna[0].Copy(); uppgifterna.RemoveAt(0); } } //Det finns uppgifter i uppgiftslistan else if (uppgifterna.Count > 0) { currentUppgift = uppgifterna[0].Copy(); uppgifterna.RemoveAt(0); } //Det finns uppgifter i fellistan else if (felsvarade.Count > 0) { lblUppgift.ForeColor = Color.Blue; int nr = rng.Next(felsvarade.Count - 1); currentUppgift = felsvarade[nr]; felsvarade.RemoveAt(nr); } //Inga uppgifter kvar else { S**t(); } lblUppgift.Text = currentUppgift.Text; lblSvar.Text = string.Empty; }