estrutura decisoes usando messageBox

27/09/2015

0

eu tentei colocar um if para comparar com o numero três e outo para comparara decisão messageBox, mas estava dando um erro
então resolvi colocar tudo em um if

eu quero limitar a quantidade de clicks no botão


o que esta errado ou que estou fazendo não existe.


if (clicarBotao == 3 && MessageBox.Show("foram três tentativas, Deseja Continuar?",MessageBoxButtons.YesNo == DialogResult.No))
{

bloco de instruçoes
}
Responder

Posts

27/09/2015

Val

Olá pessoal consegui fazer com dois ifs (o programa gera dois números aleatórios e a soma tem que da 7, mas só há três tentativas)
O professor disse que precisava colocar um contador

gostaria muito de entender esta parte do código, do contador. Eu sei que é uma duvida primaria, mas quero entender o que faz linha a linha..o porque de tudo

o que faz o contador na ultima linha.?depois do else?

Como disse estou começando agora se alguém poder me ajudar

obrigada

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

textBox1.Text = r.Next(1, 10).ToString();
textBox2.Text = r.Next(1, 10).ToString();
soma = Convert.ToInt32(textBox1.Text) + Convert.ToInt32(textBox2.Text);

if (soma == 7)
{
MessageBox.Show("Ganhou");
}

if (clicarBotao == 3)
{
button1.Enabled = false;

if (MessageBox.Show("Limite de tres. Deseja continuar?", "atençao", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
button1.Enabled = true;
textBox2.Clear();
textBox1.Clear();
}
else
{
Application.Exit();


}
}
else
{
clicarBotao++;


}

}
Responder

28/09/2015

Hector Figueroa

Boas Val, quando você colocar algum codigo aqui no forum e bom colocar com a tag pra ficar assim (ela se encontra no canto superior esquerdo do editor de texto) pra ficar assim olha :

textBox1.Text = r.Next(1, 10).ToString();
textBox2.Text = r.Next(1, 10).ToString();
soma = Convert.ToInt32(textBox1.Text) + Convert.ToInt32(textBox2.Text);

if (soma == 7)
{
	MessageBox.Show("Ganhou");
}

if (clicarBotao == 3)
{
	button1.Enabled = false;

	if (MessageBox.Show("Limite de tres. Deseja continuar?", "atençao", MessageBoxButtons.YesNo) == DialogResult.Yes)
	{
		button1.Enabled = true;
		textBox2.Clear();
		textBox1.Clear();
	}
	else
	{
	  Application.Exit();
	}
}
else
{
   clicarBotao++;
}


o ++ significa que ele esta acrescetando +1 ao valor do contador.
Responder

28/09/2015

Nathan Aguiar

Olá Val, eu não sei se entendi o seu problema, mas pelo que entendi, toda vez que o contador do botãoClick for maior que 3 ele deve exibir a mensagem para ver se a pessoa quer continuar a jogar correto?
Eu fiz a minha releitura do seu código, veja se isso te atende:

MainWindow.xaml
<Window x:Class="ajudaDevMedia.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ajudaDevMedia"
        mc:Ignorable="d"
        Title="DevMedia" Height="211" Width="414">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="46*"/>
            <ColumnDefinition Width="157*"/>
        </Grid.ColumnDefinitions>
        <StackPanel HorizontalAlignment="Left" Height="160" Margin="10,10,0,0" VerticalAlignment="Top" Width="386" Grid.ColumnSpan="2">
            <TextBlock x:Name="txbN1" TextWrapping="Wrap" Text="Número 1"/>
            <TextBox x:Name="txtN1" Height="22" TextWrapping="Wrap" Text="" TextAlignment="Center"/>
            <Rectangle Height="22" Opacity="0"/>
            <TextBlock x:Name="txbN2" TextWrapping="Wrap" Text="Número 2"/>
            <TextBox x:Name="txtN2" Height="22" TextWrapping="Wrap" Text="" TextAlignment="Center"/>
            <Rectangle Height="22" Opacity="0"/>
            <Button x:Name="btnNovo" Content="Novo" Click="btnNovo_Click"/>
        </StackPanel>
    </Grid>
</Window>


MainWindow.xaml.cs
using System;
using System.Windows;


namespace ajudaDevMedia
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public int clickBotao = 0;
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnNovo_Click(object sender, RoutedEventArgs e)
        {
            Random r = new Random();

            txtN1.Text = r.Next(1, 10).ToString();
            txtN2.Text = r.Next(1, 10).ToString();

            int Soma = Convert.ToInt32(txtN1.Text) + Convert.ToInt32(txtN2.Text);

            if (Soma == 7)
            {
                MessageBox.Show("Você ganhou!!!");
            }
            else if (clickBotao >= 3)
            {
                if (MessageBox.Show("Você não acertou, mas pretende continuar?", "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
                {
                    Close();
                }
            }
            else
            {
                clickBotao++;
            }
        }
    }
}


Eu não vi a necessidade de bloquear os botões e muito menos de limpar os campos, pois, uma vez você colocando o gerador do número antes da leitura ele já irá pegar os novos valores e calcular com base neles, e no caso do bloqueio dos botões, o messagebox ele, enquanto estiver aberto irá sozinho bloquear enquanto tu não fizer uma escolha.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar