Sha256: 41d0a1a086f192c373a996e9baa60e13fcde645ce715db12d651c825bb9b7f43

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

require 'highline/import'
require "pp"
require_relative '../lib/rasam'

include Rasam

def get_user_choice_for(pair)
  choose do |menu|
    menu.prompt = "Please choose your favorite: "
        
    pair.each do |c|
      menu.choice(c) do
        say(c)
        rationale = ask("Why?  ")
        say(rationale)
        
        @pr.make_rational_choice(pair, c, rationale)
      end
    end
  end
end

def display_score(options)
  options.each do |option|
    p "Score for #{option} : #{@pr.score_for(option)}"
  end     
end

options = ask("Enter your choices (or a blank line to quit):",
lambda { |ans| ans =~ /^-?\d+$/ ? Integer(ans) : ans} ) do |q|
  q.gather = ""
end

@pr = PairRank.new(options)

def display_decisions
  @pr.decisions.each do |d|
    p d.to_s
  end
end

pair = @pr.combination

loop do
  p pair    
  break if pair.nil?
  get_user_choice_for(pair) 
  pair = @pr.combination
end

display_decisions
display_score(options)

p 'Processing ties'

loop do
  tie = @pr.tied_pair
  if tie.empty?
    break
  else tie.empty?
    p 'Handling a tie'
  
    get_user_choice_for(tie)

    display_decisions    
    display_score(options)  
  end  
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rasam-0.2.7 scripts/prank.rb
rasam-0.2.6 scripts/prank.rb
rasam-0.2.5 scripts/prank.rb
rasam-0.2.4 scripts/prank.rb