Jump to content

Recommended Posts

Posted

Excellent Melba23 and thanks again mikell.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted (edited)

Tricky ^^.  Good call, though, czardas.

 

Thanks! I always try to reduce a problem to its basic elements. In this case only one random number needs to be generated to achieve the same result. The user's input becomes the computer generated answer if you win. Don't you just love logic. :D

Edited by czardas
Posted (edited)

Interesting "egg of Columbus" concept, but the error checking for the inputbox is still missing  :P

Another egg to do this in less than 3 lines ?  :D

Edited by mikell
Posted (edited)

Here ya go! I've been busy working on something else until now. :)

:

Local $s = " " & StringStripWS(InputBox("","Enter 7 numbers 1 - 49 separated by spaces"), 7) & " "
MsgBox(0,"Lottery","You "&StringLeft("did not ",((Random(0,432938,1)&Random(1,943360,1)<>49*48*47*46*45*44*43)Or((UBound(StringSplit($s," "))=10)*(StringRegExp($s,"\d{3}")=0)*(StringRegExp($s,"[^ \d]|( 0+ )|(\A0+ )( 0+\z)")=0)*(StringMid($s,StringInStr($s," ",0,1),3)<50)*(StringMid($s,StringInStr($s," ",0,2),3)<50)*(StringMid($s,StringInStr($s," ",0,3),3)<50)*(StringMid($s,StringInStr($s," ",0,4),3)<50)*(StringMid($s,StringInStr($s," ",0,5),3)<50)*(StringMid($s,StringInStr($s," ",0,6),3)<50)*(StringMid($s,StringInStr($s," ",0,7),3)<50)*(StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,1),3),3)&"\b)",""))<3)*(StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,2),3),3)&"\b)",""))<3)*(StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,3),3),3)&"\b)",""))<3)*(StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,4),3),3)&"\b)",""))<3)*(StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,5),3),3)&"\b)",""))<3)*(StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,6),3),3)&"\b)",""))<3)*(StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,7),3),3)&"\b)",""))<3)=0))*8)&"win")
Edited by czardas
Posted

Thanks czardas. Right now I am re-building the beta help file, but I will check later tomorrow.

I have to say it's quite difficult to debug these or at least make sure it works to the specification I asked for.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted

post #19 wins for the ridiculous amount of education packed into 4 lines.  Plus the value add of telling how many you got correct, that is quality forecasting of customer needs.

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Posted

post #19 wins for the ridiculous amount of education packed into 4 lines.  Plus the value add of telling how many you got correct, that is quality forecasting of customer needs.

I can't argue with that. But I will still keep it open for just one more day to see who else pops their head in.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted (edited)

@czardas - FYI, I think it says you win no matter what (unless I am running it wrong - which I could be).

I updated post >#44. It is working now. :whistle:

1528 characters in two lines.

You can test it by changing this segment:

(Random(0,432938,1)&Random(1,943360,1)<>49*48*47*46*45*44*43)

to this:

(Random(0,432938,1)&Random(1,943360,1)=49*48*47*46*45*44*43)

followed by inputting correct numbers only separated by spaces. The only way to win is to cheat.

Edit

Good morning. Bugs driviing me mad.

Edited by czardas
Posted (edited)

@czardas - I changed the operator and get the same result (I win every time) - maybe I am doing it wrong? :think:

It returns false for a wrong answer so I switched your messages and it seems to work (at least for a false).

MsgBox(0,"Lottery","You "&StringLeft("won ",(Random(1,432938,1)+Random(1,943360,1)=49*48*47*46*45*44*43)*(UBound(StringSplit($s," "))=10)*(StringRegExp($s,"\d{3}")=0)*(StringMid($s,StringInStr($s," ",0,1),3)<50)*(StringMid($s,StringInStr($s," ",0,2),3)<50)*(StringMid($s,StringInStr($s," ",0,3),3)<50)*(StringMid($s,StringInStr($s," ",0,4),3)<50)*(StringMid($s,StringInStr($s," ",0,5),3)<50)*(StringMid($s,StringInStr($s," ",0,6),3)<50)*(StringMid($s,StringInStr($s," ",0,7),3)<50)*(StringLen($s)-StringLen(StringReplace($s,StringMid($s,StringInStr($s," ",0,1)+1,2),""))<3)*(StringLen($s)-StringLen(StringReplace($s,StringMid($s,StringInStr($s," ",0,2)+1,2),""))<3)*(StringLen($s)-StringLen(StringReplace($s,StringMid($s,StringInStr($s," ",0,3)+1,2),""))<3)*(StringLen($s)-StringLen(StringReplace($s,StringMid($s,StringInStr($s," ",0,4)+1,2),""))<3)*(StringLen($s)-StringLen(StringReplace($s,StringMid($s,StringInStr($s," ",0,5)+1,2),""))<3)*(StringLen($s)-StringLen(StringReplace($s,StringMid($s,StringInStr($s," ",0,6)+1,2),""))<3)*(StringLen($s)-StringLen(StringReplace($s,StringMid($s,StringInStr($s," ",0,7)+1,2),""))<3)*8)&"did not win")
Edited by Jfish

Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt

Posted (edited)

@Jfish - Type some incorrect numbers then you won't win all the time. Changing the operator is the easiest way to test the error checks. BTW use the code I just edited in post #44.

Breakdown of checks: BUT I THINK IT'S STILL BROKEN, SO I WITHDRAW.

Local $s = " " & StringStripWS(InputBox("","Enter 7 numbers 1 - 49 separated by spaces"), 7) & " "

ConsoleWrite($s & @LF)
ConsoleWrite(@LF)

ConsoleWrite((StringRegExp($s,"[^ \d]|( 0+ )|(\A0+ )( 0+\z)")=0) &@LF)
ConsoleWrite((UBound(StringSplit($s," "))=10) &@LF)
ConsoleWrite((StringRegExp($s,"\d{3}")=0) &@LF)
ConsoleWrite(@LF)

ConsoleWrite((StringMid($s,StringInStr($s," ",0,1),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,2),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,3),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,4),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,5),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,6),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,7),3)<50) & @LF)
ConsoleWrite(@LF)

ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,1),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,2),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,3),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,4),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,5),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,6),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,7),3),3)&"\b)",""))<3) &@LF)

The problem is I can't get @Extended information from StringRegExpReplace without adding more lines. Actually I probably could fix it, but I don't have time.

This was still a good learning experience.

Edited by czardas
Posted

@Jfish - Type some incorrect numbers then you won't win all the time. Changing the operator is the easiest way to test the error checks. BTW use the code I just edited in post #44.

Breakdown of checks: BUT I THINK IT'S STILL BROKEN, SO I WITHDRAW.

Local $s = " " & StringStripWS(InputBox("","Enter 7 numbers 1 - 49 separated by spaces"), 7) & " "

ConsoleWrite($s & @LF)
ConsoleWrite(@LF)

ConsoleWrite((StringRegExp($s,"[^ \d]|( 0+ )|(\A0+ )( 0+\z)")=0) &@LF)
ConsoleWrite((UBound(StringSplit($s," "))=10) &@LF)
ConsoleWrite((StringRegExp($s,"\d{3}")=0) &@LF)
ConsoleWrite(@LF)

ConsoleWrite((StringMid($s,StringInStr($s," ",0,1),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,2),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,3),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,4),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,5),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,6),3)<50) & @LF)
ConsoleWrite((StringMid($s,StringInStr($s," ",0,7),3)<50) & @LF)
ConsoleWrite(@LF)

ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,1),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,2),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,3),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,4),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,5),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,6),3),3)&"\b)",""))<3) &@LF)
ConsoleWrite((StringLen($s)-StringLen(StringRegExpReplace($s,"(\b"&StringStripWS(StringMid($s,StringInStr($s," ",0,7),3),3)&"\b)",""))<3) &@LF)

The problem is I can't get @Extended information from StringRegExpReplace without adding more lines. Actually I probably could fix it, but I don't have time.

This was still a good learning experience.

 

Yes, you are right.  I retested #44 and that one worked :>

Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt

  • Moderators
Posted

Hi,

Updated post #38 to indicate the number of matches. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Posted

post #19 wins for the ridiculous amount of education packed into 4 lines.  Plus the value add of telling how many you got correct, that is quality forecasting of customer needs.

I agree and personnally vote for the #19 too

After all my own code - even with one line less - is nothing more than a small improvement of it

czardas idea is pretty nice but I don't like the error checking giving out "you don't win"

Posted

Thanks mikell, I have to agree with you. I think it should fail on dupkicated single digits: 1 1 etc... but should always spot duplicated double digits. I have decided to abandon it anyway.  Theoretically I believe it can be done in one line with a horrible regexp pattern with the input box as the first parameter.

Posted (edited)

Hey hey ! Just one line !

RegExp not already optimized..

Local $tab[] = [ ",01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49", StringMid($tab[0], Random(0, 48, 1) * 3 + 2, 2), StringReplace($tab[0], "," & $tab[1], ""), StringMid($tab[2], Random(0, 47, 1) * 3 + 2, 2), StringReplace($tab[2], "," & $tab[3], ""), StringMid($tab[4], Random(0, 46, 1) * 3 + 2, 2), StringReplace($tab[4], "," & $tab[5], ""), StringMid($tab[6], Random(0, 45, 1) * 3 + 2, 2), StringReplace($tab[6], "," & $tab[7], ""), StringMid($tab[8], Random(0, 44, 1) * 3 + 2, 2), StringReplace($tab[8], "," & $tab[9], ""), StringMid($tab[10], Random(0, 43, 1) * 3 + 2, 2), StringReplace($tab[10], "," & $tab[11], ""), StringMid($tab[12], Random(0, 42, 1) * 3 + 2, 2), Number($tab[1]) & "," & Number($tab[3]) & "," & Number($tab[5]) & "," & Number($tab[7]) & "," & Number($tab[9]) & "," & Number($tab[11]) & "," & Number($tab[13]), InputBox("Lottery", "Enter your numbers from 1 to 49, separates by a comma (ex : 1,5,10,37,15,43,2)", "1,2,3,4,5,6,7", "", 500, 150) , (   StringRegExp($tab[15], "^(([1-9]|([1-4]\d)),){6}([1-9]|([1-4]\d))$")   ) ? 1 : (0 * MsgBox(16, "Lottery", "You must enter 7 numbers, separate by a comma")) , (($tab[16] = 0) ? 0 :   (((UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){0}([^,]+).*", ",$1,"), 3 ) ) +     UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){1}([^,]+).*", ",$1,"), 3 ) ) +    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){2}([^,]+).*", ",$1,"), 3 ) ) +    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){3}([^,]+).*", ",$1,"), 3 ) ) +    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){4}([^,]+).*", ",$1,"), 3 ) ) +    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){5}([^,]+).*", ",$1,"), 3 ) ) +    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){6}([^,]+).*", ",$1,"), 3 ) ) ) = 7 ) ? 1 : 0 * MsgBox(16, "Lottery", "You cannot choose a same number more than one time") ) ) , StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){0}([^,]+).*", ",$1,") ) +  StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){1}([^,]+).*", ",$1,") ) +     StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){2}([^,]+).*", ",$1,") ) +     StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){3}([^,]+).*", ",$1,") ) +     StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){4}([^,]+).*", ",$1,") ) +     StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){5}([^,]+).*", ",$1,") ) +     StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){6}([^,]+).*", ",$1,") )  , (( $tab[17] = 0 )? 0 :     MsgBox(0, "", "You " & (( $tab[18] = 7 ) ? "win" : "loose" ) & @CRLF & @CRLF & "Computer choice : " & $tab[14] & @CRLF & "Your choice : " & $tab[15] & @CRLF & @CRLF & "You found " & $tab[18] & " good numbers" ) ) ]

Here is a readable code :

Local $tab[] = [ _ 
",01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49", _
StringMid($tab[0], Random(0, 48, 1) * 3 + 2, 2), _ 
StringReplace($tab[0], "," & $tab[1], ""), _
StringMid($tab[2], Random(0, 47, 1) * 3 + 2, 2), _
StringReplace($tab[2], "," & $tab[3], ""), _
StringMid($tab[4], Random(0, 46, 1) * 3 + 2, 2), _
StringReplace($tab[4], "," & $tab[5], ""), _
StringMid($tab[6], Random(0, 45, 1) * 3 + 2, 2), _
StringReplace($tab[6], "," & $tab[7], ""), _
StringMid($tab[8], Random(0, 44, 1) * 3 + 2, 2), _
StringReplace($tab[8], "," & $tab[9], ""), _
StringMid($tab[10], Random(0, 43, 1) * 3 + 2, 2), _
StringReplace($tab[10], "," & $tab[11], ""), _
StringMid($tab[12], Random(0, 42, 1) * 3 + 2, 2), _
Number($tab[1]) & "," & Number($tab[3]) & "," & Number($tab[5]) & "," & Number($tab[7]) & "," & Number($tab[9]) & "," & Number($tab[11]) & "," & Number($tab[13]), _
InputBox("Lottery", "Enter your numbers from 1 to 49, separates by a comma (ex : 1,5,10,37,15,43,2)", "1,2,3,4,5,6,7", "", 500, 150) , _
(   StringRegExp($tab[15], "^(([1-9]|([1-4]\d)),){6}([1-9]|([1-4]\d))$")   ) ? 1 : (0 * MsgBox(16, "Lottery", "You must enter 7 numbers, separate by a comma")) , _
(($tab[16] = 0) ? 0 : _ 
    (((UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){0}([^,]+).*", ",$1,"), 3 ) ) + _ 
    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){1}([^,]+).*", ",$1,"), 3 ) ) + _
    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){2}([^,]+).*", ",$1,"), 3 ) ) + _
    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){3}([^,]+).*", ",$1,"), 3 ) ) + _
    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){4}([^,]+).*", ",$1,"), 3 ) ) + _
    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){5}([^,]+).*", ",$1,"), 3 ) ) + _
    UBound( StringRegExp( "," & StringReplace($tab[15], ",", ",,") & "," , StringRegExpReplace($tab[15] , "(?:[^,]+,){6}([^,]+).*", ",$1,"), 3 ) ) ) = 7 ) ? 1 : 0 * MsgBox(16, "Lottery", "You cannot choose a same number more than one time") ) ) , _     
StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){0}([^,]+).*", ",$1,") ) + _ 
    StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){1}([^,]+).*", ",$1,") ) + _
    StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){2}([^,]+).*", ",$1,") ) + _
    StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){3}([^,]+).*", ",$1,") ) + _
    StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){4}([^,]+).*", ",$1,") ) + _
    StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){5}([^,]+).*", ",$1,") ) + _
    StringRegExp("," & $tab[14] & ",", StringRegExpReplace($tab[15] , "(?:[^,]+,){6}([^,]+).*", ",$1,") )  , _  
(( $tab[17] = 0 )? 0 : _
    MsgBox(0, "", "You " & (( $tab[18] = 7 ) ? "win" : "loose" ) & @CRLF & @CRLF & "Computer choice : " & $tab[14] & @CRLF & "Your choice : " & $tab[15] & @CRLF & @CRLF & "You found " & $tab[18] & " good numbers" ) _ 
) ]
Edited by jguinch
Posted

Brain ache!

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted (edited)

Yeah.. It's the same code as last time, but the while loop is replaced by an this :

Local $tab[] = [ _ 
",01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49", _
StringMid($tab[0], Random(0, 48, 1) * 3 + 2, 2), _ 
StringReplace($tab[0], "," & $tab[1], ""), _
StringMid($tab[2], Random(0, 47, 1) * 3 + 2, 2), _
StringReplace($tab[2], "," & $tab[3], ""), _
StringMid($tab[4], Random(0, 46, 1) * 3 + 2, 2), _
StringReplace($tab[4], "," & $tab[5], ""), _
StringMid($tab[6], Random(0, 45, 1) * 3 + 2, 2), _
StringReplace($tab[6], "," & $tab[7], ""), _
StringMid($tab[8], Random(0, 44, 1) * 3 + 2, 2), _
StringReplace($tab[8], "," & $tab[9], ""), _
StringMid($tab[10], Random(0, 43, 1) * 3 + 2, 2), _
StringReplace($tab[10], "," & $tab[11], ""), _
StringMid($tab[12], Random(0, 42, 1) * 3 + 2, 2), _
Number($tab[1]) & "," & Number($tab[3]) & "," & Number($tab[5]) & "," & Number($tab[7]) & "," & Number($tab[9]) & "," & Number($tab[11]) & "," & Number($tab[13]) ]

Now, I'm tired... If someone as few time to optimize the rows 17 and 18 ... :sweating:

Edited by jguinch

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...