-- Sudoku by Fricks -- Start : 28.04.06 -- Update : 20.05.06 SUDOKUPUZZLE_VERSION = "Version 1.0 by Fricks"; -- Variablen Sudoku_Config={}; Sudoku_Config[1]={}; -- GTable Sudoku_Config[2]={}; -- GTableR Sudoku_Config[3]={}; -- GTableL Sudoku_Config[4]={}; -- GTableC Sudoku_Config[5]=3; -- Level Sudoku_Config[6]=0; -- ListID Sudoku_Config[7]=0; -- Zahlen count Sudoku_Config[8]=0; -- Hilfe count Sudoku_Config[9]={1}; -- GTableH -- ButtonID > Gitter Koordinaten local Sudoku_GTableID = { [11] = { x = 1, y = 1}, [12] = { x = 2, y = 1}, [13] = { x = 3, y = 1}, [14] = { x = 4, y = 1}, [15] = { x = 5, y = 1}, [16] = { x = 6, y = 1}, [17] = { x = 7, y = 1}, [18] = { x = 8, y = 1}, [19] = { x = 9, y = 1}, [21] = { x = 1, y = 2}, [22] = { x = 2, y = 2}, [23] = { x = 3, y = 2}, [24] = { x = 4, y = 2}, [25] = { x = 5, y = 2}, [26] = { x = 6, y = 2}, [27] = { x = 7, y = 2}, [28] = { x = 8, y = 2}, [29] = { x = 9, y = 2}, [31] = { x = 1, y = 3}, [32] = { x = 2, y = 3}, [33] = { x = 3, y = 3}, [34] = { x = 4, y = 3}, [35] = { x = 5, y = 3}, [36] = { x = 6, y = 3}, [37] = { x = 7, y = 3}, [38] = { x = 8, y = 3}, [39] = { x = 9, y = 3}, [41] = { x = 1, y = 4}, [42] = { x = 2, y = 4}, [43] = { x = 3, y = 4}, [44] = { x = 4, y = 4}, [45] = { x = 5, y = 4}, [46] = { x = 6, y = 4}, [47] = { x = 7, y = 4}, [48] = { x = 8, y = 4}, [49] = { x = 9, y = 4}, [51] = { x = 1, y = 5}, [52] = { x = 2, y = 5}, [53] = { x = 3, y = 5}, [54] = { x = 4, y = 5}, [55] = { x = 5, y = 5}, [56] = { x = 6, y = 5}, [57] = { x = 7, y = 5}, [58] = { x = 8, y = 5}, [59] = { x = 9, y = 5}, [61] = { x = 1, y = 6}, [62] = { x = 2, y = 6}, [63] = { x = 3, y = 6}, [64] = { x = 4, y = 6}, [65] = { x = 5, y = 6}, [66] = { x = 6, y = 6}, [67] = { x = 7, y = 6}, [68] = { x = 8, y = 6}, [69] = { x = 9, y = 6}, [71] = { x = 1, y = 7}, [72] = { x = 2, y = 7}, [73] = { x = 3, y = 7}, [74] = { x = 4, y = 7}, [75] = { x = 5, y = 7}, [76] = { x = 6, y = 7}, [77] = { x = 7, y = 7}, [78] = { x = 8, y = 7}, [79] = { x = 9, y = 7}, [81] = { x = 1, y = 8}, [82] = { x = 2, y = 8}, [83] = { x = 3, y = 8}, [84] = { x = 4, y = 8}, [85] = { x = 5, y = 8}, [86] = { x = 6, y = 8}, [87] = { x = 7, y = 8}, [88] = { x = 8, y = 8}, [89] = { x = 9, y = 8}, [91] = { x = 1, y = 9}, [92] = { x = 2, y = 9}, [93] = { x = 3, y = 9}, [94] = { x = 4, y = 9}, [95] = { x = 5, y = 9}, [96] = { x = 6, y = 9}, [97] = { x = 7, y = 9}, [98] = { x = 8, y = 9}, [99] = { x = 9, y = 9}, }; -- Aktuelle Zahlenanordnung local Sudoku_GTable = { [1] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [2] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [3] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [4] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [5] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [6] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [7] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [8] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [9] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, }; -- Zahlenanordnung zu Beginn local Sudoku_GTableR = { [1] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [2] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [3] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [4] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [5] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [6] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [7] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [8] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [9] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, }; -- Zahlenanordnung Lösung local Sudoku_GTableL = { [1] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [2] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [3] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [4] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [5] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [6] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [7] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [8] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [9] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, }; -- Ziffern die mit Hilfe gesetzt wurden local Sudoku_GTableH = { [1] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [2] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [3] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [4] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [5] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [6] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [7] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [8] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [9] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, }; -- Hintergrundfarbe bestimmen local Sudoku_GTableC = { [1] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [2] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [3] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [4] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [5] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [6] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [7] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [8] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, [9] = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0, [8] = 0, [9] = 0 }, }; -- Farben von Text und Hintergrund, Rahmen local Sudoku_Color = { ["blau"] = { ["r"] = 0, ["g"] = 0, ["b"] = 0.6 }, ["gruen"] = { ["r"] = 0, ["g"] = 0.6, ["b"] = 0 }, ["rot"] = { ["r"] = 0.6, ["g"] = 0, ["b"] = 0 }, ["schwarz"] = { ["r"] = 0.3, ["g"] = 0.3, ["b"] = 0.3 }, ["textweiss"] = { ["r"] = 1, ["g"] = 1, ["b"] = 1 }, ["textgelb"] = { ["r"] = 1, ["g"] = 1, ["b"] = 0 }, ["textlila"] = { ["r"] = 1, ["g"] = 0, ["b"] = 1 }, ["textgruen"] = { ["r"] = 0, ["g"] = 1, ["b"] = 0 }, }; local auswahl=0; -- Auswahl der Zahl 1-9, 0 , ? local level=3; -- Level : 3=Leicht, 2=Mittel, 1=Schwer local level2=3; local listid=0; local listid1=0; local listid2=0; local listid3=0; local zahlencount=0; local hilfecount=0; local sudoplay=0; -- 0 = nicht anklickbar, 1 = anklickbar -- Functions function Sudoku_OnLoad() this:RegisterEvent("VARIABLES_LOADED"); tinsert(UISpecialFrames, "Sudoku_MainFrame"); UIPanelWindows["Sudoku_MainFrame"] = nil; Sudoku_MainFrame:RegisterForDrag("LeftButton"); SLASH_SUDOKU_FRAME1 = SUDOKU_FRAME_SLASH; SlashCmdList["SUDOKU_FRAME"] = function(msg) Sudoku_SlashCommand(msg); end if( DEFAULT_CHAT_FRAME ) then DEFAULT_CHAT_FRAME:AddMessage(SUDOKU_ONLOAD_MESSAGE, 1, 1, 0); end Sudoku_ViewGameButton:Disable(); Sudoku_Auswahl1Text:SetText("1"); Sudoku_Auswahl2Text:SetText("2"); Sudoku_Auswahl3Text:SetText("3"); Sudoku_Auswahl4Text:SetText("4"); Sudoku_Auswahl5Text:SetText("5"); Sudoku_Auswahl6Text:SetText("6"); Sudoku_Auswahl7Text:SetText("7"); Sudoku_Auswahl8Text:SetText("8"); Sudoku_Auswahl9Text:SetText("9"); Sudoku_Auswahl10Text:SetText(""); Sudoku_Auswahl11Text:SetText("?"); Sudoku_LevelAuswahl3Text:SetText(SUDOKU_LEVEL_EASY); Sudoku_LevelAuswahl2Text:SetText(SUDOKU_LEVEL_MEDIUM); Sudoku_LevelAuswahl1Text:SetText(SUDOKU_LEVEL_HARD); Sudoku_LevelAuswahl_OnClick("LeftButton",3); Sudoku_Count1Text:SetText("ID #0"); Sudoku_Count2Text:SetText(SUDOKU_EMPTYCELLS..zahlencount); Sudoku_Count3Text:SetText("? : 0"); --Sudoku_MainFrameVersionText:SetTextColor(0.7,0,0,1); end function Sudoku_OnEvent() if (event == "VARIABLES_LOADED") then Sudoku_Load(); end end function Sudoku_Load() if (getn(Sudoku_Config[1])>0) then Sudoku_GTable=Sudoku_Config[1]; Sudoku_GTableR=Sudoku_Config[2]; Sudoku_GTableL=Sudoku_Config[3]; Sudoku_GTableC=Sudoku_Config[4]; level=Sudoku_Config[5]; listid=Sudoku_Config[6]; hilfecount=Sudoku_Config[8]; if (getn(Sudoku_Config[9])>1) then Sudoku_GTableH=Sudoku_Config[9]; end if (level==1) then listid1=listid; elseif (level==2) then listid2=listid; elseif (level==3) then listid3=listid; end Sudoku_Count1Text:SetText("ID #"..listid); Sudoku_Count3Text:SetText("? : "..hilfecount); Sudoku_LevelAuswahl_OnClick("LeftButton",level); Sudoku_ViewGameButton:Enable(); sudoplay=1; end Sudoku_ErstelleGitter(); Sudoku_GitterFarbe(); end function Sudoku_SlashCommand(msg) Sudoku_Toggle(); end function Sudoku_Toggle() if(Sudoku_MainFrame:IsVisible()) then HideUIPanel(Sudoku_MainFrame); else ShowUIPanel(Sudoku_MainFrame); end end function Sudoku_Gitter_OnClick(button,gitterid) if (sudoplay==1) then local gx=Sudoku_GTableID[gitterid]["x"]; local gy=Sudoku_GTableID[gitterid]["y"]; if ((button == "LeftButton" or button == "RightButton") and Sudoku_GTableR[gy][gx]==0) then local GitterText = getglobal("Sudoku_Gitter"..gitterid.."Text"); if (auswahl>0 and auswahl<10 and Sudoku_GTable[gy][gx]~=auswahl and Sudoku_GTableH[gy][gx]==0) then Sudoku_GTable[gy][gx]=auswahl; GitterText:SetText(auswahl); elseif (auswahl==10 and Sudoku_GTableH[gy][gx]==0) then Sudoku_GTable[gy][gx]=0; GitterText:SetText(""); elseif (auswahl==11 and Sudoku_GTableH[gy][gx]==0) then Sudoku_GTableH[gy][gx]=1; Sudoku_GTable[gy][gx]=Sudoku_GTableL[gy][gx]; GitterText:SetText(Sudoku_GTableL[gy][gx]); GitterText:SetTextColor(Sudoku_Color["textgruen"]["r"],Sudoku_Color["textgruen"]["g"],Sudoku_Color["textgruen"]["b"]); Sudoku_Config[9]=Sudoku_GTableH; hilfecount=Sudoku_GetHelp(); Sudoku_Count3Text:SetText("? : "..hilfecount); end zahlencount=Sudoku_GetEmpty(); Sudoku_Count2Text:SetText(SUDOKU_EMPTYCELLS..zahlencount); Sudoku_Config[1]=Sudoku_GTable; Sudoku_Check(); Sudoku_Config[4]=Sudoku_GTableC; Sudoku_Config[7]=zahlencount; Sudoku_Config[8]=hilfecount; Sudoku_CheckSuccess(); end end end function Sudoku_Auswahl_OnClick(button,auswahlid) if( (button == "LeftButton" or button == "RightButton") and sudoplay==1) then auswahl=auswahlid; local i=0; for i=1,11 do local Gitter = getglobal("Sudoku_Auswahl"..i.."Texture"); local Gitter2 = getglobal("Sudoku_Auswahl"..i.."Texture2"); if (i==auswahlid) then Gitter:Hide(); Gitter2:Show(); else Gitter2:Hide(); Gitter:Show(); end end end end function Sudoku_LevelAuswahl_OnClick(button,levelid) if( button == "LeftButton" or button == "RightButton" ) then level2=levelid; local i=0; for i=1,3 do local Gitter = getglobal("Sudoku_LevelAuswahl"..i.."Texture"); local Gitter2 = getglobal("Sudoku_LevelAuswahl"..i.."Texture2"); if (i==levelid) then Gitter:Hide(); Gitter2:Show(); else Gitter2:Hide(); Gitter:Show(); end end if (level2==1) then Sudoku_Count1Text:SetText("ID #"..listid1); elseif (level2==2) then Sudoku_Count1Text:SetText("ID #"..listid2); elseif (level2==3) then Sudoku_Count1Text:SetText("ID #"..listid3); end end end function Sudoku_LevelID_OnClick(button) if( button == "LeftButton") then if (level2==1) then listid1=math.random(getn(Sudoku_List1A)); listid=listid1; elseif (level2==2) then listid2=math.random(getn(Sudoku_List2A)); listid=listid2; elseif (level2==3) then listid3=math.random(getn(Sudoku_List3A)); listid=listid3; end Sudoku_Count1Text:SetText("ID #"..listid); end if( button == "RightButton") then Sudoku_Count1:Hide(); Sudoku_EditID:SetText(""); Sudoku_EditID:Show(); end end function Sudoku_EditListID(lista) if (lista>"") then local list=tonumber(lista); if (level2==1) then if (list>getn(Sudoku_List1A)) then list=getn(Sudoku_List1A); elseif (list<1) then list=1; end listid1=list; elseif (level2==2) then if (list>getn(Sudoku_List2A)) then list=getn(Sudoku_List2A); elseif (list<1) then list=1; end listid2=list; elseif (level2==3) then if (list>getn(Sudoku_List3A)) then list=getn(Sudoku_List3A); elseif (list<1) then list=1; end listid3=list; end listid=list; Sudoku_Count1Text:SetText("ID #"..listid); end end function Sudoku_GetEmpty() local x=0; local y=0; local empty=0; for y=1,9 do for x=1,9 do if (Sudoku_GTable[y][x]==0) then empty=empty+1; end end end return empty; end function Sudoku_GetHelp() local x=0; local y=0; local ret=0; for y=1,9 do for x=1,9 do if (Sudoku_GTableH[y][x]==1) then ret=ret+1; end end end return ret; end function Sudoku_CheckSuccess() local x=0; local y=0; local success=0; for y=1,9 do for x=1,9 do if (Sudoku_GTable[y][x]~=Sudoku_GTableL[y][x]) then success=1; end end end if (success==0) then sudoplay=1; Sudoku_Auswahl_OnClick("LeftButton",0); Sudoku_ViewGameButton:Disable(); sudoplay=0; Sudoku_Config[1]={}; Sudoku_Config[2]={}; Sudoku_Config[3]={}; Sudoku_Config[4]={}; Sudoku_Config[9]={}; Sudoku_SuccessFarbe(); end end function Sudoku_NewGame() local x=1; local y=1; local sR=""; local sL=""; local c=0; local r=0; local puzzleL=""; local puzzleR=""; level=level2; Sudoku_Config[5]=level; if (level==1) then if( listid1 == 0) then Sudoku_LevelID_OnClick("LeftButton") end puzzleL=Sudoku_List1A[listid1]; puzzleR=Sudoku_List1B[listid1]; Sudoku_Config[6]=listid1; elseif (level==2) then if( listid2 == 0) then Sudoku_LevelID_OnClick("LeftButton") end puzzleL=Sudoku_List2A[listid2]; puzzleR=Sudoku_List2B[listid2]; Sudoku_Config[6]=listid2; elseif (level==3) then if( listid3 == 0) then Sudoku_LevelID_OnClick("LeftButton") end puzzleL=Sudoku_List3A[listid3]; puzzleR=Sudoku_List3B[listid3]; Sudoku_Config[6]=listid3; end for y = 1, 9 do for x = 1, 9 do c=c+1; sL=strsub(puzzleL,c,c); sR=strsub(puzzleR,c,c); Sudoku_GTableL[y][x] = tonumber(sL); Sudoku_GTableC[y][x] = 0; Sudoku_GTableH[y][x] = 0; if (sR==".") then Sudoku_GTable[y][x] = 0; Sudoku_GTableR[y][x] = 0; else Sudoku_GTable[y][x] = tonumber(sR); Sudoku_GTableR[y][x] = tonumber(sR); end end end Sudoku_Config[1]=Sudoku_GTable; Sudoku_Config[2]=Sudoku_GTableR; Sudoku_Config[3]=Sudoku_GTableL; Sudoku_Config[4]=Sudoku_GTableC; Sudoku_Config[9]=Sudoku_GTableH; hilfecount=0; Sudoku_Config[8]=hilfecount; Sudoku_Count3Text:SetText("? : "..hilfecount); Sudoku_ErstelleGitter(); Sudoku_GitterFarbe(); sudoplay=1; Sudoku_Auswahl_OnClick("LeftButton",0); Sudoku_ViewGameButton:Enable(); end function Sudoku_ErstelleGitter() zahlencount=0; for y = 1, 9 do for x = 1, 9 do local GitterText = getglobal("Sudoku_Gitter"..y..x.."Text"); if (Sudoku_GTableR[y][x]==0 and Sudoku_GTableH[y][x]==0) then GitterText:SetTextColor(Sudoku_Color["textweiss"]["r"],Sudoku_Color["textweiss"]["g"],Sudoku_Color["textweiss"]["b"]); elseif (Sudoku_GTableR[y][x]==0 and Sudoku_GTableH[y][x]==1) then GitterText:SetTextColor(Sudoku_Color["textgruen"]["r"],Sudoku_Color["textgruen"]["g"],Sudoku_Color["textgruen"]["b"]); else GitterText:SetTextColor(Sudoku_Color["textgelb"]["r"],Sudoku_Color["textgelb"]["g"],Sudoku_Color["textgelb"]["b"]); end if (Sudoku_GTable[y][x]==0) then GitterText:SetText(""); zahlencount=zahlencount+1; else GitterText:SetText(Sudoku_GTable[y][x]); end end end Sudoku_Config[7]=zahlencount; Sudoku_Count2Text:SetText(SUDOKU_EMPTYCELLS..zahlencount); end function Sudoku_SuccessFarbe() for y = 1, 9 do for x = 1, 9 do local GitterText = getglobal("Sudoku_Gitter"..y..x.."Text"); GitterText:SetTextColor(Sudoku_Color["textgelb"]["r"],Sudoku_Color["textgelb"]["g"],Sudoku_Color["textgelb"]["b"]); end end end function Sudoku_Check() local x=1; local y=1; for y=1,9 do for x=1,9 do Sudoku_GTableC[y][x]=0; end end for y=1,9 do for x=1,9 do Sudoku_CheckZahl(x,y) end end Sudoku_GitterFarbe(); end function Sudoku_CheckZahl(x1,y1) local x=1; local y=1; local z=Sudoku_GTable[y1][x1]; for x = 1,9 do if (Sudoku_GTable[y1][x]==z and z>0 and x~=x1) then Sudoku_GTableC[y1][x]=1; Sudoku_GTableC[y1][x1]=1; end end for y = 1,9 do if (Sudoku_GTable[y][x1]==z and z>0 and y~=y1) then Sudoku_GTableC[y][x1]=1; Sudoku_GTableC[y1][x1]=1; end end if ((x1==1 or x1==2 or x1==3) and (y1==1 or y1==2 or y1==3)) then for x = 1,3 do for y=1,3 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==4 or x1==5 or x1==6) and (y1==1 or y1==2 or y1==3)) then for x = 4,6 do for y=1,3 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==7 or x1==8 or x1==9) and (y1==1 or y1==2 or y1==3)) then for x = 7,9 do for y=1,3 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==1 or x1==2 or x1==3) and (y1==4 or y1==5 or y1==6)) then for x = 1,3 do for y=4,6 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==4 or x1==5 or x1==6) and (y1==4 or y1==5 or y1==6)) then for x = 4,6 do for y=4,6 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==7 or x1==8 or x1==9) and (y1==4 or y1==5 or y1==6)) then for x = 7,9 do for y=4,6 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==1 or x1==2 or x1==3) and (y1==7 or y1==8 or y1==9)) then for x = 1,3 do for y=7,9 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==4 or x1==5 or x1==6) and (y1==7 or y1==8 or y1==9)) then for x = 4,6 do for y=7,9 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end elseif ((x1==7 or x1==8 or x1==9) and (y1==7 or y1==8 or y1==9)) then for x = 7,9 do for y=7,9 do if (Sudoku_GTable[y][x]==z and z>0 and x~=x1 and y~=y1) then Sudoku_GTableC[y][x]=1; Sudoku_GTableC[y1][x1]=1; end end end end end function Sudoku_GitterFarbe() local x=1; local y=1; for y=1,9 do for x=1,9 do local Gitter = getglobal("Sudoku_Gitter"..y..x.."Texture"); local Gitter2 = getglobal("Sudoku_Gitter"..y..x.."Texture2"); if (Sudoku_GTableC[y][x]==1) then Gitter:Hide(); Gitter2:Show(); else Gitter2:Hide(); Gitter:Show(); end --DEFAULT_CHAT_FRAME:AddMessage(Gitter:GetTexture(), 1, 1, 0); end end end function Sudoku_ZeigeLoesung() local x=1; local y=1; for y = 1, 9 do for x = 1, 9 do local Gitter = getglobal("Sudoku_Gitter"..y..x.."Text"); local GitterT1 = getglobal("Sudoku_Gitter"..y..x.."Texture"); local GitterT2 = getglobal("Sudoku_Gitter"..y..x.."Texture2"); Gitter:SetTextColor(Sudoku_Color["textgelb"]["r"],Sudoku_Color["textgelb"]["g"],Sudoku_Color["textgelb"]["b"]); Gitter:SetText(Sudoku_GTableL[y][x]); GitterT2:Hide(); GitterT1:Show(); end end sudoplay=1; Sudoku_Auswahl_OnClick("LeftButton",0); Sudoku_ViewGameButton:Disable(); sudoplay=0; zahlencount=0; Sudoku_Count2Text:SetText(SUDOKU_EMPTYCELLS..zahlencount); Sudoku_Config[7]=zahlencount; hilfecount=0; Sudoku_Config[8]=hilfecount; Sudoku_Count3Text:SetText("? : "..hilfecount); Sudoku_Config[1]={}; Sudoku_Config[2]={}; Sudoku_Config[3]={}; Sudoku_Config[4]={}; Sudoku_Config[9]={}; end