Killersudoku mit AHK

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

UliSperber
Posts: 1
Joined: 16 Oct 2014, 15:28

Killersudoku mit AHK

16 Oct 2014, 16:42

Zweck des Spiels: Killer-Sudoku:
Ich wollte ein Programm haben, mit dem man Killer-Sudoku-Spielfelder erstellen, editieren und die Spiele selbst dann
abspeichern kann. Die Abspeicherung erfolgt in einer INI-Datei.

Benötigte Dateien:
- killersudoku.ahk (dieses Programm)
- Class_CtlColors.ahk (include-Datei) (aus diesem Forum; Fundstelle: http://ahkscript.org/boards/viewtopic.php?f=6&t=2197)
- killersudoku.ini (hier sind die Spiele lesbar gespeichert)
Alle DATEIEN SOLLTEN IN EINEM VERZEICHNIS UNTERGEBRACHT SEIN.

zusätzlich (nur wenn man es auch am Bildschirm spielen möchte):
- eine installierte Hardcopy-Anwendung (Icon ist im Tray sichtbar) oder jedes andere Paint-Programm

Also viel Spass.
Kommentare, Fehlerhinweise, Änderungsvorschläge, Verbesserungesvorschläge lese ich hier gerne, jedoch werde ich nichts mehr ändern oder optimieren, versucht Euch selbst daran.......

Code: Select all

/*

/*
killersudoku.ahk written by uli.sperber
free of rights
code zur weiteren Verwendung..
letzte Änderung: 06.12.2014


externe Anleihen : 
zur farblichen Markierung einzelner Buttons und Trennlinien:
#Include Class_CtlColors.ahk - Fundstelle: http://ahkscript.org/boards/viewtopic.php?f=6&t=2197

für die Darstellung des Sudokufeldes in einem Zeichenprogramm, damit man es auch am Bildschirm spielen kann:
http://www.hardcopy.de/hardcopy/deutsch/  (es gibt eine Freeware-Version)
Erläuterungen zum Einbinden von Hardcopy.exe siehe weiter unten
Man kann aber auch andere paint-Programme verwenden, die die "PrintScreen (DRUCKEN)" Taste belegen können.

Zweck des Spiels: Killer-Sudoku:
Ich wollte ein Programm haben, mit dem man Killer-Sudoku-Spielfelder erstellen, editieren und die Spiele selbst dann
abspeichern kann. Die Abspeicherung erfolgt in einer INI-datei.

Man kann:
- [Laden]     gespeicherte Spiele Laden (per Drop-Down-Feld)
- [Leeren]    mit einem leeres Spielfeld starten, 
              die Linien anklicken um Ränder zu setzen oder löschen, 
              Zahlen in die Felder eingeben
              Die Summe aller eingegebenen Zahlen muss 405 ergeben, um ein korrektes Spielfeld darzustellen. Die Summe wird rechts angezeigt.
- [Speichern] fertige Spiele speichern
- [Löschen]   gespeicherte Spiele löschen
- [Linien an] die Grundlinien anzeigen lassen
- [ShowIniFile]   sich die ini-Datei anzeigen lassen (*.ini sollte mit einem Text-Programm verknüpft sein) 
- [SpielStarten]" Das angezeigte Spiel spielen:
                  - ruft das Zeichenprogramm Hardcopy auf, man kann per Rechteck das Spielfeld eingrenzen, in den Arbeitsspeicher kopieren.
                  Dann wird die Hardcopy-Anwendung geöffnet und man kann im Zeichenprogramm das Spiel spielen.

Benötigte Dateien:
- killersudoku.ahk    (dieses Programm)
- Class_CtlColors.ahk (include-Datei)
- killersudoku.ini    (hier sind die Spiele lesbar gespeichert)
Alle DATEIEN SOLLTEN IN EINEM VERZEICHNIS UNTERGEBRACHT SEIN.  

zusätzlich: 
- eine installierte Hardcopy-Anwendung (Icon ist im Tray sichtbar) oder jedes andere Paint-Programm

Also viel Spass. Ändern oder optimieren werde ich nichts mehr, versucht Euch selbst daran.......

*/

#NoEnv
#Include Class_CtlColors.ahk
OnExit, GuiClose
; ----------------------------------------------------------------------------------------------------

xx = 10
yy = 10
ww = 60      ; zahlen-Feldbreite und Höhe
ww2 = 4      ; Breite der Linien schmal
ww3 = 7      ; Breite der Linien breit
nr = 0
wwfirst := 10 + (9 * ww) + (6 * ww2) + (2 * ww3)   ; Window-Breite des Spiels
buttonrow := wwfirst + 20
buttonrow2 := buttonrow + 20
separator := ","
savedmax := 1
spiel1 := ""
Spielname := ""
IniFile = killersudoku.ini    ; Speicherort der Spiele, sollte im selben Verzeichnis liegen wie die anderen Spiele

; Aufbau Spielmaske Aussenlinien 
Gui, Add, Progress, x1 y1 w%wwfirst% h10 cBlack vHLine1        ; Linie oben horiz 
GuiControl,, HLine1, 100  ; Set the current position to 100.
Gui, Add, Progress, x1 y10 w10 h%wwfirst% cBlack vVLine1        ; Linie links vert
GuiControl,, VLine1, 100  
Gui, Add, Progress, x10 y%wwfirst% w%wwfirst% h10 cBlack vHLine2  ; Linie unten horiz
GuiControl,, HLine2, 100  ; Set the current position to 100.
Gui, Add, Progress, x%wwfirst% y1 w10 h%wwfirst% cBlack vVLine2   ; Linie rechts vert
GuiControl,, VLine2, 100  



; Buttons
gui, add, Text   , x%buttonrow% y25 w120, aktuelles Spiel:
gui, add, Edit   , x%buttonrow% y50 w120 vSpielname, %Spielname%
gui, add, Text   , x%buttonrow% y85 w120, Spiel laden:
gui, add, Button , x%buttonrow% y140 w120, Speichern
gui, add, Button , x%buttonrow% y170 w120, Löschen
gui, add, Button , x%buttonrow% y200 w120, Leeren
gui, add, Button , x%buttonrow% y230 w120, LinienAn
gui, add, Button , x%buttonrow% y260 w120, RoteLinienAus
gui, add, Button , x%buttonrow% y290 w120, ShowIni-File
gui, add, Button , x%buttonrow% y320 w120, PlayGameWithPaint

gui, add, Text   , x%buttonrow% y400 w120 r2 vSumme, Summe
gosub, addDropDownList
Gui, Add, DropDownList, x%buttonrow2% y110 w100 vAuswahl gAuswahl, %alleSpiele% 

gosub, zeichnezahlenfelder                      ; Aufbau 9x9 Spielfeld

; rote quadrat zwischenlinien
xstart := 10 + (3 * ww) + (2 * ww2) + 3 
Gui, Add, Progress, x5 y%xstart% w%wwfirst% h3 cRed vHLine3      
GuiControl,, HLine3, 100  ; Set the current position to 100.
xstart2 := 10 + (6 * ww) + (4 * ww2) + ww3 + 3
Gui, Add, Progress, x5 y%xstart2% w%wwfirst% h3 cRed vHLine4 
GuiControl,, HLine4, 100  ; Set the current position to 100.

Gui, Add, Progress, x%xstart% y5 w3 h%wwfirst% cRed vVLine3     
GuiControl,, VLine3, 100  
Gui, Add, Progress, x%xstart2% y5 w3 h%wwfirst% cRed vVLine4  
GuiControl,, VLine4, 100  
GuiControl, hide, VLine3
GuiControl, hide, VLine4
GuiControl, hide, HLine3
GuiControl, hide, HLine4

Gui, Show, AutoSize Center ,Killer Sudoku 
return  ; End of auto-execute section. The script is idle until the user does something.

GuiClose:
Gui, Submit  ; Save the input from the user to each control's associated variable.
ExitApp


;--------------------------------------------- Ini-Datei in einem textprogramm anzeigen
ButtonShowIni-File:
Run %iniFile%
return


;--------------------------------------------- Spiel spielen 
ButtonPlayGameWithPaint:

/* Diese Arbeit macht ausschließlich das Programm hardcopy.exe
   Ablauf: hardcopy downloaden und installieren und starten. 
   danach sollte im Tray rechts unten der Hardcopy-ICON zu sehen sein. 
   dann einmalig ausführen:
   -- Rechtsklick auf ICON , dann "Hardcopy-Fenster offnen" anklicken
   -- In der Anwendung Hardcopy die PrintScreen Taste (auf Tastatur: DRUCKEN) belegen mit der hier erforderlichen 
   -- Funktionalität:
   -- Einstellungen -> Schnelleinstellungen -> Taste Druck -> Fenster -> Hardcopy-Fenster öffnen
   fertig
   Wenn Ihr jetzt die Taste "Drucken" drückt, erscheint der Screen  in der Hardcopyanwendung, Fertig.
   
   Wenn Ihr nur das Spielfeld ohne Button-Tasten wollt:
   -- Einstellungen -> Schnelleinstellungen -> Taste Druck -> Rechteck -> Hardcopy-Fenster öffnen
                                                              ^^^^^^^^
      Wenn Ihr jetzt die Taste "Drucken" drückt, erscheint ein Fadenkreuz, mit dem ihr ein Rechteck (das Spielfeld) per Maus auswählen könnt, 
   danach öffnet sich das ausgeschnittene Spielfeld in der Hardcopyanwendung, Fertig.
   
   Jetzt könnt Ihr beginnen mit dem Bleistifft die Zahlen in die Felder zu malen, oder wenn sie falsch waren, wieder auszuradieren.
   Daneben könnt Ihr das Spiel jetzt als Grafik speichern oder auch Zwischenstände speichern.
   
   Im AHK-ist die Programmierung jetzt recht einfach: 
   Der Button "ButtonPlayGameWithPaint" ruft lediglich die Taste "PrintScreen" auf.
   
   Alternativ könnte man natürlich auch die Bildschirm-Kopie manuell machen und jedes andere Zeichenprogramm verwenden. 
   vorher blende ich noch rote linien ein
*/

GuiControl, show, VLine3
GuiControl, show, VLine4
GuiControl, show, HLine3
GuiControl, show, HLine4
; sleep, 1000
Send {PrintScreen}
return

;----------------------------------------------------------- Rote Linien ausblenden bei Bedarf
ButtonRoteLinienAus:
GuiControl,, VLine4, 100  
GuiControl, hide, VLine3
GuiControl, hide, VLine4
GuiControl, hide, HLine3
GuiControl, hide, HLine4
return


;----------------------------------------------------------- Spiele aus der ini-Datei lesen und in die Drop-Downliste einfügen
addDropDownList:

IfNotExist %IniFile%
  {
    MsgBox Kann %IniFile% nicht finden.
    ExitApp
  }
alleSpiele =
IniRead, alleSpiele, %IniFile%, all, all
Sort, alleSpiele, D| 
If (alleSpiele <> "ERROR")
 {   
   StringReplace, alleSpiele, alleSpiele, `,, |, All          ; die PIPE ist wichtig
 }
else
{
   msgbox Es sind noch keine Spiele gespeichert...
   alleSpiele =
}
return

;---------------------------------------------    es wurde ein Spiel zum Laden ausgesucht
Auswahl:
; Update all variables from the gui, without hiding the Gui.
Gui, Submit, NoHide
gosub, ButtonLaden
return

;--------------------------------------------- Das aktuell angezeigte Spiel soll gelöscht werden
ButtonLöschen:
MsgBox, 4,, Spiel %Spielname% löschen?
  
IfMsgBox No
   return

gefunden = nein
var = %Spielname%|                                  ; Spielname ist am Anfang der Zeile (PIPE rechts) 
; msgbox var= %var% %alleSpiele% 
IfInString, alleSpiele, %var% 
{
  StringReplace, alleSpiele, alleSpiele, %var% , 
  IniWrite, %alleSpiele%,%IniFile%, all, all         ; all-Sektion aktualisieren
  Guicontrol,,Auswahl, |%alleSpiele%                 ; DropDownfeld aktualisieren (PIPE ist wichtig!)
  Msgbox Spiel %Spielname% ist gelöscht
  Gui, Submit , NoHide
  IniDelete,  %IniFile%, Spiele , %Spielname%        ; Das ausgesuchte Spiel läöschen in ini
gefunden  = ja
} 
if (gefunden = "nein") 
{
var = |%Spielname%                                   ; neue Suche: Spielname ist am Ende der Zeile (PIPE links) oder mittendrin
; msgbox var= %var% %alleSpiele% 
IfInString, alleSpiele, %var% 
{
  StringReplace, alleSpiele, alleSpiele, %var% , 
  IniWrite, %alleSpiele%,%IniFile%, all, all
  Guicontrol,, Auswahl, |%alleSpiele%
 Msgbox Spiel %Spielname% ist gelöscht
 Gui, Submit , NoHide
IniDelete,  %IniFile%, Spiele , %Spielname%
gefunden  = ja
}
}
if (gefunden = "nein") 
{
  msgbox Spiel %Spielname% wurde nicht gefunden
}
return

;--------------------------------------------- 
ButtonLaden:
; IniRead, Text2, Config.ini, Generel, Spielname
IniRead, spiel, %IniFile%, Spiele, %Auswahl%
SpielArray := StrSplit(spiel, ",")
Loop % SpielArray.MaxIndex()
{  

    this_field := SpielArray[a_index]
    
    if (a_index = 1) {                           ; erstes Feld des Arrays ist Spielname
      Spielname = %this_field%
      GuiControl,, Spielname , %this_field% 
      nr = 1                     ; nr=1 ist Zahlenfeld, 
                                 ; nr=2 ist Linie rechts neben Zahlenfeld verikal an/aus, 
                                 ; nr=3 ist linie unter dem zahlenfeld horizontal an/aus
       
      feldnr := 1                ; Feldnr sind die zahlenfelder 9x9 von 1 bis 81
    }
    else 
    {  
 ;    msgbox index= %A_index% nummer=%nr% feld= %feldnr% inhalt= %this_field%
      if (nr = 1) {
         GuiControl,, T%feldnr% , %this_field%          ; Zahlenfeld T1 mit dem Spielnamen belegen
         nr += 1                                        ; nächstes feld 2 ist Linie rechts vertikal
       } else 
      if (nr = 2) {                                     ; Linie rechts neben dem zahlenfeld färben
;        Msgbox thisfieldstart=>%this_field%<
        if (this_field = "")                            ; leeres feld abfangen
        {
          this_field = aus
        }
         varRT%feldnr% = %this_field%                   ; varRT1 mit "an" oder "aus" belegen
         status =  %this_field%                         ; ab hier Linie schwarz(an) oder weiss (aus) färben
         RBG  = %feldnr%
         gosub, GetColor
         CtlColors.Detach(RTID%RBG%)                    ;   alte einstellung löschen
         CtlColors.Attach(RTID%RBG%, newColor, newColor) ; statt dessen neue einstellung setzen
         nr += 1                                         ; neue nr = 3 , nun zur Linie unter dem feld
       } else
      if (nr = 3) {                                ; Linie unter dem zahlenfeld färben
          if (this_field = "")            ; leeres feld abfangen
        {
          this_field = aus
        }
  ;       msgbox feldnummer=>%feldnr%< thisfield=>%this_field%<
         varRT%feldnr%009 = %this_field%                ; varRT1009 mit "an" oder "aus" belegen
         status =  %this_field%                          ; ab hier Linie schwarz(an) oder weiss (aus) färben
         RBG  = %feldnr%009
         gosub, GetColor
         CtlColors.Detach(RTID%RBG%)                           ;   alte einstellung löschen
         CtlColors.Attach(RTID%RBG%, newColor, newColor) ; statt dessen neue einstellung setzen
         nr = 1                                          ; 
         feldnr += 1
       } 
    }
}
return

;--------------------------------------------- 
ButtonSpeichern:
GuiControlGet, Spielname, , Spielname 

IfNotInString, alleSpiele, %Spielname%    ; wenn spielname neu ist in der ini, speicher
{
   alleSpiele = %alleSpiele%|%Spielname%
   IniWrite, %alleSpiele%,%IniFile%, all, all    ; scheib all-Section
   IniRead, alleSpiele, %IniFile%, all, all      ; lese sie wieder
   Sort, alleSpiele, D|                          ; sortiere alphabetisch
   Guicontrol,,Auswahl, |%alleSpiele%            ; und gebe die neue Spielliste an das DropownFeld
   gosub, saveSpiel                              ; und nun speicher die zahlen, felder und linien-Stati
   Msgbox Spiel %Spielname% ist gespeichert
   Gui, Submit , NoHide
return                                           ; return, wenn spielname neu war, sonst weiter in dieser sub....
}

MsgBox, 4,, Spiel  %Spielname%  ist bereits vorhanden. Willst Du das Spiel überschreiben? Du kannst auch den Namen im Feld "aktuelles Spiel" ändern.
  
IfMsgBox No
   return
   
gosub, saveSpiel                                  ; hier nur speicher die zahlen, felder und linien-Stati, add-section kennt die ini schon
Msgbox Spiel %Spielname% ist gespeichert
Gui, Submit , NoHide
return

;--------------------------------------------- 
saveSpiel:                                          
spiel = %Spielname%%separator%                    ; Spielname und semikolon als separator
   loop, 81 
  {  
    GuiControlGet, var, , T%A_Index%              ; hole spielname
     spiel = %spiel%%var%%separator%              ; spielname;
     var := varRT%A_Index%                        ; 
     spiel = %spiel%%var%%separator%              ; spielname;zahlenfeld1
     var := varRT%A_Index%009
     spiel = %spiel%%var%%separator%
  } 
; Guicontrol,,Spiel, %spiel%
IniWrite, %spiel%, %IniFile%, Spiele, %Spielname%
return

;--------------------------------------------- 
ButtonLeeren:
    Gui, Submit, Nohide
      loop, 81 {
      GuiControl,, T%A_Index% ,      ; Ziffernfeld leeren
      status = aus
      
      RBG  = %A_Index%
      varRT%A_Index% = aus                                ; Linie Rechts vom feld auf aus setzen
      gosub, GetColor                                      ; Farbe für leer holen
      CtlColors.Detach(RTID%RBG%)                           ;   alte einstellung löschen
      CtlColors.Attach(RTID%RBG%, newColor, newColor) ; statt dessen neue einstellung setzen
      
      varRT%A_Index%009 = aus                            ; Linie unter dem Feld auf aus setzen
      RBG = %A_Index%009
      gosub, GetColor
      CtlColors.Detach(RTID%RBG%)                           ;   alte einstellung löschen
      CtlColors.Attach(RTID%RBG%, newColor, newColor) ; statt dessen neue einstellung setzen
      }
 
    Spielname = leer
    Guicontrol,,Spielname, %Spielname%
    gosub, buttonBerechnen
return

;--------------------------------------------- 
ButtonLinienAn:
    Gui, Submit, Nohide
      loop, 81 {
      status = an ; status ist hier immer "an"
      
      RBG  = %A_Index%                                      ; Linie Rechts vom feld auf an setzen
      varRT%A_Index% = an
      gosub, GetColor
      CtlColors.Detach(RTID%RBG%)                           ;   alte einstellung löschen
      CtlColors.Attach(RTID%RBG%, newColor, newColor) ; statt dessen neue einstellung setzen
      
      RBG = %A_Index%009                                    ; Linie unter dem Feld an aus setzen
      varRT%A_Index%009 = an
      gosub, GetColor
      CtlColors.Detach(RTID%RBG%)                           ;   alte einstellung löschen
      CtlColors.Attach(RTID%RBG%, newColor, newColor) ; statt dessen neue einstellung setzen
      }
return

;--------------------------------------------- 
ButtonBerechnen:
      Gui, Submit, Nohide
      summe := 0
      loop, 81 {
         summe += T%A_Index%
       }
      Guicontrol,,Summe, Summe:`n %Summe% von 405
      Return
      
;--------------------------------------------- 
zeichneZahlenfelder:

loop, 9 { 
  loop 9 {
   
 nr += 1
 Gui, Add, Edit, x%xx% y%yy% w%ww% h%ww% cBlack LEFT vT%nr% number gButtonBerechnen hwndTID%nr% -Multi , %nr%
 CtlColors.Attach(TID%nr%, "White", "Black")   ; vorbelegung black on white 
  
; --------- horizontale Trennlinien

if (nr >= 19 and nr <= 27) or (nr >= 46 and nr <= 54)   { ; alle drei zeilen dicke linie ww3)
   y3 := yy + ww
   h3 := ww3
  }
 else {
   y3 := yy + ww
   h3 := ww2
  }
Gui, Add, Text, x%xx% y%y3% w%ww% h%h3% cBlack gRBG vRT%nr%009 hwndRTID%nr%009, ------
varRT%nr%009 = aus   
hwndVarRT%nr%009 := RTID%nr%009

; ---------------- keine Trennlinien mehr nach letzter Zeile
if (nr > 72) {
  GuiControl, hide,  RT%nr%009
}

; --------- vertikale Trennlinien
 h2 := ww
 y2 := yy 
 xx += ww 
 x2 := xx
 if or (nr = 3) or (nr = 6) or (nr = 12) or (nr = 15) or (nr = 21) or (nr = 24) or (nr = 30) or (nr = 33) or (nr = 39) or (nr = 42) or (nr = 48) or (nr = 51) or (nr = 57) or (nr = 60) or (nr = 66) or (nr = 69) or (nr = 75) or (nr = 78) {
   xx+= ww3
   w2 := ww3
  }
 else {
   xx+= ww2
   w2 := ww2
  }
  Gui, Add, Text, x%x2% y%y2% w%w2% h%h2% c0xF0F0F0 gRBG vRT%nr% hwndRTID%nr%,---------
  varRT%nr% = aus   
  hwndVarRT%nr%:= RTID%nr%
  
; ---------------- keine Trennlinien mehr nach letzter Spalte
 if  (nr = 9) or (nr = 18) or (nr = 27) or (nr = 36) or (nr = 45) or (nr = 54) or (nr = 63) or (nr = 72) or (nr = 81) {
 GuiControl, hide,  RT%nr%
}
 
 }
 xx := 10
 yy += ww 
 y2 := yy
if (nr = 27) or (nr = 54) {
   yy += ww3
   h2 := w3
  }
 else {
   yy += ww2 
   h2 := ww2
  }
 }
  gosub, buttonBerechnen
return


;--------------------------------------------- 
RBG:
RBG := SubStr(A_GuiControl, 3)
GuiC := A_GuiControl
status := var%A_GuiControl%
rtis2 := RTID%RBG%
 
 ; sgbox %GuiC%: status ist >%status%< RBG is %RBG% RTID is %rtis2%
If (status = "an")   ; linie ist an, also ausschalten
{            
 
 var%A_GuiControl% := "aus"
 status := "aus" 
 gosub GetColor
 
} else    ; linie ist aus, also anschalten
{
  var%A_GuiControl% := "an"
  status := "an"
  gosub GetColor
 
} 
CtlColors.Detach(RTID%RBG%)                     ; alte einstellung löschen
CtlColors.Attach(RTID%RBG%, newColor, newColor) ; linie auf schwarz

Return


;--------------------------------------------- 
GetColor:  
; parameter: status=an oder aus; RBG= RTID%RBG%
; msgbox status ist >%status%< RBG is %RBG% 
; colors  AQUA; BLACK, BLUE, FUCHSIA, GRAY, GREEN, LIME, MAROON, NAVY, OLIVE, PURPLE, RED, SILVER, TEAL, WHITE, YELLOW
; additional colors defined as follows:

PURPLELIGHT= 0x4040FF, 
BACKGR= 0xF0F0F0, 
BACKGR2= 0xEEFFFF

If (status = "an")   
{            
  newColor := "BLACK"  
  altColor := "BLACK"   ; Farbe für Quadrat-Linien vertikal nach Zeilen 3 und 6, horizontal nach spalten 3 und 6 
} else   
{
  newColor := "BACKGR"  
  altColor := "BACKGR2"  ; Farbe für Quadrat-Linien vertikal nach Zeilen 3 und 6, horizontal nach spalten 3 und 6 
} 

;------------------------------------------------------ vertikale linien nach dritter und sechster Spalte
if  (RBG = 3) or (RBG = 6) or (RBG = 12) or (RBG = 15) or (RBG = 21) or (RBG = 24) or (RBG = 30) or (RBG = 33) or (RBG= 39) or (RBG= 42) or (RBG= 48) or (RBG= 51) or (RBG= 57) or (RBG= 60) or (RBG= 66) or (RBG= 69) or (RBG= 75) or (RBG= 78) {
 newColor := altColor
}

;-----------------------------------------------------  horizontale linien nach dritter zeile
if  (RBG = 19009) or (RBG = 20009) or (RBG = 21009) or (RBG = 22009) or (RBG = 23009) or (RBG = 24009) or (RBG = 25009) or (RBG = 26009) or (RBG = 27009)  {
 newColor := altColor
}
;-----------------------------------------------------  horizontale linien nach sechster zeile
if  (RBG = 46009) or (RBG = 47009) or (RBG = 48009) or (RBG = 49009) or (RBG = 50009) or (RBG = 51009) or (RBG = 52009) or (RBG = 53009) or (RBG = 54009)  {
 newColor := altColor 
}
return

Muster killersudoku.ini:

Code: Select all

[all]
[all]
all=07-10|09-08|11-04|11-05|14-07|17-13|33|leer|11-11
[Spiele]
leer=leer,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,,aus,aus,
33=33,1,aus,aus,2,aus,aus,3,aus,aus,4,aus,aus,5,aus,aus,6,aus,aus,7,aus,aus,8,aus,aus,9,aus,aus,10,aus,aus,11,aus,aus,12,aus,aus,13,aus,aus,14,aus,aus,15,aus,aus,16,aus,aus,17,aus,aus,18,aus,aus,19,aus,aus,20,aus,aus,21,aus,aus,22,aus,aus,23,aus,aus,24,aus,aus,25,aus,aus,26,aus,aus,27,aus,aus,28,aus,aus,29,aus,aus,30,aus,aus,31,aus,aus,32,aus,aus,33,aus,aus,34,aus,aus,35,aus,aus,36,aus,aus,37,aus,aus,38,aus,aus,39,aus,aus,40,aus,aus,41,aus,aus,42,aus,aus,43,aus,aus,44,aus,aus,45,aus,aus,46,aus,aus,47,aus,aus,48,aus,aus,49,aus,aus,50,aus,aus,51,aus,aus,52,aus,aus,53,aus,aus,54,aus,aus,55,aus,aus,56,aus,aus,57,aus,aus,58,aus,aus,59,aus,aus,60,aus,aus,61,aus,aus,62,aus,aus,63,aus,aus,64,aus,aus,65,aus,aus,66,aus,aus,67,aus,aus,68,aus,aus,69,aus,aus,70,aus,aus,71,aus,aus,72,aus,aus,73,aus,aus,74,aus,aus,75,aus,aus,76,aus,aus,77,aus,aus,78,aus,aus,79,aus,aus,80,aus,aus,81,aus,aus,
11-05=11-05,11,an,aus,5,an,aus,34,aus,aus,,aus,an,,an,aus,13,aus,an,,an,an,10,an,aus,7,aus,aus,,an,an,,an,an,,an,aus,12,an,aus,,an,aus,23,aus,aus,,an,aus,,an,an,,aus,an,11,aus,an,,an,an,,an,an,,an,an,,an,an,,aus,an,,an,aus,10,aus,an,,aus,an,10,an,aus,22,an,aus,5,aus,an,,an,an,11,aus,aus,,an,an,,an,an,36,an,aus,11,aus,aus,,an,aus,,an,aus,13,aus,an,,an,an,,an,an,11,aus,an,,an,an,,an,aus,,aus,an,,an,an,,an,an,9,aus,an,,an,an,12,aus,an,,an,an,,aus,aus,,an,aus,3,aus,aus,10,aus,an,,an,an,12,aus,an,,an,an,14,aus,an,,an,an,,aus,an,,an,an,,aus,an,13,an,aus,7,aus,an,,an,an,14,an,aus,8,aus,an,,an,an,12,aus,an,,an,an,15,aus,aus,,an,aus,7,aus,aus,,an,aus,,an,aus,5,aus,aus,,an,aus,9,aus,aus,,an,aus,,aus,aus,
07-10=07-10,7,aus,an,,an,an,10,aus,an,,an,an,9,aus,an,,an,an,16,aus,an,,an,an,5,aus,aus,15,an,aus,10,aus,an,,an,an,6,an,aus,17,aus,an,,an,aus,11,an,aus,12,an,aus,,aus,an,,an,an,11,an,aus,12,an,aus,,an,an,9,an,aus,,an,an,,an,an,,an,an,7,aus,aus,7,an,aus,,an,an,,an,an,15,an,aus,,an,an,8,an,aus,11,an,aus,8,an,aus,,aus,an,,an,an,10,aus,an,,an,an,,an,an,,aus,an,,an,an,,an,an,,an,an,18,aus,aus,7,an,aus,11,aus,an,,an,an,10,an,aus,25,aus,aus,,aus,an,,an,aus,,aus,an,,aus,an,,an,an,15,aus,an,,an,an,,an,an,,an,an,9,an,aus,,an,an,11,aus,an,,aus,an,10,aus,an,,an,an,8,aus,an,,an,an,10,an,aus,,an,an,10,aus,an,,an,an,20,aus,aus,5,aus,aus,,an,aus,11,aus,aus,,an,aus,,an,aus,9,aus,aus,,an,aus,,aus,aus,,aus,aus,
11-04=11-04,11,aus,an,,an,an,4,an,aus,21,aus,aus,,aus,an,,an,an,17,an,aus,13,an,aus,8,aus,aus,11,aus,an,,an,an,,an,an,,an,an,12,an,aus,13,an,aus,,an,aus,,an,an,,aus,an,14,aus,an,,an,an,7,aus,an,,an,an,,an,an,,an,aus,,an,aus,15,an,aus,7,aus,aus,16,an,aus,17,aus,aus,,aus,an,,an,an,12,an,aus,,an,an,,an,an,,an,an,,aus,an,,an,an,,an,an,5,aus,an,,an,an,,an,an,10,aus,an,,an,an,12,aus,an,,aus,an,25,aus,an,,aus,an,,aus,an,,an,an,15,an,aus,6,aus,an,,an,an,9,an,aus,9,aus,aus,6,aus,an,,an,an,16,an,aus,10,an,aus,,an,an,9,aus,an,,an,an,,an,an,,aus,an,11,an,aus,6,an,aus,,an,an,,aus,an,,an,aus,15,an,aus,15,an,aus,6,aus,an,,aus,an,,an,aus,,an,aus,11,aus,aus,,an,aus,,an,aus,,an,aus,,an,aus,11,aus,aus,,aus,aus,
14-07=14-07,14,an,aus,7,an,aus,10,aus,an,,an,an,12,aus,an,,an,an,21,aus,aus,,an,aus,14,aus,aus,,an,an,,an,an,22,aus,aus,,an,aus,8,an,aus,,aus,an,,aus,an,,an,an,,aus,an,10,aus,an,,an,an,,aus,an,,an,an,,an,an,6,aus,an,,an,an,12,an,aus,22,aus,aus,16,an,aus,5,aus,an,,an,an,13,aus,an,,an,an,7,aus,an,,an,an,,an,an,,aus,aus,,an,an,7,aus,an,,an,an,6,aus,an,,an,an,8,aus,an,,an,an,10,an,aus,,aus,aus,13,aus,an,,an,an,13,an,aus,16,aus,an,,an,an,9,aus,an,,an,an,,an,an,,aus,aus,11,aus,an,,an,an,,an,an,4,an,aus,16,aus,aus,,an,an,6,aus,an,,an,an,,aus,an,8,aus,an,,an,an,14,an,aus,,an,an,,an,an,16,aus,an,,an,an,10,aus,an,,aus,an,3,aus,aus,,an,aus,,an,aus,14,aus,aus,,an,aus,12,aus,aus,,an,aus,10,aus,aus,,aus,aus,
0=0,1,aus,aus,2,aus,aus,3,aus,aus,4,aus,aus,5,aus,aus,6,aus,aus,7,aus,aus,8,aus,aus,9,aus,aus,10,aus,aus,11,aus,aus,12,aus,aus,13,aus,aus,14,aus,aus,15,aus,aus,16,aus,aus,17,aus,aus,18,aus,aus,19,aus,aus,20,aus,aus,21,aus,aus,22,aus,aus,23,aus,aus,24,aus,aus,25,aus,aus,26,aus,aus,27,aus,aus,28,aus,aus,29,aus,aus,30,aus,aus,31,aus,aus,32,aus,aus,33,aus,aus,34,aus,aus,35,aus,aus,36,aus,aus,37,aus,aus,38,aus,aus,39,aus,aus,40,aus,aus,41,aus,aus,42,aus,aus,43,aus,aus,44,aus,aus,45,aus,aus,46,aus,aus,47,aus,aus,48,aus,aus,49,aus,aus,50,aus,aus,51,aus,aus,52,aus,aus,53,aus,aus,54,aus,aus,55,aus,aus,56,aus,aus,57,aus,aus,58,aus,aus,59,aus,aus,60,aus,aus,61,aus,aus,62,aus,aus,63,aus,aus,64,aus,aus,65,aus,aus,66,aus,aus,67,aus,aus,68,aus,aus,69,aus,aus,70,aus,aus,71,aus,aus,72,aus,aus,73,aus,aus,74,aus,aus,75,aus,aus,76,aus,aus,77,aus,aus,78,aus,aus,79,aus,aus,80,aus,aus,81,aus,aus,
17-13=17-13,17,aus,an,,an,an,13,aus,an,,an,an,13,an,aus,7,aus,an,,an,an,22,an,aus,6,aus,aus,5,aus,an,,an,an,9,aus,an,,an,an,,an,an,7,an,aus,15,an,aus,,an,aus,,aus,an,13,an,aus,9,aus,an,,an,an,5,aus,an,,an,an,,an,an,,an,an,,aus,an,,aus,an,,an,an,24,aus,an,,aus,an,,aus,an,,an,an,11,aus,an,,an,an,4,aus,an,,aus,an,17,aus,an,,an,aus,9,aus,an,,an,an,15,aus,an,,an,an,9,aus,an,,an,an,9,aus,aus,7,an,aus,,aus,an,,an,an,10,an,aus,22,aus,aus,,aus,an,,an,aus,10,an,aus,,aus,an,,an,an,15,aus,an,,an,an,,an,an,,an,an,12,an,aus,,an,an,,an,an,13,aus,aus,12,aus,an,,an,an,11,aus,an,,an,an,8,an,aus,,an,an,7,aus,an,,an,an,,aus,an,3,aus,aus,,an,aus,9,aus,aus,,an,aus,,an,aus,12,aus,aus,,an,aus,15,aus,aus,,aus,aus,
09-08=09-08,9,an,aus,8,aus,an,,an,an,3,an,aus,11,an,aus,11,aus,an,,an,an,17,aus,an,,aus,an,,an,an,6,aus,an,,an,an,,an,an,,an,an,17,an,aus,19,aus,aus,,aus,an,,aus,aus,12,an,aus,12,an,aus,7,an,aus,10,an,aus,7,an,aus,,an,an,,an,an,9,an,aus,,aus,an,,an,an,,an,an,,an,an,,an,an,,an,aus,14,aus,an,,an,an,,an,an,15,aus,aus,6,aus,an,,an,an,17,aus,an,,an,an,,an,an,9,an,aus,9,an,aus,4,an,aus,,aus,an,24,aus,aus,,an,aus,18,aus,an,,aus,an,,an,an,,an,an,,an,an,,an,an,9,aus,aus,,aus,an,,aus,an,,an,an,34,aus,an,,an,aus,3,an,aus,15,an,aus,17,an,aus,,aus,an,11,an,aus,15,aus,an,,aus,an,,an,an,,an,aus,,an,an,,an,an,,an,aus,4,aus,aus,,an,aus,15,aus,aus,,an,aus,,aus,aus,,an,aus,8,aus,aus,,an,aus,,an,aus,,aus,aus,
11-11=11-11,11,aus,an,,an,an,11,aus,an,,an,an,11,aus,an,,an,an,23,an,aus,11,aus,an,,aus,an,10,aus,an,,an,an,27,aus,an,,aus,an,,aus,an,,an,aus,,aus,aus,,an,aus,11,aus,aus,29,an,aus,8,an,aus,12,an,aus,5,aus,an,,an,an,,an,an,,aus,an,,an,an,,aus,an,,an,aus,,an,an,,an,an,9,aus,an,,an,an,17,an,aus,14,aus,an,,an,an,3,aus,aus,,aus,an,,aus,an,,an,an,4,aus,an,,an,an,,an,an,9,aus,an,,an,an,,aus,an,13,an,aus,3,aus,an,,an,an,24,an,aus,9,aus,an,,an,an,10,an,aus,12,aus,an,,aus,an,,an,an,21,an,aus,13,an,aus,,an,aus,7,aus,an,,an,an,,an,an,16,aus,an,,aus,an,3,an,aus,,an,aus,,an,an,,aus,an,,aus,an,,an,an,11,an,aus,5,aus,an,,aus,an,,an,aus,,an,aus,12,aus,aus,,an,aus,11,aus,aus,,an,aus,,an,aus,10,aus,aus,,aus,aus,

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 1 guest