taietel Posted January 13, 2011 Share Posted January 13, 2011 (edited) I don't like playing games, but I found that one of my son's toys was quite interesting (personal opinion).Here is a screenshot of the game:I don't know how it's called. There is one rule: click on the numbers around the X mark until the order is complete. You can modify the number of rows/columns from the top of the interface.The code:expandcollapse popup#include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Misc.au3> #include <ScreenCapture.au3> #include <GDIPlus.au3> ;===================================================== ; Script name: FIFTEEN GAME ; Author: Mihai Iancu (taietel) ; Version: 2.0 ; Changes: - Change numbers with image (my first attempt with GDI+) ; - Save configuration (width/height/rows/columns/image) ; - Reset game ; - Fixed the shuffle algorithm to make the game always solvable ( ; - Name changed ; Thanks to: - enaiman and JohnOne for the suggestion regarding the shuffle algorithm ; - MrCreatoR for the game name ; - UEZ for infecting me with the GDI+ bacteria :) ; Last rev. Jan 20, 2011 ;===================================================== Opt("GUIOnEventMode", 1) #region GLOBAL VARIABLES Global $sINI = @ScriptDir & "\fifteen.cfg" If Not FileExists($sINI) Then _WriteConfig($sINI) Global $aINI = _ReadConfig($sINI) Global $hGUI, $w, $h, $iGap = 2, $iLeft = 5, $iTop = 30 Global $Grid[$aINI[2]][$aINI[3]][3] Global $hBtns[5], $aMenu[12], $hRows, $hCols, $hSbr Global $iCounter = 0, $bShuf = False #endregion GLOBAL VARIABLES _GUI_Interface() While 1 Sleep(100) WEnd Func _About() Local $sRet = DllCall("shell32.dll", "long", "ShellAboutA", "ptr", $hGUI, "str", "AutoIt Fifteen Game", "str", "Mihai Iancu © 1973-" & @YEAR, "long", 0) If @error Then SetError(1, 0, 0) Return $sRet EndFunc ;==>_About Func _CheckStatus() Local $sStatus For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 If $Grid[$i][$j][1] = 0 Then If $Grid[$i][$j][2] = 0 Then $sStatus &= "0" EndIf EndIf Next Next If $bShuf = True Then If $iCounter > 10 Then If StringLen($sStatus) = $aINI[2] * $aINI[3] Then If StringReplace($sStatus, "0", "") = "" Then Local $play = MsgBox(4 + 64, "Congratulation!", "We have a winner with " & $iCounter & " moves." & @CRLF & "Play again?") Switch $play Case 6 _ShuffleTiles() Case 7 Return EndSwitch EndIf EndIf EndIf EndIf EndFunc ;==>_CheckStatus Func _CreateTiles($sImage = "") ;my first attempt with GDI+ Local $bNumbers = False, $tLayout[$aINI[2] * $aINI[3]], $hImage, $hClone[$aINI[2] * $aINI[3]] If $sImage = "" Then $bNumbers = True Else $bNumbers = False EndIf ;here we go... _GDIPlus_Startup() If $bNumbers = True Then $hImage1 = _ScreenCapture_Capture("", 0, 0, $aINI[0], $aINI[1]) ; something to work on $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hImage1) ; get the bmp handle $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage) ; get the graphic context $hBrush1 = _GDIPlus_BrushCreateSolid(0xFF809880) ; create some brushes for the fonts/background $hBrush2 = _GDIPlus_BrushCreateSolid(0xFFFFFF00) _GDIPlus_GraphicsFillRect($hGraphic, 0, 0, $aINI[0], $aINI[1], $hBrush1) $hBrush = _GDIPlus_BrushCreateSolid(0xFFFFFFF1) $hFamily = _GDIPlus_FontFamilyCreate("Arial") ; create font $hFont = _GDIPlus_FontCreate($hFamily, _Iif($w <= $h, Int($w / 1.8), Int($h / 1.8)), 1, 2) ; and resize it according to the tile w/h $hFormat = _GDIPlus_StringFormatCreate() _GDIPlus_StringFormatSetAlign($hFormat, 1) ; align text to center For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 ; create global image $tLayout[$j + $i * $aINI[3]] = _GDIPlus_RectFCreate($j * $w, $i * $h + Int(_Iif($w <= $h, $w, $h) / 5), $w, $h) ; create rectangle _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 1) If $i = 0 And $j = 0 Then _GDIPlus_GraphicsDrawStringEx($hGraphic, "X", $hFont, $tLayout[$j + $i * $aINI[3]], $hFormat, $hBrush2) ; fill the X mark Else _GDIPlus_GraphicsDrawStringEx($hGraphic, $j + $i * $aINI[3], $hFont, $tLayout[$j + $i * $aINI[3]], $hFormat, $hBrush); and the numbers EndIf $hClone[$j + $i * $aINI[3]] = _GDIPlus_BitmapCloneArea($hImage, $j * $w, $i * $h, $w, $h, $GDIP_PXF24RGB) ; "cut" each tile from the global image _GDIPlus_ImageSaveToFile($hClone[$j + $i * $aINI[3]], @TempDir & "\Tile_" & $j + $i * $aINI[3] & ".jpg") ; and save it _GDIPlus_BitmapDispose($hClone[$j + $i * $aINI[3]]) ; then clean up Next Next _GDIPlus_FontDispose($hFont); _GDIPlus_FontFamilyDispose($hFamily); _GDIPlus_StringFormatDispose($hFormat); _GDIPlus_BrushDispose($hBrush); _GDIPlus_BrushDispose($hBrush1); _GDIPlus_BrushDispose($hBrush2); _GDIPlus_GraphicsDispose($hGraphic); Else $hImage = _GDIPlus_BitmapCreateFromFile($sImage) ; load the image $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage) Local $iiW = _GDIPlus_ImageGetWidth($hImage) ; get w/h Local $iiH = _GDIPlus_ImageGetHeight($hImage) Local $wi = Int($iiW / $aINI[3]) Local $hi = Int($iiH / $aINI[2]) Local $hMatrix = _GDIPlus_MatrixCreate() ; create a matrix Local $xRatio = Round($w / $wi, 1) Local $yRatio = Round($h / $hi, 1) _GDIPlus_MatrixScale($hMatrix, $xRatio, $yRatio) ;scale image to grid size _GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix) For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 If $i <> 0 Or $j <> 0 Then $hClone[$j + $i * $aINI[3]] = _GDIPlus_BitmapCloneArea($hImage, $j * $wi, $i * $hi, $wi, $hi, $GDIP_PXF24RGB) _GDIPlus_ImageSaveToFile($hClone[$j + $i * $aINI[3]], @TempDir & "\Tile_" & $j + $i * $aINI[3] & ".jpg") _GDIPlus_BitmapDispose($hClone[$j + $i * $aINI[3]]) EndIf Next Next _GDIPlus_MatrixDispose($hMatrix) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_ImageDispose($hImage) EndIf _GDIPlus_Shutdown() For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 GUICtrlSetImage($Grid[$i][$j][0], @TempDir & "\Tile_" & $j + $i * $aINI[3] & ".jpg") Next Next EndFunc ;==>_CreateTiles Func _DeleteTempTiles() For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 FileDelete(@TempDir & "\Tile_" & $j + $i * $aINI[3] & ".jpg") Next Next EndFunc ;==>_DeleteTempTiles Func _Exit() _DeleteTempTiles() Exit EndFunc ;==>_Exit Func _Grid($iLeft, $iTop, $iRight = "", $iBottom = "") If $iBottom = "" Then $iBottom = $iTop If $iRight = "" Then $iRight = $iLeft $w = Int(($aINI[0] - $iLeft - $iRight - ($aINI[3] - 1) * $iGap) / $aINI[3]) $h = Int(($aINI[1] - $iTop - $iBottom - ($aINI[2] - 1) * $iGap) / $aINI[2]) For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 $Grid[$i][$j][0] = GUICtrlCreatePic("", $iLeft + $j * ($w + $iGap), $iTop + $i * ($h + $iGap), $w, $h, BitOR($GUI_SS_DEFAULT_PIC, $SS_CENTERIMAGE), $WS_EX_STATICEDGE) $Grid[$i][$j][1] = 0 $Grid[$i][$j][2] = 0 If BitOR($i <> 0, $j <> 0) Then GUICtrlSetOnEvent($Grid[$i][$j][0], "_Tile_Click") GUICtrlSetCursor(-1, 0) EndIf Next Next _CreateTiles($aINI[4]) EndFunc ;==>_Grid Func _GUI_Interface() $hGUI = GUICreate("AutoIT Puzle Game", $aINI[0], $aINI[1], -1, -1, BitOR($WS_POPUP, $WS_BORDER)) GUISetBkColor(0x203220) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") GUICtrlCreateLabel(StringUpper("fifteen game"), 8, 6, $aINI[0] - 199, 16, BitOR($SS_CENTER, $SS_CENTERIMAGE), $GUI_WS_EX_PARENTDRAG) GUICtrlSetFont(-1, 10, 800, 0, "Arial") GUICtrlSetColor(-1, 0xFFEE00) GUICtrlCreateLabel("Grid:", $aINI[0] - 186, 6, 24, 16, $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG) GUICtrlSetFont(-1, 8, 800, 0) GUICtrlSetColor(-1, 0xFEFECC) $hRows = GUICtrlCreateInput("", $aINI[0] - 160, 5, 25, 17, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $WS_BORDER), 0) GUICtrlSetData(-1, $aINI[2]) GUICtrlSetTip(-1, "Enter number of rows", "Info:", 1) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x880000) GUICtrlSetBkColor(-1, 0xdddd33) GUICtrlCreateLabel("x", $aINI[0] - 133, 5, 16, 16, $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG) GUICtrlSetFont(-1, 8, 800, 0) GUICtrlSetColor(-1, 0xFEFECC) $hCols = GUICtrlCreateInput("", $aINI[0] - 125, 5, 25, 17, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $WS_BORDER), 0) GUICtrlSetData(-1, $aINI[3]) GUICtrlSetTip(-1, "Enter number of columns", "Info:", 1) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x880000) GUICtrlSetBkColor(-1, 0xdddd33) $hBtns[0] = GUICtrlCreateIcon("shell32.dll", -28, $aINI[0] - 22, 6, 16, 16) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "I had enough!...", "Info:", 1) GUICtrlSetOnEvent(-1, "_Exit") $hBtns[1] = GUICtrlCreateIcon("shell32.dll", -222, $aINI[0] - 42, 6, 16, 16) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "About...", "Info:", 1) GUICtrlSetOnEvent(-1, "_About") $hBtns[2] = GUICtrlCreateIcon("shell32.dll", -44, $aINI[0] - 98, 5, 16, 16) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "Change the grid!", "Info:", 1) GUICtrlSetOnEvent(-1, "_ResetGrid") GUICtrlSetState(-1, $GUI_FOCUS) $hBtns[3] = GUICtrlCreateIcon("shell32.dll", -147, $aINI[0] - 82, 6, 16, 16) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "Shuffle the tiles", "Info:", 1) GUICtrlSetOnEvent(-1, "_ShuffleTiles") $hBtns[4] = GUICtrlCreateIcon("shell32.dll", -5, $aINI[0] - 62, 6, 16, 16) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "Open image...", "Info:", 1) GUICtrlSetOnEvent(-1, "_OpenImage") _Grid($iLeft, $iTop) $hSbr = GUICtrlCreateLabel("", 5, $aINI[1] - 24, $aINI[0] - 10, 20, $SS_CENTERIMAGE, BitOR($WS_EX_STATICEDGE, $GUI_WS_EX_PARENTDRAG)) _Status("If you want to play, shuffle first...") GUICtrlSetColor($hSbr, 0xefefef) GUISetState(@SW_SHOW) EndFunc ;==>_GUI_Interface Func _MoveTile($hControl) Local $p0, $p1, $bMoved = False $p0 = ControlGetPos($hGUI, "", $Grid[0][0][0]) $p1 = ControlGetPos($hGUI, "", $hControl) If (Abs($p1[0] - $p0[0]) = $p0[2] + $iGap And $p1[1] = $p0[1]) Or ($p1[0] = $p0[0] And Abs($p1[1] - $p0[1]) = $p0[3] + $iGap) Then ControlMove($hGUI, "", $hControl, $p0[0], $p0[1]) ControlMove($hGUI, "", $Grid[0][0][0], $p1[0], $p1[1]) For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 If $hControl = $Grid[$i][$j][0] Then Select Case $p1[0] < $p0[0] And $p1[1] = $p0[1] $Grid[$i][$j][1] -= 1 Case $p1[0] > $p0[0] And $p1[1] = $p0[1] $Grid[$i][$j][1] += 1 Case $p1[0] = $p0[0] And $p1[1] < $p0[1] $Grid[$i][$j][2] += 1 Case $p1[0] = $p0[0] And $p1[1] > $p0[1] $Grid[$i][$j][2] -= 1 EndSelect EndIf Next Next $iCounter += 1 $bMoved = True EndIf _Status("Moves:" & @TAB & $iCounter) Return $bMoved EndFunc ;==>_MoveTile Func _OpenImage() Local $sFsr = FileOpenDialog("Alegeti o imagine pentru sigla. Daca nu aveti inca o sigla, voi folosi sigla MECTS.", @ScriptDir & "\", "Imagine (*.jpg;*.bmp;*.gif)", 1) If @error Then $aINI[4] = "" Else $aINI[4] = $sFsr EndIf IniWrite($sINI, "FifteenConfig", "Image", $sFsr) _CreateTiles($aINI[4]) Return $sFsr EndFunc ;==>_OpenImage Func _ReadConfig($sINI) Local $aCfg[5] $aCfg[0] = IniRead($sINI, "FifteenConfig", "Width", 350) $aCfg[1] = IniRead($sINI, "FifteenConfig", "Height", 350) $aCfg[2] = IniRead($sINI, "FifteenConfig", "Rows", 4) $aCfg[3] = IniRead($sINI, "FifteenConfig", "Columns", 4) $aCfg[4] = IniRead($sINI, "FifteenConfig", "Image", "") Return $aCfg EndFunc ;==>_ReadConfig Func _ResetGrid() _SaveConfig($sINI) GUIDelete($hGUI) $aINI = _ReadConfig($sINI) ReDim $Grid[$aINI[2]][$aINI[3]][3] _GUI_Interface() EndFunc ;==>_ResetGrid Func _SaveConfig($sINI) IniWrite($sINI, "FifteenConfig", "Rows", GUICtrlRead($hRows)) IniWrite($sINI, "FifteenConfig", "Columns", GUICtrlRead($hCols)) EndFunc ;==>_SaveConfig Func _ShuffleTiles() WinSetTrans($hGUI, "", 50) Local $pi = ControlGetPos($hGUI, "", $Grid[0][0][0]), $pf[2] Local $iMoves = 0 Local $aArray[$aINI[2] * $aINI[3]] For $i = 0 To $aINI[2] - 1 For $j = 0 To $aINI[3] - 1 $aArray[$j + $i * $aINI[3]] = $Grid[$i][$j][0] Next Next While $iMoves <= Random(500, 1000, 1) Local $iRand = Random(0, $aINI[2] * $aINI[3] - 1, 1) Local $Moved = _MoveTile($aArray[$iRand]) Local $pf = ControlGetPos($hGUI, "", $Grid[0][0][0]) If $iRand <> $aINI[2] * $aINI[3] - 1 And BitOR($pf[0] <> 0, $pf[1] <> 0) Then $iMoves += 1 WEnd WinSetTrans($hGUI, "", 255) $iCounter = 0 $bShuf = True EndFunc ;==>_ShuffleTiles Func _Status($sText) GUICtrlSetData($hSbr, " " & $sText) EndFunc ;==>_Status Func _Tile_Click() If $bShuf = False Then Return Switch @GUI_CtrlId Case $Grid[0][0][0] ;do nothing Case Else _MoveTile(@GUI_CtrlId) _WinAPI_RedrawWindow($hGUI) EndSwitch _CheckStatus() EndFunc ;==>_Tile_Click Func _WriteConfig($sINI) IniWrite($sINI, "FifteenConfig", "Width", "350") IniWrite($sINI, "FifteenConfig", "Height", "380") IniWrite($sINI, "FifteenConfig", "Rows", 4) IniWrite($sINI, "FifteenConfig", "Columns", 4) IniWrite($sINI, "FifteenConfig", "Image", "") EndFunc ;==>_WriteConfigAnd the script, in the attachment, if you don't like cut&paste.Enjoy! (I did)fifteen.au3 Edited January 20, 2011 by taietel Things you should know first...In the beginning there was only ONE! And zero... Progs: Create PDF(TXT2PDF,IMG2PDF) 3D Bar Graph DeskGadget Menu INI Photo Mosaic 3D Text Link to comment Share on other sites More sharing options...
CodyBarrett Posted January 13, 2011 Share Posted January 13, 2011 wow, pretty cool. i remember playing a game like that on my ipod, cept it had pictures instead of numbers. kinda a mind boggler with the picture one. Nice efforts! +1 [size="1"][font="Tahoma"][COMPLETED]-----[FAILED]-----[ONGOING]VolumeControl|Binary Converter|CPU Usage| Mouse Wrap |WinHide|Word Scrammbler|LOCKER|SCREEN FREEZE|Decisions Decisions|Version UDF|Recast Desktop Mask|TCP Multiclient EXAMPLE|BTCP|LANCR|UDP serverless|AIOCR|OECR|Recast Messenger|AU3C|Tik-Tak-Toe|Snakes & Ladders|BattleShips|TRON|SNAKE_____________________[u]I love the Helpfile it is my best friend.[/u][/font][/size] Link to comment Share on other sites More sharing options...
Newb Posted January 13, 2011 Share Posted January 13, 2011 Very nice, played that game much times when I was kid. A little suggestion, if you want, add a completed game message. Like when you get all stuffed in order, a "YOU WIN!" msgbox or something like that. I'm a compulsive poster. When I post something, come to read it at least 5 minutes later after the posting, because I will edit it. I edited even this signature a few minutes later after I wrote it. Link to comment Share on other sites More sharing options...
enaiman Posted January 13, 2011 Share Posted January 13, 2011 I remember those toys Very nice implementation, nice gui and algorythm. I have to bring some criticism but it is a constructive type one: Shuffle: as it is now, it is done random and there are certain positions which are impossible to achieve in the "normal" game - if you try to solve such a position you will fail. After I've got such a situation after shuffling, I remembered a prank we used to play with the game - we were taking 2 tiles apart and swap them, then we would give the so modified game to somebody else to solve it - of course they couldn't I know you are able to get it done properly Of course, it will be a hell of a function to write but ... it will be a challenge SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script wannabe "Unbeatable" Tic-Tac-Toe Paper-Scissor-Rock ... try to beat it anyway :) Link to comment Share on other sites More sharing options...
CodyBarrett Posted January 13, 2011 Share Posted January 13, 2011 I remember those toys Very nice implementation, nice gui and algorythm.I have to bring some criticism but it is a constructive type one:Shuffle: as it is now, it is done random and there are certain positions which are impossible to achieve in the "normal" game - if you try to solve such a position you will fail.After I've got such a situation after shuffling, I remembered a prank we used to play with the game - we were taking 2 tiles apart and swap them, then we would give the so modified game to somebody else to solve it - of course they couldn't I know you are able to get it done properly Of course, it will be a hell of a function to write but ... it will be a challenge i remember you're tick tack toe game, you made it unbeatable, and perfect (but not COMPLETELY efficient). haha its a big bulky mess, but the algorithms you used were quite good, SO good so that you could never win against the computer! My point is, for good code, it doesn't necessarily need to be a simple and small function. [size="1"][font="Tahoma"][COMPLETED]-----[FAILED]-----[ONGOING]VolumeControl|Binary Converter|CPU Usage| Mouse Wrap |WinHide|Word Scrammbler|LOCKER|SCREEN FREEZE|Decisions Decisions|Version UDF|Recast Desktop Mask|TCP Multiclient EXAMPLE|BTCP|LANCR|UDP serverless|AIOCR|OECR|Recast Messenger|AU3C|Tik-Tak-Toe|Snakes & Ladders|BattleShips|TRON|SNAKE_____________________[u]I love the Helpfile it is my best friend.[/u][/font][/size] Link to comment Share on other sites More sharing options...
MrCreatoR Posted January 13, 2011 Share Posted January 13, 2011 It's called «Fifteen» (15) in the county where i came from. Nice game. Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Link to comment Share on other sites More sharing options...
UEZ Posted January 13, 2011 Share Posted January 13, 2011 Nice implementation of the game - looks really nice! Br, UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
taietel Posted January 13, 2011 Author Share Posted January 13, 2011 Thank you guys for all the comments and suggestions! I'll update the script as soon as possible. M.I. Things you should know first...In the beginning there was only ONE! And zero... Progs: Create PDF(TXT2PDF,IMG2PDF) 3D Bar Graph DeskGadget Menu INI Photo Mosaic 3D Text Link to comment Share on other sites More sharing options...
JohnOne Posted January 13, 2011 Share Posted January 13, 2011 Perhaps to shuffle it, you can have it make a number of legit random moves, which should keep it valid and finishable. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
taietel Posted January 20, 2011 Author Share Posted January 20, 2011 Updated first post (no more impossible moves, message when completed, background images for tiles etc.) Things you should know first...In the beginning there was only ONE! And zero... Progs: Create PDF(TXT2PDF,IMG2PDF) 3D Bar Graph DeskGadget Menu INI Photo Mosaic 3D Text Link to comment Share on other sites More sharing options...
karim Posted January 21, 2011 Share Posted January 21, 2011 Thank you Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now