Piškvorky-vyhodnocovanie – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Piškvorky-vyhodnocovanie – .NET – Fórum – Programujte.comPiškvorky-vyhodnocovanie – .NET – Fórum – Programujte.com

 

Peter
~ Anonymní uživatel
4014 příspěvků
28. 9. 2011   #1
-
0
-

Dobrý deň. Prosím vás, mohli by ste mi poradiť ako vyhodnotiť výsledok piškvoriek? Či sú pri sebe tri znaky. Tak ako v piškvorkach. Ako by sa to dalo spraviť?

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV
~ Moderátor
+43
God of flame
28. 9. 2011   #2
-
0
-

#1 Peter
musis prochazet sloupce, radky, uhlopricky a zjistovat jestli tam neni trojice (nebo petice pokud bys to delal jak se to obvykle hraje)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
4014 příspěvků
28. 9. 2011   #3
-
0
-

Riadky a stĺpce by som asi vedel zistiť, ale ako sa dá uhlopriečka zistiť?

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV
~ Moderátor
+43
God of flame
28. 9. 2011   #4
-
0
-

trochu fantazie ne? kazdopadne musis menit o 1 jak sloupec tak radek ... jen je tam trosku horsi, ze se zacina na ruznych pozicich

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
4014 příspěvků
28. 9. 2011   #5
-
0
-

Som s toho ešte trochu zmetený, ale tak, aspoň si mi dal podklad pre moje ďalšie rozmýšlanie ako to spraviť.

Nahlásit jako SPAM
IP: 87.197.139.–
Mutagen
~ Anonymní uživatel
549 příspěvků
29. 9. 2011   #6
-
0
-

Asi pred rokem sem do skoly delal projekt prave hru piskvorky ... takze ti pomuzu a dam sem muj algoritmus na vyhodnoceni ....

public bool ZjistiXorO(int ID1, int ID2, char XorO)
		{
			int PocetXorO = 0;
			int i = ID1;
			int a = ID2;
			while (HraciPole[i + 4, a + 4] == XorO) // Svisle Nahoru
			{
				PocetXorO++;
				i--;
				if (PocetXorO == 5) return true;
			}
			
			i = ID1 + 1;
			while (HraciPole[i + 4, a + 4] == XorO) // Svisle Dolu
			{
				PocetXorO++;
				i++;
				if (PocetXorO == 5) return true;
			}
			
			PocetXorO = 0;
			i = ID1;
			a = ID2;
			while (HraciPole[i + 4, a + 4] == XorO) // Vodorovne Doleva
			{
				PocetXorO++;
				a--;
				if (PocetXorO == 5) return true;
			}
			a = ID2 + 1;
			while (HraciPole[i + 4, a + 4] == XorO) // Vodorovne Doprava
			{
				PocetXorO++;
				a++;
				if (PocetXorO == 5) return true;
			}
			
			PocetXorO = 0;
			i = ID1;
			a = ID2;
			while (HraciPole[i + 4, a + 4] == XorO) // 45° Doleva
			{
				PocetXorO++;
				i++;
				a--;
				if (PocetXorO == 5) return true;
			}
			i = ID1 - 1;
			a = ID2 + 1;
			while (HraciPole[i + 4, a + 4] == XorO) // 45° Doprava
			{
				PocetXorO++;
				i--;
				a++;
				if (PocetXorO == 5) return true;
			}
			
			PocetXorO = 0;
			i = ID1;
			a = ID2;
			while (HraciPole[i + 4, a + 4] == XorO) // 135° Doleva
			{
				PocetXorO++;
				i--;
				a--;
				if (PocetXorO == 5) return true;
			}
			i = ID1 + 1;
			a = ID2 + 1;
			while (HraciPole[i + 4, a + 4] == XorO) // 135° Doprava
			{
				PocetXorO++;
				i++;
				a++;
				if (PocetXorO == 5) return true;
			}
			
			return false;
		}

K hracimu poli pricitam +4 z duvodu aby nebyl index mimo hranici pole kdyz je treba Index 0,0 tak to nejde do minusu ... samozdrejme si to uprav podle toho jak mas vytvoreny 2D pole ...

Nahlásit jako SPAM
IP: 89.190.90.–
Peter
~ Anonymní uživatel
4014 příspěvků
29. 9. 2011   #7
-
0
-

Paráda:-) Veľmi ti ďakujem.

Nahlásit jako SPAM
IP: 87.197.139.–
crazy
~ Moderátor
+10
Grafoman
29. 9. 2011   #8
-
0
-
Nahlásit jako SPAM
IP: 147.32.113.–
All you need is vision and time.
Peter
~ Anonymní uživatel
4014 příspěvků
13. 10. 2011   #9
-
0
-

#6 Mutagen
Prosím ťa, mohol by si mi ešte napísať čo znamená to ID 1 a 2? Skušal som spraviť vyhodnotenie, ale nejak mi to nejde. Jedine jeden riadok mi išiel. Ale neviem, ako mám spraviť aj ostatné. Ale tak, to ešte musím porozmýšlať.

Nahlásit jako SPAM
IP: 87.197.139.–
jadus
~ Anonymní uživatel
36 příspěvků
13. 10. 2011   #10
-
0
-

Mutagen ti ukazal spravne reseni nicmene jednodussi by asi bylo, kdyby si nejdrive zkontroloval vsechny radky, urcil si smer, kterym ta rada vede a testoval jen ten jeden smer misto vsech...

Asi zhruba takto... samozrejme jeste v nejakym cyklu pro vsechny smery. Nezkousel sem to melo by to ale fungovat

if (pole[s1 + 1, s2].Text == "×" && s1 + 1 < 10)
                    {
                        for (int i = 0; i < 4; i++)
                        {
                            if (pole[s1 + 1 + i, s2].Text == "×" && s1 + 1 + i < 10)
                                p++;
                            else
                                break;

                        }
                    }
Nahlásit jako SPAM
IP: 88.103.42.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 56 hostů

Podobná vlákna

Piškvorky — založil verunka.41

Piškvorky — založil rundll32.exe

Piškvorky — založil cacnejka

Piskvorky v Pythonu — založil Pepa Rohlik

Piškvorky v PHP — založil pc_manik

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý