Vier gewinnt: Auswertung

  • Themenstarter Themenstarter M&M
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

M&M

Gast
Hallo,

ein Kollege und ich programmieren gerade 4 Gewinnt. Wir sind mit allem fertig bis auf die Auswertung ob jemand gewonnen hat in Diagonaler richtung. Ich könnte zwar alles einzelnd abfragen aber das wäre zu viel schreibarbeit kann ich das anders lösen.
 
Kommt ganz darauf an, wie ihr euer Programm strukturiert habt. (War das ein genug grosser Wink mit dem Betonpfeiler?)

Aber grundsätzlich würde ich ein paar ineinander verschachtelte Schlaufen vorschlagen.
 
hm..rekursion ist auch möglich

du wählst nen beliebigen startpunkt, von mir aus links unten (0/0), dann rufst du die funktion wieder auf mit den punkten rund rum ( (x+1/y) (x-1/y) (x/y+1) (x/y-1) . . . . ) und mit der farbe die gezählt werde3n soll..

ich glaube mit schleifen is das sehr kompliziert zu lösgen..rekursion dürfte einfacher gehen
 
Also momentan haben wir das so laufen.
Code:
//Auswertung für Diagonale Richtung
		
	
		//Reihe 1
		if(iSpielFeld [0][2]==iSpielFeld [1][3]&&iSpielFeld [0][2]==iSpielFeld [2][4]&&iSpielFeld [0][2]==iSpielFeld [3][5])
			{
				if(iSpielFeld [0][2]==1)
				{
					spielstand=1;
				}
				else if(iSpielFeld[0][2]==2)
				{
					spielstand=2;
				}
			}
		//Reihe 2
		if(iSpielFeld [0][1]==iSpielFeld [1][2]&&iSpielFeld [0][1]==iSpielFeld [2][3]&&iSpielFeld [0][1]==iSpielFeld [3][4])
		{
			if(iSpielFeld [0][1]==1)
			{
				spielstand=1;
			}
			else if(iSpielFeld[0][1]==2)
			{
				spielstand=2;
			}
		}
		else if(iSpielFeld [1][2]==iSpielFeld [2][3]&&iSpielFeld [1][2]==iSpielFeld [2][4]&&iSpielFeld [1][2]==iSpielFeld [3][5])
			{
				if(iSpielFeld [1][2]==1)
				{
					spielstand=1;
				}
				else if(iSpielFeld[1][2]==2)
				{
					spielstand=2;
				}
			}
		//Reihe 3
		if(iSpielFeld [0][0]==iSpielFeld [1][1]&&iSpielFeld [0][0]==iSpielFeld [2][2]&&iSpielFeld [0][0]==iSpielFeld [3][3])
			{
				if(iSpielFeld [0][0]==1)
				{
					spielstand=1;
				}
				else if(iSpielFeld[0][0]==2)
				{
					spielstand=2;
				}
			}
		else if(iSpielFeld [1][1]==iSpielFeld [2][2]&&iSpielFeld [1][1]==iSpielFeld [3][3]&&iSpielFeld [1][1]==iSpielFeld [4][4])
			{
				if(iSpielFeld [1][1]==1)
				{
					spielstand=1;
				}
				else if(iSpielFeld[1][1]==2)
				{
					spielstand=2;
				}
			}
		else if(iSpielFeld [2][2]==iSpielFeld [3][3]&&iSpielFeld [2][2]==iSpielFeld [4][4]&&iSpielFeld [2][2]==iSpielFeld [5][5])
			{
				if(iSpielFeld [2][2]==1)
				{
					spielstand=1;
				}
				else if(iSpielFeld[2][2]==2)
				{
					spielstand=2;
				}
			}
und so weiter eben
wie soll ich des jetzt vereinfachen
edit deathbyaclown: Code tags eingefügt
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben