Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[c#]Moze li neko da mi pomogne da spojim dva igraca-objekta

[es] :: .NET :: .NET Desktop razvoj :: [c#]Moze li neko da mi pomogne da spojim dva igraca-objekta

[ Pregleda: 2122 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.co.yu.



+2 Profil

icon [c#]Moze li neko da mi pomogne da spojim dva igraca-objekta11.08.2007. u 21:56 - pre 203 meseci
Problem je sto nemam ideju kako da kada se glavna petlja programa izvrti, da mogucnost drugom igracu da odigra potez?
Code:

namespace SnowballNamespace
{
    class MainMenu
    {
        int range;
        string name;
        Fighter player1;
        OtherFighter player2;
       
        bool keepGoing = true;


        public int DoMenu()
        {
            int choiceL;
            Console.WriteLine("razdaljine = {0}", range);
            Console.WriteLine("{0} ime {1} grudve!",player1.name, player1.snowballs);
            Console.WriteLine("{0} ima {1} grudve!", player2.name, player2.snowballs);
            Console.WriteLine();
            Console.WriteLine("0) izlaz");
            Console.WriteLine("1) napravi grudvu");
            Console.WriteLine("2) pridji");
            Console.WriteLine("3) pobegni");
            Console.WriteLine("4) gadjaj");
            Console.WriteLine("Izbaeri akciju");
            choiceL = int.Parse(Console.ReadLine());
            return choiceL;

        }
        public MainMenu()
        {
            Console.WriteLine("Ime prvog igraca?");
            name = Console.ReadLine();
            player1 = new Fighter(name);

            Console.WriteLine("Ime drugog igraca?");
            name = Console.ReadLine();
            player2 = new OtherFighter(name);

            range = 10;

            while (keepGoing == true)
            {
                int choice;
                choice = DoMenu();
                switch (choice)
                { 
                    case 0:
                        Console.WriteLine("izlazim");
                        keepGoing = false;
                        break;
                    case 1:
                        Console.WriteLine("{0} pravim grudvu", player1.name);
                        player1.snowballs++;
                        break;
                    case 2:
                        Console.WriteLine("prilazim");
                        range--;
                        if (range < 0)
                        {
                            range = 0;
                        }
                        break;
                    case 3:
                        Console.WriteLine("beziiim");
                        range++;
                        break;
                    case 4:
                        if (player1.throwSnow(range))
                        {
                            Console.WriteLine("pogodili ste {0}", player2.name);
                        }
                        else
                        {
                            Console.WriteLine("promasili ste {0}", player2.name);
                        }
                        break;
                    default:
                        Console.WriteLine("trazili ste {0}", choice);
                        break;

                }
                     
            }
            
    
        }
        

        static void Main(string[] args)
        {
            MainMenu mn = new MainMenu();
        }
    }
}


Code:

namespace SnowballNamespace
{
    class Fighter
    {
        private int pStrength;
        private int pSnowBalls;
        private string pName;

        public int strength
        {
            get { return pStrength; }
            set { pStrength = value; }
        }
        public int snowballs
        {
            get { return pSnowBalls; }
            set { pSnowBalls = value; }
        }
        public string name
        {
            get { return pName; }
            set { pName = value; }
        }

        public Fighter(string f_name) //constructor
        {
            snowballs = 3;
            strength = 3;
            name = f_name;
        }

        //***********************
        //grudvanje moze da pocne
        //***********************

        public bool throwSnow(int range)
        {
            bool hit = false;
            int myRoll;
            Random roller = new Random();

            if (snowballs <= 0)
            {
                Console.WriteLine("{0} is out of snowballs!", name);
            }
            else
            {
                myRoll = roller.Next(10);
                if (myRoll > range)
                {
                    hit = true;
                }
                snowballs--;
            }
            return hit;
        }

    }
}


Code:

namespace SnowballNamespace
{
    class OtherFighter : Fighter
    {
        public OtherFighter(string f_name) : base(f_name) { }
    }
}


 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.185.eunet.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: [c#]Moze li neko da mi pomogne da spojim dva igraca-objekta12.08.2007. u 13:56 - pre 203 meseci
Sad nisam baš razumeo zašto je to problem... Jel se igra po principu "prvi igrač napravi potez pa drugi igrač napravi potez"? Pošto je način na koji implementiraš DoMenu() funkciju takav da ne dozvoljava drugačiji pristup, onda mora da jeste "potezna igra"...

A u tom slučaju sve što treba da uradiš jeste da u while petlji dodaš još jednom sve ono što si već dodao, ali sada da se sve to odnosi na drugog igrača. Ono što bi bilo dobro da uradiš, radi smanjenja veličine koda, jeste da napraviš f-ju koja će da uzima pokazivač na Fighter i koja će da sadrži sve što se sada nalazi u while-u.
I onda, u while petlji samo dva puta pozoveš tu funkciju - po jednom za svakog igrača.

As simple as that :)
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: [c#]Moze li neko da mi pomogne da spojim dva igraca-objekta

[ Pregleda: 2122 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.