Я пытаюсь запустить мою программу, чтобы запустить пользователя с 20 жизнями, а в то время как Lives больше 0, переверните монету (генератор случайных чисел 0 (хвосты) или 1 (главы)). Каждый раз, когда пользователь получает Heads, он добавляет 1 к счетчику Heads и 1 к Flips counter. Каждый раз, когда пользователь получает Tails, он получает 1 из Lives и добавляет 1 к счетчику Flips. Я думаю, что моя единственная проблема - мой генератор случайных чисел !? Пожалуйста, будь добр, общая n00b :)Генератор случайных чисел C#
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 Coin_Flip_2015
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Random r = new Random(1);
private void cmdFlipCoin_Click(object sender, EventArgs e)
{
int rand = r.Next(1);
int Heads;
int counterFlips;
int Lives;
Lives = 20;
Heads = 0;
counterFlips = 0;
while (Lives > 0)
if (rand == 0)
{
Lives = Lives -= 1;
counterFlips++;
}
else if (rand == 1)
{
Heads = Heads += 1;
counterFlips++;
}
lblFlips.Text = "Flips = " + counterFlips.ToString();
lblHeads.Text = "Heads = " + Heads.ToString();
lblLivesLeft.Text = "Lives Left = " + Lives.ToString();
MessageBox.Show("sorry you are out of lives m8");
}
}
}
В чем проблема? Как это не работает по сравнению с тем, как вы ожидаете? – Dai
В потоках пользовательского интерфейса не должно быть циклов, и вы будете навсегда зацикливаться на том, чтобы ваше приложение перестало отвечать на запросы. –
Начиная с 20 и имея вероятность 50/50, вы никогда не достигнете нуля. – jdweng