< :the previous in number
^ :the list in numerical order
> :the next in number
P :the previous (in thread)
N :the next (in thread)
|<:the top of this thread
>|:the next thread
^ :the parent (reply-to)
_:the child (an article replying to this)
>:the elder article having the same parent
<:the youger article having the same parent
---:split window and show thread lists
| :split window (vertically) and show thread lists
~ :close the thread frame
.:the index
..:the index of indices
Hi Re Ra,
I understand your anxiety to see the result you're searching for.
But, your code is not well structured (IMHO).
This makes it difficult to "evolute" to what you want.
For satisfying your needs you can ("uglyly") do like bellow.
I tried to touch your code the less I could, so I tried to preserve
all the variable names, and add only the necessary lines to make it
work.
But... there's much room for improvement.
Basically I added....
tkt_amount =3D rand(10) + 1 # (1..10)
tkt_amount.times do
ticket1 =3D rand(99999)+1
quantity1 =3D rand(10)+1
The complete code is bellow.
Is that what you wanted to do?
#!/usr/bin/env ruby
#coding: utf-8
#ticket database
ticket1 =3D 23453 #ticket number
quantity1 =3D 3 #quantity bought
puts "\n" #break
#lottery draw
list =3D []
(list << '%05i' % (rand(99999)+1)).uniq! while list.length < 5
number1, number2, number3, number4, number5 =3D list
serie1, serie2, serie3, serie4, serie5 =3D Array.new(5) { rand(180)+1 }
number6 =3D number1.to_i - 1
number7 =3D number1.to_i + 1
number8 =3D number2.to_i - 1
number9 =3D number2.to_i + 1
number10 =3D number3.to_i - 1
number11 =3D number3.to_i + 1
number12 =3D number1.to_i / 100
number13 =3D number2.to_i / 100
number14 =3D number3.to_i / 100
number15 =3D number4.to_i / 100
number16 =3D number5.to_i / 100
number17 =3D number1.to_i % 10
puts list
puts "\n" #break
#winnings
def show_results(a, b)
puts "Ticket ##{a.to_s.rjust(5, '0')} won =80#{b}."
end
tkt_amount =3D rand(10) + 1 # (1..10)
tkt_amount.times do
ticket1 =3D rand(99999)+1
quantity1 =3D rand(10)+1
#prizes
prize1 =3D 400000 * quantity1 #1st
prize2 =3D 125000 * quantity1 #2n
prize3 =3D 50000 * quantity1 #3rd
prize4 =3D 20000 * quantity1 #4th
prize5 =3D 2000 * quantity1 #Consolation1
prize6 =3D 1250 * quantity1 #Consolation2
prize7 =3D 960 * quantity1 #Consolation3
prize8 =3D 100 * quantity1 #Cantena
prize9 =3D 20 * quantity1 #Reintegro
if ticket1 =3D=3D number1.to_i
show_results(ticket1, prize1)
end
if ticket1 =3D=3D number2.to_i
show_results(ticket1, prize2)
end
if ticket1 =3D=3D number3.to_i
show_results(ticket1, prize3)
end
if ticket1 =3D=3D number4.to_i or
ticket1 =3D=3D number5.to_i
show_results(ticket1, prize4)
end
if ticket1 =3D=3D number6.to_i or
ticket1 =3D=3D number7.to_i
show_results(ticket1, prize5)
end
if ticket1 =3D=3D number8.to_i or
ticket1 =3D=3D number9.to_i
show_results(ticket1, prize6)
end
if ticket1 =3D=3D number10.to_i or
ticket1 =3D=3D number11.to_i
show_results(ticket1, prize7)
end
if ticket1.to_i / 100 =3D=3D number12.to_i or
ticket1.to_i / 100 =3D=3D number13.to_i or
ticket1.to_i / 100 =3D=3D number14.to_i or
ticket1.to_i / 100 =3D=3D number15.to_i or
ticket1.to_i / 100 =3D=3D number16.to_i
show_results(ticket1, prize8)
end
if ticket1.to_i % 10 =3D=3D number17.to_i
show_results(ticket1, prize9)
end
end
Was this what you wanted?
Abinoam Jr.
On Mon, Dec 2, 2013 at 9:48 AM, Re Ra <lists / ruby-forum.com> wrote:
> So, I updated the coda a bit -
> #ticket database
> ticket1 =3D 23453 #ticket number
> quantity1 =3D 3 #quantity bought
>
> puts "\n" #break
>
> #lottery draw
> list =3D []
> (list << '%05i' % (rand(99999)+1)).uniq! while list.length < 5
> number1, number2, number3, number4, number5 =3D list
> serie1, serie2, serie3, serie4, serie5 =3D Array.new(5) { rand(180)+1 }
> number6 =3D number1.to_i - 1
> number7 =3D number1.to_i + 1
> number8 =3D number2.to_i - 1
> number9 =3D number2.to_i + 1
> number10 =3D number3.to_i - 1
> number11 =3D number3.to_i + 1
> number12 =3D number1.to_i / 100
> number13 =3D number2.to_i / 100
> number14 =3D number3.to_i / 100
> number15 =3D number4.to_i / 100
> number16 =3D number5.to_i / 100
> number17 =3D number1.to_i % 10
> puts list
>
> puts "\n" #break
>
> #prizes
> prize1 =3D 400000 * quantity1 #1st
> prize2 =3D 125000 * quantity1 #2n
> prize3 =3D 50000 * quantity1 #3rd
> prize4 =3D 20000 * quantity1 #4th
> prize5 =3D 2000 * quantity1 #Consolation1
> prize6 =3D 1250 * quantity1 #Consolation2
> prize7 =3D 960 * quantity1 #Consolation3
> prize8 =3D 100 * quantity1 #Cantena
> prize9 =3D 20 * quantity1 #Reintegro
>
> #winnings
> def show_results(a, b)
> puts "Ticket ##{a.to_s.rjust(5, '0')} won =80#{b}."
> end
>
> if ticket1 =3D=3D number1.to_i
> show_results(ticket1, prize1)
> end
>
> if ticket1 =3D=3D number2.to_i
> show_results(ticket1, prize2)
> end
>
> if ticket1 =3D=3D number3.to_i
> show_results(ticket1, prize3)
> end
>
> if ticket1 =3D=3D number4.to_i or
> ticket1 =3D=3D number5.to_i
> show_results(ticket1, prize4)
> end
>
> if ticket1 =3D=3D number6.to_i or
> ticket1 =3D=3D number7.to_i
> show_results(ticket1, prize5)
> end
>
> if ticket1 =3D=3D number8.to_i or
> ticket1 =3D=3D number9.to_i
> show_results(ticket1, prize6)
> end
>
> if ticket1 =3D=3D number10.to_i or
> ticket1 =3D=3D number11.to_i
> show_results(ticket1, prize7)
> end
>
> if ticket1.to_i / 100 =3D=3D number12.to_i or
> ticket1.to_i / 100 =3D=3D number13.to_i or
> ticket1.to_i / 100 =3D=3D number14.to_i or
> ticket1.to_i / 100 =3D=3D number15.to_i or
> ticket1.to_i / 100 =3D=3D number16.to_i
> show_results(ticket1, prize8)
> end
>
> if ticket1.to_i % 10 =3D=3D number17.to_i
> show_results(ticket1, prize9)
> end
>
>
> But the suggestion I really need is -
> How to get it work with 10 (or 20, 50, 99999 randomly generated tickets
> with random quantities each)?
>
> --
> Posted via http://www.ruby-forum.com/.