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

obilaner

Lt. Junior Grade
Registriert
Apr. 2011
Beiträge
389
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:
Nutz ein 2D-Array und durchlauf das in einer while-Schleife. Dann haste nur noch eine Abfrage
 
Ja danke, ich denke ich werde das mal selber probieren!

Vielen dank
 
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.
 
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
 

Ähnliche Themen

Zurück
Oben