private void CreateNewExample() { var exampleFrequecies = _examples.ToDictionary(exampleDef => exampleDef, exampleDef => _currentMonster != null ? _currentMonster.GetExampleFrequencyByMonster(exampleDef) : exampleDef.Frequency); var examplesForMonster = exampleFrequecies.SelectMany(exampleDefPair => Enumerable.Repeat(exampleDefPair.Key, exampleDefPair.Value)); if (!examplesForMonster.Any()) { MessageBox.Show("Vyber si jiného plyšáka. Tomuto už příklady došly."); } else { var random = new Random(); int randomIndex = random.Next(examplesForMonster.Count()); var exampleDef = examplesForMonster.ToArray()[randomIndex]; _currentExample = exampleDef.CreateExample(random); if (_currentMonster != null) { _currentMonster.UpdateExampleByMonster(_currentExample); //callback na potvoru - muze menit example //TODO tato implementace ma za nasledek, ze zmena zvirete po zadani prikladu se uz neprojevi } labelExample.Text = _currentExample.Text; labelX.Visible = _currentExample.IsEquation; labelEquals.Visible = _currentExample.IsEquation; textBox.Text = ""; textBox.Focus(); UpdateLabelMoney(); pictureBoxMonster.ImageLocation = _image1Location; } }