Stránka 1 z 1

c# pole- zmena hodnoty a vykreslení  Vyřešeno

Napsal: 30 čer 2013 13:06
od agil
Zdravím, momentálně dělám hledání min a mám takový problém.
Mám cyklus, a v něm kod, že když kliknu pravým tlačítkem na pole, které se rovná nule, tak se pole naplní hodnotou 5.
Pak mam vykreslovací metodu, ve které je napsané, že když se pole rovná 5, tak se vykreslí vlajecka.
To funguje.
Ale potrebuji, aby kdyz na to pole co se rovná 5, kliknu znova pravým tlačítkem, tak aby se zase rovnalo 0.
Zkousel sme to napsat, ale motalo se to dohromady,takze kdyz jsem kliknul tak se naplnilo 5, ale hned 0, takze se vlatsne nic nestalo a zustalo stejne policko.

Dekuji za pripadnou pomoc.

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 30 čer 2013 13:39
od honzaik
nějaký

Kód: Vybrat vše

if(policka[i].hodnota == 0){ // může to bejt i (!policka[i].hodnota) protože 0 je false vlastně :D
  policka[i].hodnota = 5;
  policka[i].renderVlajecku();
else{  // tady předpokladam že to může mit jen 2 hodnoty jinak nějaký else if
  policka[i].hodnota = 0;
  policka[i].vymazVlajecku();
}

nějak takhle bych si tu logiku představoval já :D. a tohle by bylo v tom cyklu spouštělo se na event pravýho kliknutí pokud ti dobře rozumím :D

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 30 čer 2013 18:50
od agil
no tak to nefunguje :D mam to napsany teda trochu jinak

Kód: Vybrat vše

 else if (e.Button == MouseButtons.Right)
                        {

                            if (Array.pole[mouseX, mouseY] == 0) //neodhaleno
                            {
                             

                                Array.pole[mouseX, mouseY] = 5; // vlajecka na normal
                            }
                            else
                            {
                                Array.pole[mouseX, mouseY] = 0;
                            }

                            if (Array.pole[mouseX, mouseY] == 1)     //mina
                            {




                                Array.pole[mouseX, mouseY] = 3; //vlajecka na mine



                            }

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 30 čer 2013 19:03
od honzaik
proč když je políčko odhalené (předpokládám pokud nemá nulu) tak mu dáváš 0 (neodhaleno)?

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 30 čer 2013 19:07
od agil
no když má 5, tak to je vlaječka na políčku, vlaječka políčko neodhalí, to se dává jenom když si nejsi jistej ze tam je třeba mina jestli chápeš( jestli si nekdy hrál heldání min :D ), no a potřebuju znovu kliknutím tu vlaječku odebrat, tudíž tam dát zase 0

levím tlačítkem to funguje, tam dje o to že u toho pravýho se to plete, takže se to promeni na5, ale hned zas na 0, proste ybch potreboval neco co by jakoby pocitalo kliknutí a reagovalo az na podruhý...teoreticky :D

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 01 črc 2013 00:15
od honzaik
no miny dobře znám :D asi nějak nechápu systém jakym to máš vymyšlěný tak ti mohu jen poradit aby sis kde to jde vypisoval do konzole proměnný a krok po kroku si říkal jak to funguje :D

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 01 črc 2013 13:38
od agil
Tam jde oto, ze když to dam do event u kliknutí myši, tak se ta změna prostě provede okamzite,, takže se vevyslekdu vlastne nic nestane.

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 01 črc 2013 14:19
od honzaik
a co třeba udělat else if místo dalšího if, protože když je tam if a elseif tak se spustí jen jedna větev. pokud tam jsou 2x ifi tak se spustej oba, pokud maj podmínku. nevim jinak co jinýho by to dělalo

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 03 črc 2013 21:06
od agil
Problém vyresen

Re: c# pole- zmena hodnoty a vykreslení

Napsal: 04 črc 2013 07:31
od CrazyC0de
Tak lockni :)