Sha256: 3a0396a1d313270efb238f41d08395f19963c35c3959bcccc5a3392850323aa5

Contents?: true

Size: 1.32 KB

Versions: 14

Compression:

Stored size: 1.32 KB

Contents

module Githug
  class Game

    attr_accessor :profile

    def initialize
      @profile = Profile.load
    end

    def play_level
      solve = true
      if profile.level.nil?
        UI.puts("Welcome to Githug!")
        solve = false
        level_bump
      else
        level = Level.load(profile.level)
        if solve && level
          if level.solve
            UI.success "Congratulations, you have solved the level!"
            level_bump
          else
            UI.error "Sorry, this solution is not quite right!"
            profile.current_attempts += 1
            profile.save

            if (profile.current_attempts > 2 && profile.current_attempts % 3 == 0)
              UI.error "Don't forget you can type `githug hint` for a hint and `githug reset` to reset the current level."
            end

            UI.puts level.full_description
          end
        end
      end
    end

    def test_level(level, errors = nil)
      UI.puts level.full_description
      method = :solve
      method = :test if errors
      if level.send(method)
        UI.success "Valid solution"
      else
        UI.error "Invalid solution"
      end
    end

    def level_bump
      profile.level_bump
      if level = Level.load(profile.level)
        UI.puts(level.full_description)
        level.setup_level
      end
    end

  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
githug-0.5.1 lib/githug/game.rb
mygithug-0.5.1 lib/githug/game.rb
githug-0.5.0 lib/githug/game.rb
githug-0.4.8 lib/githug/game.rb
githug-0.4.7 lib/githug/game.rb
githug-0.4.6 lib/githug/game.rb
githug-0.4.5 lib/githug/game.rb
githug-0.4.4 lib/githug/game.rb
githug-0.4.3 lib/githug/game.rb
githug-0.4.2 lib/githug/game.rb
githug-0.4.1 lib/githug/game.rb
githug-0.4.0 lib/githug/game.rb
githug-0.3.5 lib/githug/game.rb
githug-0.3.4 lib/githug/game.rb