*** ABSOLUTELY NO WARRANTY AND NO LIABILITY. The program is for fun purpose only. Not for use in real lottery ticket checking. ***
#!/usr/bin/env ruby
class WinningNumbers
attr_reader :numbers
def initialize()
@numbers = nil
end
def set(numbersString)
@numbers = numbersString.split(' ')
print("Winning Numbers: " )
@numbers.each { |number| print(number, " ") }
print("\n" )
end
end
class Group
def initialize(numbersString)
@numbers = numbersString.split(' ')
end
def check(winningNumbers)
print("Group: ")
@numbers.each { |number| print(number, " ") }
print(" ==> ")
@numbers.each do |number|
winningNumbers.numbers.each do |winNumber|
if winNumber == number
print(number, " ")
end
end
end
# check bonus
@numbers.each do |number|
winningNumbers.numbers.each do |winNumber|
bonusNum = "(" + number + ")"
if winNumber == bonusNum
print(bonusNum, " ")
end
end
end
print("\n")
end
end
if __FILE__ == $0
winningNumbers = WinningNumbers.new
if !ARGV[0]
puts("Usage: #{$0} <lotto file with Winning Numbers in the 1st line>")
exit
end
file = File.open(ARGV[0])
file.each do |line|
case line
when /Winning Numbers[:\s]\s*(.+)/
winningNumbers.set($1)
when /\S+/
group = Group.new(line)
group.check(winningNumbers)
end
end
end
### ABSOLUTELY NO WARRANTY AND NO LIABILITY. The program is for fun purpose only. Not for use in real lottery tickets checking. ###
To play with it, copy and paste the above code to a file and save it. (In Linux) change the file's permission to executable. Put the winning numbers and the bought numbers into a file, e.g.
Winning Numbers: 01 02 03 04 05 06 07 (08) 03 04 11 12 13 14 15 01 03 08 09 10 11 12 11 12 13 14 15 16 17
And then run it (e.g. the script file is named lottery.rb and the numbers are in file lottery_numbers):
$ ./lottery.rb lottery_numbersThe result of the above example is:
Winning Numbers: 01 02 03 04 05 06 07 (08) Group: 03 04 11 12 13 14 15 ==> 03 04 Group: 01 03 08 09 10 11 12 ==> 01 03 (08) Group: 11 12 13 14 15 16 17 ==>
### ABSOLUTELY NO WARRANTY AND NO LIABILITY. The program is for fun purpose only. Not for use in real lottery tickets checking. ###
2 comments:
A good idea! I'll try it!
Hello!
Such a nice idea! I read carefully your article, but I can't do it without experts. Please help me to check lottery numbers in this winning Australian lotto results
I hope I got some odds to win this lottery. Finally, my money needs to be climbed.
Post a Comment