C/BASIC/JAVA: Kann ich diese 20 IFs in eine FOR Schleife packen?

obilaner

Lt. Junior Grade
Dabei seit
Apr. 2011
Beiträge
332
Hallo.

Ich versuche grade 4 gewinnt zu programmieren und kann das Spielfeld bisher nur mit IF abfragen zeichnen, siehe unten. Gibt es nicht eine einfachere Form dafür, mit weniger Schreibarbeit und zur Übersichtlichkeit, zB. mit einer FOR Schleife? Mir fällt keine logische Lösung als Alternative ein

Code bisher:
Code:
Function zeichne() ; Zeichne
If a1x=True
 	DrawImage player, a, s1
	End If
	If a2x=True
 	DrawImage player, a, s2
	End If
	If a3x=True
 	DrawImage player, a, s3
	End If
	If a4x=True
 	DrawImage player, a, s4
	End If
	If a5x=True
 	DrawImage player, a, s5
	End If
	
If b1x=True
 	DrawImage player, b, s1
	End If
	If b2x=True
 	DrawImage player, b, s2
	End If
	If b3x=True
 	DrawImage player, b, s3
	End If
	If b4x=True
 	DrawImage player, b, s4
	End If
	If b5x=True
 	DrawImage player, b, s5
	End If

End Function
Der Code ist in einem Open Source Basic Dialekt geschrieben (Blitz Basic), jegliche Lösung ob in C, VB oder Java ist gern gesehen und ist sicherlich leicht übertragbar oder eine Lernhilfe.
 
Zuletzt bearbeitet:

Nilson

Fleet Admiral
Dabei seit
Dez. 2008
Beiträge
17.563
Nutz ein 2D-Array und durchlauf das in einer while-Schleife. Dann haste nur noch eine Abfrage
 

obilaner

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Apr. 2011
Beiträge
332
Ja danke, ich denke ich werde das mal selber probieren!

Vielen dank
 
V

VikingGe

Gast
Mal so nebenbei...

Code:
If b1x=True
Ohne jetzt Ahnung von Basic-Dialekten zu haben: Normalerweise sind explizite Vergleiche mit Boolean-Konstanten unnötig, weil das If ja schon einen Boolean-Ausdruck erwartet. Sprich:
Code:
If b1x
sollte genau dasselbe tun.
 

obilaner

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Apr. 2011
Beiträge
332
Danke, hat super funktioniert!

Code:
Function zeichne() ; Zeichne


For zeile = 1 To 6

	For spalte = 1 To 5
	
		If belegt(zeile, spalte) = True
		
			If werwars(zeile,spalte) = 1
				DrawImage player, feldx(zeile), feldy(spalte)
			End If
		
		End If
	 
	Next

Next

End Function
 
Top