CodeWalrus

Development => PC, Mac & Vintage Computers => Topic started by: Unicorn on July 18, 2015, 05:33:48 PM

Title: Unicorn's Ruby Questions and Programs [Ruby]
Post by: Unicorn on July 18, 2015, 05:33:48 PM
So, I decided to make a question/display thread about ruby. I am currently trying to make a guessing game, sticking with the first game I made in TI-BASIC :P

Anyways, I'll ask questions here and showcase my programs, and maybe post downloads. :)

EDIT: A little input and display program:

Code (Input/Display) Select

while 1
puts 'Type whatever you want here!'
text = gets.chomp
puts text
if text == 'Quit'
    abort
end
end


Also, a guessing game :)
If you have ruby installed, run the attached file.
Else, install it :P

guess = 10000
puts 'Guess a number from 0 to 50!'
number = rand(50)
while guess > 0
  guess = gets.to_i
  if guess == number
    puts 'Great job! You guessed the number!'
    abort
  elsif guess > number
    puts 'That is not the right number.'
    puts 'Try again, with a LOWER number'
  elsif guess < number
    puts 'That is not the right number.'
    puts 'Try again, with a HIGHER number'
  end
end
Title: Re: Unicorn's Ruby Questions and Programs
Post by: alexgt on July 19, 2015, 12:03:04 AM
O.o ruby looks quite like HP PPL as far as syntax I think I might give a shot at learning it, I hope you succeed Unicorn :)
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on July 19, 2015, 12:26:24 AM
Yeah, I like how much it is like a basic language. Another good thing, is that there are a few ruby dev environments in the cloud, like cloud9 :)
Title: Re: Unicorn's Ruby Questions and Programs [Ruby]
Post by: Strontium on July 19, 2015, 01:01:03 AM
[spoiler]
Quote from: Unicorn on July 18, 2015, 05:33:48 PM
--snip--
Also, a guessing game :)
If you have ruby installed, run the attached file.
Else, install it :P

guess = 10000
puts 'Guess a number from 0 to 50!'
number = rand(50)
while guess > 0
  guess = gets.to_i
  if guess == number
    puts 'Great job! You guessed the number!'
    abort
  elsif guess > number
    puts 'That is not the right number.'
    puts 'Try again, with a LOWER number'
  elsif guess < number
    puts 'That is not the right number.'
    puts 'Try again, with a HIGHER number'
  end
end


fixed yo indentation
[/spoiler]

Quote from: Unicorn on July 19, 2015, 12:26:24 AM
Yeah, I like how much it is like a basic language. Another good thing, is that there are a few ruby dev environments in the cloud, like cloud9 :)
Lots of languages have online environments. Even Haskell <3
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on July 19, 2015, 01:11:48 AM
lol, yeah, thats true.

Thanks for fixig that, I guess it didnt sav it when copy/pasting. I'll paste itnin tomorrow :)
Title: Re: Unicorn's Ruby Questions and Programs
Post by: alexgt on July 19, 2015, 01:56:55 AM
The one  thing I dislike about on calc editing is it is hard to inddent <_< I should add that to SIFS prog editor O.O
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on July 19, 2015, 02:24:04 AM
Good idea! But be reminded, this wasn't on calc. ;)
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Strontium on July 19, 2015, 03:43:52 AM
Quote from: Unicorn on July 19, 2015, 02:24:04 AM
Good idea! But be reminded, this wasn't on calc. ;)

It would be great if there were ARM powered calculators that ran a *nix OS (probably BSD. That seems like a good fit for a calculator!) so you could use any language you wanted without having to do much work porting, as well as use many programs targeted at desktop devices.
now I know what I should do with a future computer science degree :)
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on July 19, 2015, 03:46:40 AM
You could sell designs to TI or HP or Casio :P
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Strontium on July 19, 2015, 04:05:54 AM
Quote from: Unicorn on July 19, 2015, 03:46:40 AM
You could sell designs to TI or HP or Casio :P

I don't think any of them will listen. Especially TI.
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Yuki on July 19, 2015, 05:13:29 AM
Quote from: Strontium on July 19, 2015, 03:43:52 AM
Quote from: Unicorn on July 19, 2015, 02:24:04 AM
Good idea! But be reminded, this wasn't on calc. ;)

It would be great if there were ARM powered calculators that ran a *nix OS (probably BSD. That seems like a good fit for a calculator!) so you could use any language you wanted without having to do much work porting, as well as use many programs targeted at desktop devices.
now I know what I should do with a future computer science degree :)
/me points to Nspire Linux >.>
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Strontium on July 19, 2015, 05:27:54 AM
Quote from: Juju on July 19, 2015, 05:13:29 AM
Quote from: Strontium on July 19, 2015, 03:43:52 AM
Quote from: Unicorn on July 19, 2015, 02:24:04 AM
Good idea! But be reminded, this wasn't on calc. ;)

It would be great if there were ARM powered calculators that ran a *nix OS (probably BSD. That seems like a good fit for a calculator!) so you could use any language you wanted without having to do much work porting, as well as use many programs targeted at desktop devices.
now I know what I should do with a future computer science degree :)
/me points to Nspire Linux >.>

Thats not officially supported though, and it looks like a pain in the ass to use.
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Yuki on July 19, 2015, 05:38:03 AM
Actually, that would be nice if someone writes a calc GUI for Nspire Linux and would support a lot of stuff the official GUI wouldn't.
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on July 20, 2015, 04:56:29 PM
Question! Is sprinting possible with ruby? I know you would have to get a gem, but is it possible? And if so. I saw some things about CSS sprite gems, would the CSS be the same as CSS with HTML?
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on December 06, 2015, 07:29:14 PM
I haven't posted here in a while, but anyways, I've been messing around with the Green_Shoes (https://ashbb.github.io/green_shoes/) gem for GUI, and I ran into a problem.

This program I have quizzes the user. I have everything set up, but when the user gets the answer right, I can't get the screen to clear and allow new elements to be displayed. Is there like a ClrHome command?


I can post the code if need be, but I really am just asking for a command of some sort.
Thanks in advance.


Oh yeah, and I made the guessing game a little nicer looking.


require 'green_shoes'
guess = 0
ans = rand(1...50)
Shoes.app(title: "RubyGuess") do
  while 1
guess = ask("Guess a Numer from 1 - 50")
guess = guess.to_i
  if guess == ans
    alert "Great Job! You guessed the number!"
    if confirm("Quit?")
      exit
    end
  end
if guess != ans
  if guess > ans
    quit = confirm(" You did not guess the number. Try a lower number.")
  end
  if guess < ans
    quit = confirm(" You did not guess the number. Try a higher number")
  end
  if quit == false
    exit
  end
  end
  end
  end

run the .rb if you have ruby and the gem green_shoes installed. Otherwise, run the .exe. On windows it takes about 30-45 seconds to open, it has to do with Ocra's packaging.
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on December 08, 2015, 01:02:08 AM
I solved that, but now, I have another problem


require 'green_shoes'
q_num = 1
score = 0
unit1 = rand(1 .. 6)
unit2 = rand(1 .. 3)
if unit2 == 1
  type = "liquid"
end
if unit2 == 2
  type = "mass or weight"
end
if unit2 == 3
  type = "distance"
end
if unit1 == 1 && unit2 == 1
  q_ans = "Milliliter"
  q = 0.001
end
if unit1 == 1 && unit2 == 2
  q_ans = "Milligram"
  q = 0.001
end
if unit1 == 1 && unit2 == 3
  q_ans = "Millimeter"
  q = 0.001
end
if unit1 == 2 && unit2 == 1
  q_ans = "Centiliter"
  q = 0.01
end
if unit1 == 2 && unit2 == 2
  q_ans = "Centigram"
  q = 0.01
end
if unit1 == 2 && unit2 == 3
  q_ans = "Centimeter"
  q = 0.01
end
if unit1 == 3 && unit2 == 1
  q_ans = "Deciliter"
  q = 0.1
end
if unit1 == 3 && unit2 == 2
  q_ans = "Decigram"
  q = 0.1
end
if unit1 == 3 && unit2 == 3
  q_ans = "Decimeter"
  q = 0.1
end
if unit1 == 4 && unit2 == 1
  q_ans = "Dekaliter"
  q = 10
end
if unit1 == 4 && unit2 == 2
  q_ans = "Dekagram"
  q = 10
end
if unit1 == 4 && unit2 == 3
  q_ans = "Dekameter"
  q = 10
end
if unit1 == 5 && unit2 == 1
  q_ans = "Hectoliter"
  q = 100
end
if unit1 == 5 && unit2 == 2
  q_ans = "Hectogram"
  q = 100
end
if unit1 == 5 && unit2 == 3
  q_ans = "Hectometer"
  q = 100
end
if unit1 == 6 && unit2 == 1
  q_ans = "Kiloliter"
  q = 1000
end
if unit1 == 6 && unit2 == 2
  q_ans = "Kilolgram"
  q = 1000
end
if unit1 == 6 && unit2 == 3
  q_ans = "Kilometer"
  q = 1000
end
Shoes.app(title: "App", width: 500, height: 503) do
  background white
  @s = para "Score: #{score}/10", top: 200
  @qn = para "Question #{q_num} of 10", top: 300
  tagline "What is the correct unit?"
  para ""
  para ""
  @q = para "#{q} + #{type}"
  para ""
  @e = edit_line :top => 133, :width => 400
  button "Next" do
    if @e.text.capitalize != q_ans
      confrm = confirm ("Incorrect Answer. Next?")
      @q.remove
      unit1 = rand(1 .. 6)
      unit2 = rand(1 .. 3)
      if unit2 == 1
        type = "liquid"
      end
      if unit2 == 2
        type = "mass or weight"
      end
      if unit2 == 3
        type = "distance"
      end
      if unit1 == 1 && unit2 == 1
        q_ans = "Milliliter"
        q = 0.001
      end
      if unit1 == 1 && unit2 == 2
        q_ans = "Milligram"
        q = 0.001
      end
      if unit1 == 1 && unit2 == 3
        q_ans = "Millimeter"
        q = 0.001
      end
      if unit1 == 2 && unit2 == 1
        q_ans = "Centiliter"
        q = 0.01
      end
      if unit1 == 2 && unit2 == 2
        q_ans = "Centigram"
        q = 0.01
      end
      if unit1 == 2 && unit2 == 3
        q_ans = "Centimeter"
        q = 0.01
      end
      if unit1 == 3 && unit2 == 1
        q_ans = "Deciliter"
        q = 0.1
      end
      if unit1 == 3 && unit2 == 2
        q_ans = "Decigram"
        q = 0.1
      end
      if unit1 == 3 && unit2 == 3
        q_ans = "Decimeter"
        q = 0.1
      end
      if unit1 == 4 && unit2 == 1
        q_ans = "Dekaliter"
        q = 10
      end
      if unit1 == 4 && unit2 == 2
        q_ans = "Dekagram"
        q = 10
      end
      if unit1 == 4 && unit2 == 3
        q_ans = "Dekameter"
        q = 10
      end
      if unit1 == 5 && unit2 == 1
        q_ans = "Hectoliter"
        q = 100
      end
      if unit1 == 5 && unit2 == 2
        q_ans = "Hectogram"
        q = 100
      end
      if unit1 == 5 && unit2 == 3
        q_ans = "Hectometer"
        q = 100
      end
      if unit1 == 6 && unit2 == 1
        q_ans = "Kiloliter"
        q = 1000
      end
      if unit1 == 6 && unit2 == 2
        q_ans = "Kilolgram"
        q = 1000
      end
      if unit1 == 6 && unit2 == 3
        q_ans = "Kilometer"
        q = 1000
      end
      q_num = q_num + 1
      @q = para "#{q} + #{type}", top: 85
      @e.clear
      @e = edit_line :top => 133, :width => 400
      @qn.clear
     @qn = para "Question #{q_num} of 10", top: 300
      if confrm == false
        alert "You had a score of #{score}"
        exit
      end
    end
    if @e.text.capitalize == q_ans
      confrm = confirm ("Correct Answer. Continue?")
      if confrm == false
        alert "You had a score of #{score}"
        exit
      end
      if confrm == true
        @q.remove
        unit1 = rand(1 .. 6)
        unit2 = rand(1 .. 3)
        if unit2 == 1
          type = "liquid"
        end
        if unit2 == 2
          type = "mass or weight"
        end
        if unit2 == 3
          type = "distance"
        end
        if unit1 == 1 && unit2 == 1
          q_ans = "Milliliter"
          q = 0.001
        end
        if unit1 == 1 && unit2 == 2
          q_ans = "Milligram"
          q = 0.001
        end
        if unit1 == 1 && unit2 == 3
          q_ans = "Millimeter"
          q = 0.001
        end
        if unit1 == 2 && unit2 == 1
          q_ans = "Centiliter"
          q = 0.01
        end
        if unit1 == 2 && unit2 == 2
          q_ans = "Centigram"
          q = 0.01
        end
        if unit1 == 2 && unit2 == 3
          q_ans = "Centimeter"
          q = 0.01
        end
        if unit1 == 3 && unit2 == 1
          q_ans = "Deciliter"
          q = 0.1
        end
        if unit1 == 3 && unit2 == 2
          q_ans = "Decigram"
          q = 0.1
        end
        if unit1 == 3 && unit2 == 3
          q_ans = "Decimeter"
          q = 0.1
        end
        if unit1 == 4 && unit2 == 1
          q_ans = "Dekaliter"
          q = 10
        end
        if unit1 == 4 && unit2 == 2
          q_ans = "Dekagram"
          q = 10
        end
        if unit1 == 4 && unit2 == 3
          q_ans = "Dekameter"
          q = 10
        end
        if unit1 == 5 && unit2 == 1
          q_ans = "Hectoliter"
          q = 100
        end
        if unit1 == 5 && unit2 == 2
          q_ans = "Hectogram"
          q = 100
        end
        if unit1 == 5 && unit2 == 3
          q_ans = "Hectometer"
          q = 100
        end
        if unit1 == 6 && unit2 == 1
          q_ans = "Kiloliter"
          q = 1000
        end
        if unit1 == 6 && unit2 == 2
          q_ans = "Kilolgram"
          q = 1000
        end
        if unit1 == 6 && unit2 == 3
          q_ans = "Kilometer"
          q = 1000
        end
        q_num = q_num + 1
        @q = para "#{q} + #{type}", top: 85
        @e.clear
        @e = edit_line :top => 133, :width => 400
        score = score + 1
        @s.clear
        @qn.clear
        @s = para "Score: #{score}/10", top: 200
        @qn = para "Question #{q_num} of 10", top: 300
        if q_num == 11 && score == 10
          confrm = confirm("You have completed all of the questions with a score of #{score}! You got an A+! Try again?")
          if confrm == false
            exit
          end
          if confrm == true
            score = 0
            q_num = 0
          end
        end
        if q_num == 11
          confrm = confirm("You have completed all of the questions with a score of #{score}! You did not ace the quiz. Try again?")
          if confrm == false
            exit
          end
          if confrm == true
            score = 0
            q_num = 0
          end
        end
    end
  end
  end
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  button "Quit" do
    alert "You had a score of #{score}"
    exit
  end
  end


Anyhow, when it's run, it never asks for the Kilo prefix and meter suffix. I believe it has something to do with how I'm getting the rand, but I'm not sure. If someone could find out why its like that, it'd be great!

Oh yeah, and I'm sure there are a lot of things to be optimized, but I need to finish before optimizing. If you have any suggestions, please post them though.


Not sure what I did, but I fixed it! Updated the code
Title: Re: Unicorn's Ruby Questions and Programs
Post by: Unicorn on January 02, 2016, 07:18:21 AM
So, that same program is done, and I'm gonna release it!


require 'green_shoes'
q_num = 1
score = 0
unit1 = rand(1 .. 6)
unit2 = rand(1 .. 3)
if unit2 == 1
  type = "liquid"
end
if unit2 == 2
  type = "mass or weight"
end
if unit2 == 3
  type = "distance"
end
if unit1 == 1 && unit2 == 1
  q_ans = "Milliliter"
  q = 0.001
end
if unit1 == 1 && unit2 == 2
  q_ans = "Milligram"
  q = 0.001
end
if unit1 == 1 && unit2 == 3
  q_ans = "Millimeter"
  q = 0.001
end
if unit1 == 2 && unit2 == 1
  q_ans = "Centiliter"
  q = 0.01
end
if unit1 == 2 && unit2 == 2
  q_ans = "Centigram"
  q = 0.01
end
if unit1 == 2 && unit2 == 3
  q_ans = "Centimeter"
  q = 0.01
end
if unit1 == 3 && unit2 == 1
  q_ans = "Deciliter"
  q = 0.1
end
if unit1 == 3 && unit2 == 2
  q_ans = "Decigram"
  q = 0.1
end
if unit1 == 3 && unit2 == 3
  q_ans = "Decimeter"
  q = 0.1
end
if unit1 == 4 && unit2 == 1
  q_ans = "Dekaliter"
  q = 10
end
if unit1 == 4 && unit2 == 2
  q_ans = "Dekagram"
  q = 10
end
if unit1 == 4 && unit2 == 3
  q_ans = "Dekameter"
  q = 10
end
if unit1 == 5 && unit2 == 1
  q_ans = "Hectoliter"
  q = 100
end
if unit1 == 5 && unit2 == 2
  q_ans = "Hectogram"
  q = 100
end
if unit1 == 5 && unit2 == 3
  q_ans = "Hectometer"
  q = 100
end
if unit1 == 6 && unit2 == 1
  q_ans = "Kiloliter"
  q = 1000
end
if unit1 == 6 && unit2 == 2
  q_ans = "Kilogram"
  q = 1000
end
if unit1 == 6 && unit2 == 3
  q_ans = "Kilometer"
  q = 1000
end
Shoes.app(title: "Metric Ladder Quiz", width: 500, height: 503) do
  background white
  @s = para "Score: #{score}/10", top: 200
  @qn = para "Question #{q_num} of 10", top: 300
  tagline "What is the correct unit?"
  para ""
  para ""
  @q = para "#{q} + #{type}"
  para ""
  @e = edit_line :top => 133, :width => 400
  button "Next" do
    if @e.text.capitalize != q_ans
      confrm = confirm ("Incorrect Answer. Next?")
      @q.remove
      unit1 = rand(1 .. 6)
      unit2 = rand(1 .. 3)
      if unit2 == 1
        type = "liquid"
      end
      if unit2 == 2
        type = "mass or weight"
      end
      if unit2 == 3
        type = "distance"
      end
      if unit1 == 1 && unit2 == 1
        q_ans = "Milliliter"
        q = 0.001
      end
      if unit1 == 1 && unit2 == 2
        q_ans = "Milligram"
        q = 0.001
      end
      if unit1 == 1 && unit2 == 3
        q_ans = "Millimeter"
        q = 0.001
      end
      if unit1 == 2 && unit2 == 1
        q_ans = "Centiliter"
        q = 0.01
      end
      if unit1 == 2 && unit2 == 2
        q_ans = "Centigram"
        q = 0.01
      end
      if unit1 == 2 && unit2 == 3
        q_ans = "Centimeter"
        q = 0.01
      end
      if unit1 == 3 && unit2 == 1
        q_ans = "Deciliter"
        q = 0.1
      end
      if unit1 == 3 && unit2 == 2
        q_ans = "Decigram"
        q = 0.1
      end
      if unit1 == 3 && unit2 == 3
        q_ans = "Decimeter"
        q = 0.1
      end
      if unit1 == 4 && unit2 == 1
        q_ans = "Dekaliter"
        q = 10
      end
      if unit1 == 4 && unit2 == 2
        q_ans = "Dekagram"
        q = 10
      end
      if unit1 == 4 && unit2 == 3
        q_ans = "Dekameter"
        q = 10
      end
      if unit1 == 5 && unit2 == 1
        q_ans = "Hectoliter"
        q = 100
      end
      if unit1 == 5 && unit2 == 2
        q_ans = "Hectogram"
        q = 100
      end
      if unit1 == 5 && unit2 == 3
        q_ans = "Hectometer"
        q = 100
      end
      if unit1 == 6 && unit2 == 1
        q_ans = "Kiloliter"
        q = 1000
      end
      if unit1 == 6 && unit2 == 2
        q_ans = "Kilogram"
        q = 1000
      end
      if unit1 == 6 && unit2 == 3
        q_ans = "Kilometer"
        q = 1000
      end
      q_num = q_num + 1
      @q = para "#{q} + #{type}", top: 85
      @e.clear
      @e = edit_line :top => 133, :width => 400
      @qn.clear
      @qn = para "Question #{q_num} of 10", top: 300
      if confrm == false
        alert "You had a score of #{score}"
        exit
      end
    end
    if @e.text.capitalize == q_ans
      confrm = confirm ("Correct Answer. Continue?")
      if confrm == false
        alert "You had a score of #{score}"
        exit
      end
      if confrm == true
        @q.remove
        unit1 = rand(1 .. 6)
        unit2 = rand(1 .. 3)
        if unit2 == 1
          type = "liquid"
        end
        if unit2 == 2
          type = "mass or weight"
        end
        if unit2 == 3
          type = "distance"
        end
        if unit1 == 1 && unit2 == 1
          q_ans = "Milliliter"
          q = 0.001
        end
        if unit1 == 1 && unit2 == 2
          q_ans = "Milligram"
          q = 0.001
        end
        if unit1 == 1 && unit2 == 3
          q_ans = "Millimeter"
          q = 0.001
        end
        if unit1 == 2 && unit2 == 1
          q_ans = "Centiliter"
          q = 0.01
        end
        if unit1 == 2 && unit2 == 2
          q_ans = "Centigram"
          q = 0.01
        end
        if unit1 == 2 && unit2 == 3
          q_ans = "Centimeter"
          q = 0.01
        end
        if unit1 == 3 && unit2 == 1
          q_ans = "Deciliter"
          q = 0.1
        end
        if unit1 == 3 && unit2 == 2
          q_ans = "Decigram"
          q = 0.1
        end
        if unit1 == 3 && unit2 == 3
          q_ans = "Decimeter"
          q = 0.1
        end
        if unit1 == 4 && unit2 == 1
          q_ans = "Dekaliter"
          q = 10
        end
        if unit1 == 4 && unit2 == 2
          q_ans = "Dekagram"
          q = 10
        end
        if unit1 == 4 && unit2 == 3
          q_ans = "Dekameter"
          q = 10
        end
        if unit1 == 5 && unit2 == 1
          q_ans = "Hectoliter"
          q = 100
        end
        if unit1 == 5 && unit2 == 2
          q_ans = "Hectogram"
          q = 100
        end
        if unit1 == 5 && unit2 == 3
          q_ans = "Hectometer"
          q = 100
        end
        if unit1 == 6 && unit2 == 1
          q_ans = "Kiloliter"
          q = 1000
        end
        if unit1 == 6 && unit2 == 2
          q_ans = "Kilogram"
          q = 1000
        end
        if unit1 == 6 && unit2 == 3
          q_ans = "Kilometer"
          q = 1000
        end
        q_num = q_num + 1
        @q = para "#{q} + #{type}", top: 85
        @e.clear
        @e = edit_line :top => 133, :width => 400
        score = score + 1
        @s.clear
        @qn.clear
        @s = para "Score: #{score}/10", top: 200
        @qn = para "Question #{q_num} of 10", top: 300
        if q_num == 11 && score == 10
          confrm = confirm("You have completed all of the questions with a score of #{score}! You got an A+! Try again?")
          if confrm == false
            exit
          end
          if confrm == true
            score = 0
            q_num = 0
          end
        end
        if q_num == 11
          confrm = confirm("You have completed all of the questions with a score of #{score}! You did not ace the quiz. Try again?")
          if confrm == false
            exit
          end
          if confrm == true
            score = 0
            q_num = 0
          end
        end
      end
    end
  end
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  para ""
  button "Quit" do
    quit = confirm("Are you sure you want to quit?")
  if quit == true
    alert "You had a score of #{score}"
    exit
  end
  end
end


If you want to use it, download the file, and install ruby: https://www.ruby-lang.org/en/downloads/
After ruby is installed, open your terminal or cmd, and type:
[Windows] gem install green_shoes
[Linux] sudo gem install green_shoes
[OSX] Not sure, probably one of the two.

Example of play:

You get 2 hints, a number (.1, 100, 10, base ten) and you have to decide which metric name that is. 100 would be Hecto. You also get a substance (Liquid, mass, distance) and you have to name the metric unit for that. Liquid would be Liter. Put them together, and you get Hectoliter. That is your answer. Get all ten questions, and you get a cake. (not really)

(https://usercontent.irccloud-cdn.com/file/N29NoUAY/Screenshot%20from%202016-01-01%2021%3A17%3A19.png)