c # počet hodnot v poli

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

agil
Level 2
Level 2
Příspěvky: 181
Registrován: 08 říj 2010 21:58

c # počet hodnot v poli

Příspěvek od agil »

Zdravím, potřebuji zjistit kolik je v 2d poli odhalených políček = mají hodnotu 4.¨

Zkoušel jsem for cyklus, ale ten když narazí na to pole = 4, tak stále dokola přičítá.

Kód: Vybrat vše

 for (int a = 0; a < Array.x; a++)
                {
                    for (int b = 0; b < Array.y; b++)
                    {

                        if (Array.pole[a, b] == 4)
                        {

                            win += 1;



                        }



                    }




                }
immortal-world.net - přijďte si zahrát!
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: c # počet hodnot v poli

Příspěvek od CZechBoY »

Zdravím,
tohle by mělo normálně fungovat, zkus si zalogovat co to všechno dělá, krok po kroku debugovat
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
agil
Level 2
Level 2
Příspěvky: 181
Registrován: 08 říj 2010 21:58

Re: c # počet hodnot v poli

Příspěvek od agil »

No tady u toho stačí když odhalim jedno policko, tak to pricita porad +1. Jako kdyby ten cyklus byl nekonečej..
immortal-world.net - přijďte si zahrát!
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

Re: c # počet hodnot v poli

Příspěvek od faraon »

Kde nastavuješ do toho win nulu? Neprovádíš náhodou tohle počítání v programu víckrát? Zkus tohle:
for (int a = 0, win=0; a < Array.x; a++)

Překladače si sice při optimalizacích poradí s lecčím, ale je dobré vědět že inkrementace je mnohem rychlejší než sčítání, takže místo win+=1; bych použil ++win;

A hned za to bych si dal kontrolní výpis, něco co ti ukáže stav na každém políčku kde tohle provádíš, asi takhle:
writeln(a," ",b," ",win);
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: c # počet hodnot v poli

Příspěvek od CZechBoY »

faraon: tohle není céčko :D
ale připoměl si mi: nevoláš tenhle kod v nějaký metodě, co se volá pořád? (třeba draw, update, ...)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

Re: c # počet hodnot v poli

Příspěvek od faraon »

Je to Céčko, akorát zprzněné na kvadrát, oklikou přes Javu, a na závěr do toho namíchali ještě mizerný M$ Basic z půlky sedmdesátých let, což je úplná katastrofa :lol:

Ale podle writeln bys měl hádat spíš Pascal, i když tady máš vlastně Console.WriteLine... ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: c # počet hodnot v poli

Příspěvek od CZechBoY »

jj
btw debugoval sis to krok po kroku? nebo ses na to vys..?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
agil
Level 2
Level 2
Příspěvky: 181
Registrován: 08 říj 2010 21:58

Re: c # počet hodnot v poli

Příspěvek od agil »

No já si akorát nechal udělat výpis hodnoty win a je tam1 a porad to stoupá az k tisícům.. :-) zkoušel sem to dávat do paintu, timeru..nvm kam bych to dal.. A ještě skusim to co napsal faraon, nejsem na PC ted
immortal-world.net - přijďte si zahrát!
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: c # počet hodnot v poli

Příspěvek od CZechBoY »

to sis toho teda hodně vypsal
já bych si vypsal aktuální X, Y, hodnotu win
však využij toho suprovýho nástroje - visual studio
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
agil
Level 2
Level 2
Příspěvky: 181
Registrován: 08 říj 2010 21:58

Re: c # počet hodnot v poli

Příspěvek od agil »

no, takže odhalim jedno pole
a ono to unej pořád přičítá win
viz obrázek
v timeru.. http://postimg.org/image/rqozf2heb/
v mouseclick.. http://postimg.org/image/9bb7ydrgn/
proste to to políčko vezme ne jednou, ale víckrát...a menit hodnotu prošlího pole nemužu
logicky tohle nemuze fungovat...ponevadz dycky kdyz prodje pole a narazi na policko s hodnotou 4 pricte 1, takze musim nejak udelat aby si pamatoval, ktery policka uz prosel...co mi poradite?
immortal-world.net - přijďte si zahrát!
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

Re: c # počet hodnot v poli

Příspěvek od faraon »

Tak ještě jednou, přímo tam kde jsi vzal ten tvůj kousek kódu:
A nezapomeň tam připsat ten první řádek!

Kód: Vybrat vše

win = 0;
for (int a = 0; a < Array.x; a++)
    {
    for (int b = 0; b < Array.y; b++)
        {
        if (Array.pole[a, b] == 4)
           {
           win += 1;
           --- vypsat a,b,win ---
           }
        }
    }
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
agil
Level 2
Level 2
Příspěvky: 181
Registrován: 08 říj 2010 21:58

Re: c # počet hodnot v poli

Příspěvek od agil »

no presne takhle to mam akorat tam nemam to win,. to mam uplne nahore jako public int win = 0;

Kód: Vybrat vše

   for (int a = 0;a < Array.x; a++)
                {
                    for (int b = 0; b < Array.y; b++)
                    {

                        if (Array.pole[a, b] == 4)
                        {

                            win += 1;
                            textBox3.Text += a.ToString()+'|'+b.ToString()+','+win.ToString() + ','+ Environment.NewLine;
                           


                        }

                     

                    }




                }
immortal-world.net - přijďte si zahrát!
Zamčeno

Zpět na „Programování a tvorba webu“