-
-
Save bgreg/3e9f1c04d33b0f572817 to your computer and use it in GitHub Desktop.
Intro to Rails, week one. Build a Flash card app Assignment .
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Flashcards | |
class Application | |
def initialize | |
@decks =[] | |
end | |
def << deck | |
@decks << deck | |
end | |
def display_decks | |
@decks.each { |deck| puts deck.name } | |
end | |
def get_deck | |
name = gets.chomp | |
@decks.detect { |deck| deck.name = name } | |
end | |
def play | |
display_decks | |
print "Pick a deck:" | |
deck = get_deck | |
deck.play | |
end | |
end | |
class Card | |
attr_accessor :front, :back | |
def initialize front, back | |
@front = front | |
@back = back | |
end | |
def correct? guess | |
guess == @back | |
end | |
def play | |
puts "Card play called" | |
print "#{front} >" | |
guess = gets.chomp | |
if correct? guess | |
puts "Correct" | |
else | |
puts "Incorrect, the answer was #{back}" | |
end | |
end | |
end | |
class Deck | |
attr_accessor :name, :cards | |
def initialize name | |
@name = name | |
@cards = [] | |
end | |
def << card | |
@cards << card | |
end | |
def shuffle | |
@cards.shuffle! | |
end | |
def play | |
shuffle | |
@cards.each(&:play) | |
end | |
end | |
class MultipleAnswerCard < Card | |
def correct? guess | |
answers = @back.split(',') | |
answers.any? { |answer| answer == guess } | |
end | |
end | |
end | |
card = Flashcards::MultipleAnswerCard.new("Violin", "baoirin,viiorin") | |
# card1 = Flashcards::Card.new("cat","neko") | |
# card2 = Flashcards::Card.new("dog","inu") | |
# card3 = Flashcards::Card.new("snake","le snake") | |
japaneseDeck = Flashcards::Deck.new("j") | |
japaneseDeck << card | |
#japaneseDeck << card1 | |
#japaneseDeck << card2 | |
#japaneseDeck << card3 | |
russianDeck = Flashcards::Deck.new("r") | |
app = Flashcards::Application.new | |
app << russianDeck | |
app << japaneseDeck | |
app.play |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment