duvidas com OO C#

17/04/2011

0

Galera,

e eu tenho uma classe que pega a posição de uma figura no form, gera um numero radomico e soma com essa posição e a mesma e atualizada no form, so que tem um problema quando vou fazer isso com 2 objetos, a minha classe que gera o numero radomico gera o mesmo numero para os 2 objetos porque?

vou deixar aqui o código do aplicativo


# CLASSE CAODECORRIDA

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;



namespace CorridaDeCaes

{

    class CaoDeCorrida

    {

        public int posicaoInicial; // Onde a caixa de imagem inicia;

        public int tamanhoDaPista;

        public PictureBox minhaFigura = null;

        public int posicao;

        public Random radomico;

        int[] mover = { 1, 2, 3, 4,5,6,7,8,9,10,11,12,13,14,15 };

        public bool Correr()

        {

           

            int andar = mover[radomico.Next(mover.Length)];

            if (posicao < 314)

            {

                posicao = posicaoInicial;

            }

            else

            {

                posicao = posicao + andar;

            }

            if (posicao >= 712)

            {

 

                return true;

            }

            else

            {

                return false;

            }

        }

    }

}



#FORMULARIO DA CORRIDA

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing.Imaging;



namespace CorridaDeCaes

{

    public partial class Form1 : Form

    {

        CaoDeCorrida caoBob;

        CaoDeCorrida caoBilly;

        public Form1()

        {

            InitializeComponent();

            caoBob = new CaoDeCorrida();

            caoBilly = new CaoDeCorrida();

            caoBob.posicaoInicial = 314;

            caoBob.minhaFigura = pictureBox2;

            caoBob.minhaFigura.Location = new Point(caoBob.posicaoInicial, 12);

            caoBob.radomico = new Random();



            

            caoBilly.posicaoInicial = 314;

            caoBilly.minhaFigura = pictureBox3;

            caoBilly.minhaFigura.Location = new Point(caoBilly.posicaoInicial, 71);

            caoBilly.radomico = new Random();

        }



        private void button1_Click(object sender, EventArgs e)

        {

            

            while(caoBob.minhaFigura.Location.X < 712 || caoBilly.minhaFigura.Location.X < 712 ) 

            {

                caoBob.Correr(); // Ele gera o mesmo numero para os dois objetos

                int posicao1 = caoBob.posicao;

                caoBob.minhaFigura.Location = new Point(posicao1, 12);

                caoBilly.Correr(); // Ele gera o mesmo numero para os dois objetos

                int posicao2 = caoBilly.posicao;

                caoBilly.minhaFigura.Location = new Point(posicao2, 71);

                if (caoBob.Correr() == true || caoBilly.Correr() == true)

                {

                    if (posicao1 >= 712)

                    {

                        MessageBox.Show("O cão vencedor foi: CÃO BOB! " );

                    }

                    if (posicao2 >= 712)

                    {

                        MessageBox.Show("O cão vencedor foi: CÃO BOLLY! ");

                    }

                }



            }

        }



       



        





    }

}






ALGUEM PODE ME AJUDAR?
Renato Castro

Renato Castro

Responder

Posts

18/04/2011

Vinicius Vieira

Cara esse número randômico, leva em consideração alguns parâmetros para ser gerado que não sei dizer quais são, mas se estiverem iguais para os dois objetos quando você der o next vai retornar um número igual mesmo, ainda mais que o seu rol é pequeno, o ideal seria você fazer o seu algoritmo para gerar o número randômico um que leve em consideração um número de criação do objeto que você pode criar para gerar o número assim você garante que os parâmetros serão diferentes ao fazer a conta que gera seu número randômico.
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