Felder Prüfen auf gleiche Zahlen, bei Sudoku Spiel?
Übersicht

bruce85Betreff: Felder Prüfen auf gleiche Zahlen, bei Sudoku Spiel? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich brauche mal eure Hilfe bei meinem Sudoku Spiel und zwar, möchte ich Überprüfen ob noch irgendwas zu setzen ist, dazu habe ich mir mal eine Funktion geschrieben: Code: [AUSKLAPPEN] Function CheckNum:Int()
Local ZaehlerX:Int = 0 Local ZaehlerY:Int = 0 Local Doppelt:Int Local Zahl:Int For Local FX:Int=0 Until feld_x For Local FY:Int=0 Until feld_y If SpielFeld[FX,FY].Wert = 0 Then Doppelt = 0 For Local Zahl:Int=1 To 9 Local FX2 = FX/3 Local FY2 = FY/3 '9 Kästchen Prüfen auf gleiche Zahl "Horizontal" While ZaehlerX < 9 If SpielFeld[ZaehlerX,FY].Wert = Zahl Then Doppelt = 1 Exit EndIf ZaehlerX = ZaehlerX + 1 Wend '9 Kästchen Prüfen auf gleiche Zahl "Vertikal" While ZaehlerY < 9 If SpielFeld[FX,ZaehlerY].Wert = Zahl Then Doppelt = 1 Exit EndIf ZaehlerY = ZaehlerY + 1 Wend 'Die 9 Felder prüfen auf die gleiche Zahl '[][][] '[][][] '[][][] For Local x=FX2*3 To FX2*3+2 For Local y=FY2*3 To FY2*3+2 If SpielFeld[x,y].Wert = Zahl Then Doppelt = 1 Exit EndIf Next Next Next EndIf Next Next If Doppelt = 1 Then Return 0 Return 1 End Function Code: [AUSKLAPPEN] If CheckNum() Then
DrawText "Kein Zug mehr möglich!",455,320 Else DrawText "Zug möglich.",455,320 EndIf Ich versuche schon 2 Tage das hinzubekommen, leider klappt das nicht korrekt. Die Schleifen laufen nicht so wie sie laufen sollen etc. Wie könnte ich mein Problem ambesten lösen? Ich bedanke mich schonmal im Voraus. MfG |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo nochmal,
Hier ist mal meine Funktion um zu Prüfen ob man die gewünschte Zahl an dieser Position ablegen kann: Code: [AUSKLAPPEN] Function Check:Int(Zahl:Int,FX:Int,FY:Int)
Local FX2 = FX/3 Local FY2 = FY/3 Local ZaehlerX:Int = 0 Local ZaehlerY:Int = 0 Local Doppelt:Int '9 Kästchen Prüfen auf gleiche Zahl "Horizontal" While ZaehlerX < 9 If SpielFeld[ZaehlerX,FY].Wert = Zahl Then Doppelt = 1 EndIf ZaehlerX = ZaehlerX + 1 Wend '9 Kästchen Prüfen auf gleiche Zahl "Vertikal" While ZaehlerY < 9 If SpielFeld[FX,ZaehlerY].Wert = Zahl Then Doppelt = 1 EndIf ZaehlerY = ZaehlerY + 1 Wend 'Die 9 Felder Prüfen auf die gleiche Zahl '[][][] '[][][] '[][][] For Local x=FX2*3 To FX2*3+2 For Local y=FY2*3 To FY2*3+2 If SpielFeld[x,y].Wert = Zahl Then Doppelt = 1 EndIf Next Next If Doppelt = 1 Then Return 0 Return 1 'Zahl kann abgelegt werden End Function Das funktioniert jedoch ohne Probleme. Was mich wundert, ist, das die Funktion um zu Prüfen ob noch was gelegt werden kann, nicht korrekt in BM funktioniert. Hat jemand vieleicht eine Idee wie ich das ambesten lösen kann? MfG |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group