Stránka 1 z 2
c # počet hodnot v poli Vyřešeno
Napsal: 18 črc 2013 22:04
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;
}
}
}
Re: c # počet hodnot v poli
Napsal: 18 črc 2013 22:08
od CZechBoY
Zdravím,
tohle by mělo normálně fungovat, zkus si zalogovat co to všechno dělá, krok po kroku debugovat
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 07:39
od agil
No tady u toho stačí když odhalim jedno policko, tak to pricita porad +1. Jako kdyby ten cyklus byl nekonečej..
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 08:36
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);
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 10:51
od CZechBoY
faraon: tohle není céčko

ale připoměl si mi: nevoláš tenhle kod v nějaký metodě, co se volá pořád? (třeba draw, update, ...)
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 11:15
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
Ale podle
writeln bys měl hádat spíš Pascal, i když tady máš vlastně
Console.WriteLine...

Re: c # počet hodnot v poli
Napsal: 19 črc 2013 11:20
od CZechBoY
jj
btw debugoval sis to krok po kroku? nebo ses na to vys..?
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 13:00
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
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 13:07
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
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 15:24
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?
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 17:57
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 ---
}
}
}
Re: c # počet hodnot v poli
Napsal: 19 črc 2013 18:19
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;
}
}
}