duvidas com OO C#

.NET

17/04/2011

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

Curtidas 0

Respostas

Vinicius Vieira

Vinicius Vieira

17/04/2011

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.
GOSTEI 0
POSTAR