# Lottery - Challenge

## Recommended Posts

• Replies 74
• Created

#### Top Posters In This Topic

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.

Edited by czardas
##### Share on other sites

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

Another egg to do this in less than 3 lines ?

Edited by mikell
##### Share on other sites

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
##### Share on other sites

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.

##### Share on other sites

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

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

##### Share on other sites

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.

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

##### Share on other sites

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.

##### Share on other sites

@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.

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
##### Share on other sites

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

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

##### Share on other sites

@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
##### Share on other sites

@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

##### Share on other sites

• Moderators

Hi,

Updated post #38 to indicate the number of matches.

M23

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

##### Share on other sites

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"

##### Share on other sites

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.

##### Share on other sites

Thanks Mikell and Boththose.

For my code in #19, I took ideas in Paper, Rock, Scissors - Challenge topic, so it was ~easy~ . And Mikell managed to optimize it a lot !

I do not have as much merit as that ....

##### Share on other sites

Hey hey ! Just one line !

`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

##### Share on other sites

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 ...

Edited by jguinch

##### Share on other sites

"How to make a loop without loop"

Crazy... and wonderful

## Create an account

Register a new account

• ### Similar Content

• #### Mixed Base Conversion (coding challenge)

By Gianni,

• 5 replies
• 680 views
• #### Challenge: Solving Josephus problem 1 2

By guinness,

• 31 replies
• 2,985 views
• #### Trim text in a file without storing the contents of anywhere 1 2

By TheDcoder,

• 22 replies
• 3,675 views
• #### Hey Everyone (please VOTE in Challenge)

By TheSaint,

• 3 replies
• 2,057 views
×

• Wiki

• Back

• #### Beta

• Git
• FAQ
×
• Create New...