» »

križci krožci c #

križci krožci c #

«
1
2

majster123 ::

Naredil sem igro križci krožci v c #. Problem je da moram narediti proti računalniku, a jaz sem naredil na 2 človeška igralca. Zdaj nevem kako bi naredil proti računalniku...


Koda:

class Program
    {
      class KrizciKrozci
      {
          
        // deklaracija dvodimenzionalnega polja oziroma igralnega polja
        public int[,] polje = new int[3, 3];


        // vsem vrednostim v polju dodelimo vrednost 0
        public void izprazniTabelo()
        {
            // zanka za vrstice
            for (int i = 0; i < 3; i++)
            {
                // zanka za stolpce
                for (int j = 0; j < 3; j++)
                {
                    // dodelimo vrednost 0
                    polje[i, j] = 0;
                }
            }
        }

        public void izrisiTabelo()
        {
            // premik kurzorja v novo vrstico
            Console.WriteLine();
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    // če je vrednost obeh indeksov enaka 1 izrišemo križec, če 2 krogec, če pa nič od tega pa nič
                    if (polje[i, j] == 1)
                    {
                        Console.Write("X");
                    }
                    else if (polje[i, j] == 2)
                    {
                        Console.Write("O");
                    }
                    else
                    {
                        Console.Write("#");
                    }
                    Console.Write(" "); // presledek med vrsticami
                }
                Console.WriteLine();  // kurzor v novo vrstico
            }
            Console.WriteLine(); // kurzor v novo vrstico
        }

        public void vpisi(bool NaVrstiJe)
        {
            int a;
            int b;

            repeat: // za goto zanko

            // v primeru da je na vrsti prvi igralec
            if(NaVrstiJe == true)
            {
                Console.WriteLine("Igralec 1: Vpiši koordinate:");
            }
            else
            {
                Console.WriteLine("Igralec 2: Vpiši koordinate: "); // drugi igralec
            }
            a = int.Parse(Console.ReadLine());

            b = a % 10;

            a = a / 10; // priredimo vrednost a-ja b-ju in vrednost b-ja a-ju

            if(a < 0 || a > 3 || b < 0 || b > 3)
            {
                Console.WriteLine("Napaka!");
                goto repeat; // goto zanka
            }
            else
            {
                if(polje[(a-1), (b-1)] != 0)
                {
                    Console.WriteLine("Vnesi koordinate!");
                    goto repeat;
                }

            }
            // na vrsti prvi igralec
            if(NaVrstiJe == true)
            {
                polje[(a - 1), (b - 1)] = 1;
            }
                // na vrsti drugi igralec
            else
            {
                polje[(a - 1), (b - 1)] = 2;
            }

            



        }

        public bool preveriZmagovalca(bool naVrstiJe)
        {
            int igralec;

            if(naVrstiJe == true)
            {
                igralec = 1;
            }
            else
            {
                igralec = 2;
            }


            for(int i = 0; i < 3; i++)
            {
                // ali se vrstice ujemajo
                if(polje[i, 0] == igralec && polje [i,1] == igralec && polje[i,2] == igralec )
                {
                    return false;
                }
                // ali se stolpci ujemajo
                
                if(polje[0,i] == igralec && polje[1,i] == igralec && polje [2,i] == igralec)
                {
                    return false;
                }
            }
                // ali se vrednosti diagonalno ujemajo
                if(polje[0,0] == igralec && polje[1,1] == igralec && polje[2,2] == igralec)
                {
                    return false;
                }
                if(polje[0,2] == igralec && polje[1,1] == igralec && polje[2,0] == igralec)
                {
                    return false;
                }
                return true;

            }
        }


        static void Main(string[] args)
        {
            // deklaracija spremenljivk
            bool naVrstiJe = true;
            bool game = true;
            // inicializacija
            KrizciKrozci krizci = new KrizciKrozci();

            krizci.izprazniTabelo(); // klic funkcije za izpraznitev tabele

            while(game == true)
            {
                krizci.vpisi(naVrstiJe); // klic funkcije za vpis vrednosti
                krizci.izrisiTabelo(); // klic funkcije za izris

                game = krizci.preveriZmagovalca(naVrstiJe); // klic funkcije, ki preveri zmagovalca

                if(naVrstiJe == true)
                {
                    naVrstiJe = false;
                }
                else
                {
                    naVrstiJe = true; // če je obratno je vrednost true
                }
            }

            if(naVrstiJe == true)
            {
                Console.Write("Drugi igralec:");
            }
            else
            {
                Console.Write("Prvi igralec:");
            }
            Console.WriteLine("Zmagali ste!");

            Console.ReadLine();

        }
    }
}

Ciklamen ::

Zakaj ne uporabiš značk, ki so za to, da oblikuješ kodo na forumu.. Tole je pain in the ass za brat :)
- End of the Post ->

FrEaKmAn ::

pa je treba kakšna UI ali simpl random?

majster123 ::

Proučite pravila igre "Križci-krožci" (Tic-tac-toe) ter izdelajte program, ki bo igralcu omogočil igranje te igre proti računalniku.

Igra se na tabli dimenzije 3x3 polj. Igralec in računalnik izmenično podajata koordinati polja, kamor postavita naslednji križec ali krožec (računalnik naj pri svoji potezi naključno izbere eno izmed še praznih polj). Po vsaki potezi program posodobi (na novo izriše) igralno tablo. Ko eden izmed njiju doseže "tri v vrsto" (po vrsticah, stolpcih ali diagonalah) se izpiše zmagovalca. V primeru neodločenega izida se naj izpiše "Neodločen izid!".

Po koncu vsake igre vprašajte uporabnika, če želi igrati še eno igro. V primeru, da uporabnik želi končati z igranjem, naj se mu izpiše statistika doseženih zmag (število zmag uporabnika, število vseh odigranih iger ter procent uporabnikovih zmag). Igre z neodločenim izidom pri statistiki štejte zraven samo pri vseh odigranih igrah, pri zmagah pa ne.

stb ::

majster123 je izjavil:

(računalnik naj pri svoji potezi naključno izbere eno izmed še praznih polj)

Hja, neka huda pamet ni zahtevana :D
Računalnik naj pač na slepo strelja na prazna polja in vsakič preverja če je slučajno zmagal.
Tudi če ima računalnik že dva v vrsti in prazno tretje polje za postavitev tretjega v vrsto po striktni interpretaciji teh navodil ne sme pametno izbrati tega polja in končati igre, ampak mora izbrati naključno polje. ;((

Če kljub jasnemu kršenju navodil vseeno hočeš nekaj pameti: Ta igra ima tako majhno število polj, da lahko računalnik vsakič preigra vse mogoče variante nadaljevanja igre in izbere najbolj optimalno (=takšno, kjer je verjetnost za njegovo zmago največja)

Zgodovina sprememb…

  • spremenil: stb ()

galu ::

Tole sem delal pred slabim letom dni:

JSFiddle (CPU vs User), SRC (CPU vs User in CPU vs CPU).

Note: FF in IE nekej čarata s tranzicijami.

Mogoče bo komu kdaj prav prišlo ali pa mu bo morda celo zanimivo.

P.S.
Tic Tac Toe se da precej zlahka narediti "nezgubljiv": http://www.wikihow.com/Win-at-Tic-Tac-T...
Tako to gre.

roko granata ::

http://www.ntu.edu.sg/home/ehchua/progr...

na tej strani boš našel case study za igrico tic tac toe (križci krožci). Sicer napisan v javi, a ker potrbuješ le flow programa, si lahko brez težav pomagaš s tem primerom - Java in C# sta si po sintaksi izredno podobna.

Če pa si lahko dovolim pokomentirati še tvoj pristop - na nobeni strani, ki si jo lahko zamisliš (stack overflow ipd.), ti ne bo nihče dal odgovora, ki ga iščeč. Torej napisano kodo s tvojimi spremenljivkami in tvojim frameworkom. Ljudje to razumejo kot lenobo, kar resnici na ljubo tudi je. Če zares razumeš (ne da si le prepisoval kodo), kar je napisano, ti implenetacija enostavnega (in res je enostaven glede na navodila) AI-ja za potrebe igre križcev in krožcev ne bi smela predstavljati problema :/

Zgodovina sprememb…

roko granata ::

Yacked2 ::

Rabiš char array 9tih polj, kamor boš shranjeval trenutno stanje, če se bo na določeno polje vsedel CPU na to polje shraniš črko C, če je uporabnik pa U, če je polje prazno pusti prazno. Rabiš funkcijo check, ki preveri array in 0 ali 1, odvisno od tega a je nekdo zmagal(to naredi tako, da prečekira polja v arrayu podolgem in počez),če vrne zmagovalca se igra ustavi, potem rabiš funkcijo CPUPlay, ki pogleda katera polja so še prazna in naključno se vsede na enga. Nato pa še funkcija UserPlay, ki pogleda katera polja so prazna, nato pa uporabnik izbere ustreznega. Aja za konec pa še funkcija izpis, ki izpiše array v ustreznem formatu, verjetno 3x3, nato pa v mainu lepo po vrsti kličeš funkcije v while zanki:

bool zmaga = False;
char[] polja = new char[9];
while(!zmaga)
{
   CPUPlay(polja);
   Izpis(polja);
   char a = check(polja);
   if(a == '0')
   {
      UserPlay(polja);
      Izpis(polja);
      char b = check(polja);
      if(b !=0)
      {
          Console.WriteLine("Zmagovalec je uporabnik");
          zmaga = True;
      }
   }
   else
   {
      Console.WriteLine("Zmagovalec je CPU");
      zmaga = True;
   }
}
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Zgodovina sprememb…

  • spremenil: Yacked2 ()

nevone ::

N
aredil sem igro križci krožci v c #. Problem je da moram narediti proti računalniku, a jaz sem naredil na 2 človeška igralca. Zdaj nevem kako bi naredil proti računalniku...


Povsem preprosto. Vnos koordinat za drugega igralca, nadmesti z določanjem random koordinat (Povej, če ne veš kako se to naredi). To je vse. Nikjer v nalogi ne piše, kako pameten mora biti računalnik, proti kateremu igraš.

o+ nevone
Either we will eat the Space or Space will eat us.

Yacked2 ::

Evo narejeno:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _3x3
{
    class Program
    {
        static void Main(string[] args)
        {
            bool zmaga = false;
            char[] polja = new char[9];
            //char[] dump = CPUPlay(polja);

            while (!zmaga)
            {
                polja = CPUPlay(polja);
                zmaga = check(polja,'C');
                izpis(polja);
                if (zmaga == false)
                {
                    polja = UserPlay(polja);
                    zmaga = check(polja, 'U');
                    izpis(polja);
                    if (zmaga == true)
                    {
                        Console.WriteLine("Zmagali ste!");
                    }
                }
                else
                {
                    Console.WriteLine("Zmagal je racunalnik");
                }
            }

           
            Console.ReadLine();
        }
        private static char[] CPUPlay(char[] polja)
        {
            List<int> free = new List<int>();
            for(int i=0;i<polja.Length;i++)
            {
                if(polja[i] == default(char) || polja[i] != 'U' || polja[i] != 'C')
                {
                        free.Add(i);

                }
            }
            Random rnd = new Random();
            int choosen = rnd.Next(0, free.Count-1);
            polja[choosen] = 'C';

            return polja;
        }

        private static char[] UserPlay(char[] polja)
        {
            List<int> free = new List<int>();
            for (int i = 0; i < polja.Length; i++)
            {
                if (polja[i] == default(char))
                {
                    free.Add(i);
                }
            }
            Console.WriteLine(string.Join(",",free));
            while(true)
            {
                int a = Int32.Parse(Console.ReadLine());
                if (free.Contains(a))
                {
                    polja[a] = 'U';
                    break;
                }
            }
           

            return polja;
        }

        private static bool check(char[] polja, char igralec)
        {
            if (polja[0] == igralec && polja[1] == igralec && polja[2] == igralec)
            {
                return true;
            }
            if (polja[3] == igralec && polja[4] == igralec && polja[5] == igralec)
            {
                return true;
            }
            if (polja[6] == igralec && polja[7] == igralec && polja[8] == igralec)
            {
                return true;
            }
            if (polja[0] == igralec && polja[3] == igralec && polja[6] == igralec)
            {
                return true;
            }
            if (polja[1] == igralec && polja[4] == igralec && polja[7] == igralec)
            {
                return true;
            }
            if (polja[2] == igralec && polja[5] == igralec && polja[8] == igralec)
            {
                return true;
            }
            if (polja[0] == igralec && polja[4] == igralec && polja[8] == igralec)
            {
                return true;
            }
            if (polja[2] == igralec && polja[4] == igralec && polja[6] == igralec)
            {
                return true;
            }
            return false;
        }

        private static  void izpis(char[] polja)
        {
            char[] backup = new char[9];
            Array.Copy(polja, backup, 9);

            for (int i = 0; i < backup.Length; i++)
            {
                if (backup[i] == default(char))
                {
                    backup[i] = 'X';
                }
            }
            for (int i = 1; i <= backup.Length; i++)
            {
                if (i % 3 == 0)
                {
                    Console.Write(backup[i - 1]);
                    Console.WriteLine();
                }
                else
                {
                    Console.Write(backup[i - 1]);
                }
            }
            Console.WriteLine();
        }
        
        
    }
}
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

majster123 ::

hvala vsem!

Yacked2 ::

Malo bolj pametna izbira CPUja:

private static char[] CPUPlay(char[] polja)
        {
            List<int> free = new List<int>();
            for(int i=0;i<polja.Length;i++)
            {
                if(polja[i] == default(char) && (polja[i] != 'U' || polja[i] != 'C'))
                {
                        free.Add(i);

                }
            }

            //izbira napada
            for(int i=0; i < free.Count;i++)
            {
                char[] backup = new char[9];
                Array.Copy(polja, backup, 9);
                backup[free.ElementAt(i)] = 'C';
                bool preveri = check(backup,'C');
                if (preveri)
                {
                    return backup;
                }
            }
            //izbira obrambe
            for (int i = 0; i < free.Count; i++)
            {
                char[] backup = new char[9];
                Array.Copy(polja, backup, 9);
                backup[free.ElementAt(i)] = 'U';
                bool preveri = check(backup, 'U');
                if (preveri)
                {
                    backup[free.ElementAt(i)] = 'C';
                    return backup;
                }
            }
            Random rnd = new Random();
            int choosen = rnd.Next(0, free.Count-1);
            polja[free.ElementAt(choosen)] = 'C';

            return polja;
        }


Najprej pogleda ali lahko zmaga, če ne more, pogleda ali ti lahko prepreči zmago, drugače izbira naključno.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

majster123 ::

zanima me še sledeče... ker nesmemo uporabljat kompleksnih metod .NET-a, bi rad vedel kako se implementirata array.copy pa string.join ? :)

Yacked2 ::

majster123 je izjavil:

zanima me še sledeče... ker nesmemo uporabljat kompleksnih metod .NET-a, bi rad vedel kako se implementirata array.copy pa string.join ? :)


z zanko se sprehodi čez cel array in z posameznimi elementi delaj kar hočeš (sestavljaj string, oz sestavljaj nov array)
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Zgodovina sprememb…

  • spremenil: Yacked2 ()

majster123 ::

ok polja mi je uspelo kopirat sam z nizi mi pa ni uspelo.. :)

hočem list pretvorit v niz znakov :D

Zgodovina sprememb…

Vesoljc ::

kaksna je razlika med poljem in nizem?
Abnormal behavior of abnormal brain makes me normal...

majster123 ::

namesto tak: Console.WriteLine(string.Join(",", list)); sem probal tak:
for (int i = 0; i < array.Length; i++)
{

string s = "," + list;
Console.WriteLine(s);
}

stb ::

majster123 je izjavil:

namesto tak: Console.WriteLine(string.Join(",", list)); sem probal tak:
for (int i = 0; i < array.Length; i++)
{

string s = "," + list;
Console.WriteLine(s);
}


for (int i = 0; i < list.Length; i++)
{

string s = "," + list[i];
Console.WriteLine(s);
}

Ali je bolj eleganten foreach tudi prepovedan?
pa znebiti se boš hotel odvečne vodilne vejice v izpisu.

majster123 ::

hvala, vredu je :D

Yacked2 ::

stb je izjavil:

majster123 je izjavil:

namesto tak: Console.WriteLine(string.Join(",", list)); sem probal tak:
for (int i = 0; i < array.Length; i++)
{

string s = "," + list;
Console.WriteLine(s);
}


for (int i = 0; i < list.Length; i++)
{

string s = "," + list[i];
Console.WriteLine(s);
}

Ali je bolj eleganten foreach tudi prepovedan?
pa znebiti se boš hotel odvečne vodilne vejice v izpisu.


Za vejico lahko narediš znotraj for zanke en if stavek, ki preveri če je i=0 potem jo izpisti, drugače pa jo dodaja.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Janac ::

Eno vprašanje, ki se ne navezuje na temo ampak tudi ni vredno za novo temo.

Torej v Cju v šoli programiramo od marca. Letos, v novem letniku smo septembra dobili 50 nalog iz C-ja, rešil sem vse naloge popolnoma sam z ramišljanjem, in ne nekateri moji sošolci, ki vse naloge prepisali. Že takrat sem po dvema tednoma POPOLNOMA pozabil vse strukture, novembra smo dobili tudi 50 nalog, sem se ponovno naučil(imel sem občutek da se učim prvič), sem se naučil, ampak zgodba ostaja enaka. Po dveh tednih, treh se težko spomnim da moram importat include stdio.h knjižnico...je to normalno? nalog nisem ršeil v enem tednu ampak vedno vsaj 2 tedna...nasplošno imam zelo slab spomin, sploh v zadnjih 2-3letih.

Povejte mi vaše izkušnje...lepo prosim.

m0LN4r ::

ADHD, CDD
https://ref.trade.re/38mvdvxm
Trade Republic 38MVDVXM

amacar ::

Janac je izjavil:

Eno vprašanje, ki se ne navezuje na temo ampak tudi ni vredno za novo temo.

Torej v Cju v šoli programiramo od marca. Letos, v novem letniku smo septembra dobili 50 nalog iz C-ja, rešil sem vse naloge popolnoma sam z ramišljanjem, in ne nekateri moji sošolci, ki vse naloge prepisali. Že takrat sem po dvema tednoma POPOLNOMA pozabil vse strukture, novembra smo dobili tudi 50 nalog, sem se ponovno naučil(imel sem občutek da se učim prvič), sem se naučil, ampak zgodba ostaja enaka. Po dveh tednih, treh se težko spomnim da moram importat include stdio.h knjižnico...je to normalno? nalog nisem ršeil v enem tednu ampak vedno vsaj 2 tedna...nasplošno imam zelo slab spomin, sploh v zadnjih 2-3letih.

Povejte mi vaše izkušnje...lepo prosim.


Glede na to, kakše "rešitve" si lepil je bolj izgledalo kot da si jih rešil s poskušanjem ne pa razmišljanjem.

Sicer pa glede includov pa takih for, js tud že 5 let programiram, pa vsakič skopiram kodo z neta za openfiledialog ali pa include, ker itak ne rabiš vedet na pamet.

Yacked2 ::

Janac je izjavil:

Eno vprašanje, ki se ne navezuje na temo ampak tudi ni vredno za novo temo.

Torej v Cju v šoli programiramo od marca. Letos, v novem letniku smo septembra dobili 50 nalog iz C-ja, rešil sem vse naloge popolnoma sam z ramišljanjem, in ne nekateri moji sošolci, ki vse naloge prepisali. Že takrat sem po dvema tednoma POPOLNOMA pozabil vse strukture, novembra smo dobili tudi 50 nalog, sem se ponovno naučil(imel sem občutek da se učim prvič), sem se naučil, ampak zgodba ostaja enaka. Po dveh tednih, treh se težko spomnim da moram importat include stdio.h knjižnico...je to normalno? nalog nisem ršeil v enem tednu ampak vedno vsaj 2 tedna...nasplošno imam zelo slab spomin, sploh v zadnjih 2-3letih.

Povejte mi vaše izkušnje...lepo prosim.


Objavi naloge pa ti jih lahko rešim, samo ne v Cje ker ga neznam. Lahko pa c#, java, php, python itd..
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Janac ::

Yacked2 je izjavil:

Janac je izjavil:

Eno vprašanje, ki se ne navezuje na temo ampak tudi ni vredno za novo temo.

Torej v Cju v šoli programiramo od marca. Letos, v novem letniku smo septembra dobili 50 nalog iz C-ja, rešil sem vse naloge popolnoma sam z ramišljanjem, in ne nekateri moji sošolci, ki vse naloge prepisali. Že takrat sem po dvema tednoma POPOLNOMA pozabil vse strukture, novembra smo dobili tudi 50 nalog, sem se ponovno naučil(imel sem občutek da se učim prvič), sem se naučil, ampak zgodba ostaja enaka. Po dveh tednih, treh se težko spomnim da moram importat include stdio.h knjižnico...je to normalno? nalog nisem ršeil v enem tednu ampak vedno vsaj 2 tedna...nasplošno imam zelo slab spomin, sploh v zadnjih 2-3letih.

Povejte mi vaše izkušnje...lepo prosim.


Objavi naloge pa ti jih lahko rešim, samo ne v Cje ker ga neznam. Lahko pa c#, java, php, python itd..


Nisi razumel napisanega...vseeno hvala.

Yacked2 ::

Janac je izjavil:

Yacked2 je izjavil:

Janac je izjavil:

Eno vprašanje, ki se ne navezuje na temo ampak tudi ni vredno za novo temo.

Torej v Cju v šoli programiramo od marca. Letos, v novem letniku smo septembra dobili 50 nalog iz C-ja, rešil sem vse naloge popolnoma sam z ramišljanjem, in ne nekateri moji sošolci, ki vse naloge prepisali. Že takrat sem po dvema tednoma POPOLNOMA pozabil vse strukture, novembra smo dobili tudi 50 nalog, sem se ponovno naučil(imel sem občutek da se učim prvič), sem se naučil, ampak zgodba ostaja enaka. Po dveh tednih, treh se težko spomnim da moram importat include stdio.h knjižnico...je to normalno? nalog nisem ršeil v enem tednu ampak vedno vsaj 2 tedna...nasplošno imam zelo slab spomin, sploh v zadnjih 2-3letih.

Povejte mi vaše izkušnje...lepo prosim.


Objavi naloge pa ti jih lahko rešim, samo ne v Cje ker ga neznam. Lahko pa c#, java, php, python itd..


Nisi razumel napisanega...vseeno hvala.


Pravim, da za rešitev naloge ne rabiš poznat Cja oz. katerikoli drugega programskega jezika. Preprosto razbij problem na manjše kose, nato pa rabiš samo še poiskati sintakso. Kak primer naloge prosim.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

RatedR ::

Janac je izjavil:

Po dveh tednih, treh se težko spomnim da moram importat include stdio.h knjižnico...je to normalno? nalog nisem ršeil v enem tednu ampak vedno vsaj 2 tedna...nasplošno imam zelo slab spomin, sploh v zadnjih 2-3letih.

Tud sam sem začetnik, samo da pa neveš kaj naredit v prvi vrstici programa, importat knjižnico iz katere izhajajo ukazi ki jih boš uporabil se mi pa ne zdi preveč normalno.

Večina odgovorov tukaj bo z bolj strokovnega vidika, kot npr.:

amacar je izjavil:

js tud že 5 let programiram, pa vsakič skopiram kodo z neta za openfiledialog ali pa include, ker itak ne rabiš vedet na pamet.

Pač človek govori iz izkušenj, samo zdele ko pa še ne rabite več kot 3 knjižnice, bi si pa že moral zapomnit.

Kako pa pridobivate ocene pri tem predmetu iz programiranja? Pomembno je namreč ker če ste na računalnikih, zase govorim, si lažje zapomnim oz. ko daš prste na tipkovnico ti že nekako avtomatsko dela, kaj napisat itd.

garamond ::

Mislim da lahko IDE zelo pomaga s samodejnim dokončevanjem. Če začneš tipkati “pri…” bi moral ponuditi opcijo “printf”, če tega ni pač veš, da nisi vključil primernih knjižnic.

Lahko pa da v procesu učenja programiranja uporabljajo Notepad in se učijo natančnosti na vsak znak natančno ;-)

Janac ::

teste pišemo na liste, tudi pri pouku. računalnikov v šoli ne uporabljamo.

garamond ::

Potem odpadejo take majhne fore, ki bi jih lahko komu podtaknil :-(

MT: Replace a semicolon (;) with a greek question mark (;) in your friend's C# code and watch them pull their hair out over the syntax error

&mdash; Peter Ritchie (@peterritchie) November 16, 2014

RatedR ::

Yacked2, ugibam da maš že faks narejen in da že nekje delaš, sodeč po tvojem znanju, samo zanima me kateri faks imaš narejen pa v kakšni vrsti podjetja delaš?

Zanima me namreč, kako se uvrščajo programerji glede na njihovo znanje, vidim da znaš kar dost jezikov pa a toliko zadošča delodajalcem?
Pa še za tele križce pa krožce, na stopnji 1-10, kakšna je zahtevnost tega programa?

Lp

Yacked2 ::

RatedR je izjavil:

Yacked2, ugibam da maš že faks narejen in da že nekje delaš, sodeč po tvojem znanju, samo zanima me kateri faks imaš narejen pa v kakšni vrsti podjetja delaš?

Zanima me namreč, kako se uvrščajo programerji glede na njihovo znanje, vidim da znaš kar dost jezikov pa a toliko zadošča delodajalcem?
Pa še za tele križce pa krožce, na stopnji 1-10, kakšna je zahtevnost tega programa?

Lp


Slabo ugibaš, junija imam maturo :)
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

amacar ::

RatedR je izjavil:

Yacked2, ugibam da maš že faks narejen in da že nekje delaš, sodeč po tvojem znanju, samo zanima me kateri faks imaš narejen pa v kakšni vrsti podjetja delaš?

Zanima me namreč, kako se uvrščajo programerji glede na njihovo znanje, vidim da znaš kar dost jezikov pa a toliko zadošča delodajalcem?
Pa še za tele križce pa krožce, na stopnji 1-10, kakšna je zahtevnost tega programa?

Lp


Križce-krožce moraš znati napisati cca 3-6 mesecev po začetku učenja (začetek je mišljen kot res začetek, torej helloword program). Takšne so nekje zahteve na FERI 1. letnik.

RatedR ::

Yacked2 je izjavil:

Slabo ugibaš, junija imam maturo :)

Maturo pa že znaš c#, java, php, python?

Ja od kje ti vse to, mi "programiramo" že 6-7 mesecev (vključno z lanskim letom) pa smo komaj prišli do pointerjev...

A so tudi vsi ostali v tvojem letniku tako na tekočem kot ti?

amacar je izjavil:

Križce-krožce moraš znati napisati cca 3-6 mesecev po začetku učenja (začetek je mišljen kot res začetek, torej helloword program). Takšne so nekje zahteve na FERI 1. letnik.

Zanimivo, kot sem napisal zgoraj...po 6-7 mesecih smo šele pri pointerjih in me malo skrbi kaj bo v prihodnjih letih

Zgodovina sprememb…

  • spremenilo: RatedR ()

Janac ::

ja če hočeš bit programer delaj še doma nonstop

amacar ::

RatedR je izjavil:

Yacked2 je izjavil:

Slabo ugibaš, junija imam maturo :)

Maturo pa že znaš c#, java, php, python?

Ja od kje ti vse to, mi "programiramo" že 6-7 mesecev (vključno z lanskim letom) pa smo komaj prišli do pointerjev...

A so tudi vsi ostali v tvojem letniku tako na tekočem kot ti?

Ko znaš en jezik znaš "vse". Logika je večina pri programiranju.

RatedR je izjavil:

amacar je izjavil:

Križce-krožce moraš znati napisati cca 3-6 mesecev po začetku učenja (začetek je mišljen kot res začetek, torej helloword program). Takšne so nekje zahteve na FERI 1. letnik.

Zanimivo, kot sem napisal zgoraj...po 6-7 mesecih smo šele pri pointerjih in me malo skrbi kaj bo v prihodnjih letih

Ja verjetno si srednja šola, kjer greste počasi, da bi ja razumeli in vsi naredili letnik. Na faksu te pa na začetku "posilijo" z vsem možnim in tisti, ki so vztrajni ter jih zanima, gredo v naslednji letnik, ostali pa padejo.

Yacked2 ::

RatedR je izjavil:

Yacked2 je izjavil:

Slabo ugibaš, junija imam maturo :)

Maturo pa že znaš c#, java, php, python?

Ja od kje ti vse to, mi "programiramo" že 6-7 mesecev (vključno z lanskim letom) pa smo komaj prišli do pointerjev...

A so tudi vsi ostali v tvojem letniku tako na tekočem kot ti?

amacar je izjavil:

Križce-krožce moraš znati napisati cca 3-6 mesecev po začetku učenja (začetek je mišljen kot res začetek, torej helloword program). Takšne so nekje zahteve na FERI 1. letnik.

Zanimivo, kot sem napisal zgoraj...po 6-7 mesecih smo šele pri pointerjih in me malo skrbi kaj bo v prihodnjih letih


Hodim na gimnazijo, edini v razredu programiram. Ti programiraš 7 mesecev, jaz pa 7 let :)
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Yacked2 ::

Evo tole je pa ultimatna verzija robota:
http://pastebin.com/h48mxiY4

če vam ga rata premagati sporocite.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

epicVoid ::

mas en bug :
 slika

slika

Yacked2 ::

epicVoid je izjavil:

mas en bug :
 slika

slika



Bo treba popravit, nekega dne :P

Pred randomom moram še preveriti če je kot.Count == 1, da izbere polja[free[kot[0]]] = 'C';

Popravljeno, hwala epicVoid :)
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Zgodovina sprememb…

  • spremenil: Yacked2 ()

Yacked2 ::

Evo sem še malo popravil algoritem za obrambo, sedaj preverja če je v nevarnosti za dvojni napad po diagonali.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

amacar ::

Probaj minimax / alfabeta implementirati kot AI.

Zgodovina sprememb…

  • spremenil: amacar ()

Yacked2 ::

amacar je izjavil:

Probaj minimax / alfabeta implementirati kot AI.


Ma itak brezveze, ker v primeru, da oba (CPU in uporabnik) igrata brez napak nihče ne mora zmagati.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Spura ::

Main funkcija ima dvakrat prakticno isto kodo glede na to kdo zacne, ni potrebe.
Funckija check ima kopico if stavkov, ne rabi nobenega if stavka, ker if pogoji so bool vrednosti in funkcija vraca bool vrednost.
Povsod se kopira game board brez neke blazne potrebe, sploh pa pri izpisu. Naredis kopijo zato da X gor postavis, ampak saj lahko preprosto pri izpisu X izpisujes za prazna polja.
Funkcija za potezo racunalnika bi bila bolj primerno taka, ki bi vrnila potezo racunalnika, ne pa game board s postavljeno potezo.

Yacked2 ::

Spura je izjavil:

Main funkcija ima dvakrat prakticno isto kodo glede na to kdo zacne, ni potrebe.
Funckija check ima kopico if stavkov, ne rabi nobenega if stavka, ker if pogoji so bool vrednosti in funkcija vraca bool vrednost.
Povsod se kopira game board brez neke blazne potrebe, sploh pa pri izpisu. Naredis kopijo zato da X gor postavis, ampak saj lahko preprosto pri izpisu X izpisujes za prazna polja.
Funkcija za potezo racunalnika bi bila bolj primerno taka, ki bi vrnila potezo racunalnika, ne pa game board s postavljeno potezo.


Malo bolj razloži:
-main: ok, lahko bi naredil s par if stavkov, namesto copy/paste kode
-check funkcija: kako naj popravim,
-kopira se zato, da zaščiti poseganje v samo postavitev. Edino pri izpisu bi lahko rešil drugače.
-Zakaj bi bila funkcija bolj primerna če bi vrnila samo potezo ?
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

amacar ::

Yacked2 je izjavil:

amacar je izjavil:

Probaj minimax / alfabeta implementirati kot AI.


Ma itak brezveze, ker v primeru, da oba (CPU in uporabnik) igrata brez napak nihče ne mora zmagati.


Najprej si spisal 300 vrstic preverjanja za najboljšo rešitev, potem pa praviš, da je brezveze :))

Spura ::

Yacked2 je izjavil:


-check funkcija: kako naj popravim,

bool f() {
    if (a) {
        return true;
    }
    if (b) {
        return true;
    }
    return false;
}

==

bool f() {
    return a || b;
}

Yacked2 ::

amacar je izjavil:

Yacked2 je izjavil:

amacar je izjavil:

Probaj minimax / alfabeta implementirati kot AI.


Ma itak brezveze, ker v primeru, da oba (CPU in uporabnik) igrata brez napak nihče ne mora zmagati.


Najprej si spisal 300 vrstic preverjanja za najboljšo rešitev, potem pa praviš, da je brezveze :))


Kaj pa naj drugega dela človek med informatiko.

@spura: mja lahko bi naredil tako ja.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

majster123 ::

ok kako bi naredil še, da ti po vsaki zmagi naredi novo igro in ti šteje zmage tebi in računalniku in ti izpiše tudi procentualno? pa to še... Igre z neodločenim izidom pri statistiki štejte zraven samo pri vseh odigranih igrah, pri zmagah pa ne. HVALA:)
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Domača naloga - osnove

Oddelek: Programiranje
372509 (1726) 11tomi12
»

[C#] Input string was not in a correct format.

Oddelek: Programiranje
61092 (1029) Cvenemir
»

[C#] Reševanje domačih nalog

Oddelek: Programiranje
173283 (2787) krastača

[C#]polje znakov

Oddelek: Programiranje
112386 (2214) Ziga Dolhar
»

Pomoč pri programčkih

Oddelek: Programiranje
152943 (2593) Mitja Bonča

Več podobnih tem