flashcards_arikgadye 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/UI.rb +31 -0
- data/lib/deck.rb +11 -0
- data/lib/file_reader.rb +18 -0
- data/lib/flashcards.rb +7 -0
- data/lib/game.rb +52 -0
- data/lib/game_logic.rb +8 -0
- metadata +49 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b91449b093ab07974c3990b2c4e575a188628406
|
4
|
+
data.tar.gz: 7d84ff6ba2f19f8ab9ca3b79e30a0edfd0cff443
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 68c4888d224b1b1c0e1a6798413a23f2cabbd9e6adbb53e8f30b927562107d23dd80ccd3373abe099eb63d15be23a8cf57daf745eeaf3f15937caec93cec3965
|
7
|
+
data.tar.gz: 07f60a506efb805c7def19f581dab307af8d51567d541d75351377e18be1a8161cefe81e8787f5a6064aaeb5c19ce841a4a4c50ed4b0ed54a16a6597f16ce8db
|
data/lib/UI.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative 'flashcards.rb'
|
2
|
+
require_relative 'deck.rb'
|
3
|
+
# require_relative '../controllers/game.rb'
|
4
|
+
class View
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def render(text)
|
8
|
+
puts text
|
9
|
+
end
|
10
|
+
|
11
|
+
def show_question(card) render card.question
|
12
|
+
end
|
13
|
+
|
14
|
+
def show_answer(card)
|
15
|
+
render ("The correct answer is: '#{card.answer}'")
|
16
|
+
end
|
17
|
+
|
18
|
+
def wrong_answer
|
19
|
+
render("Wrong answer! Wanna try again? (y/n)")
|
20
|
+
end
|
21
|
+
|
22
|
+
def correct_answer
|
23
|
+
render("Correct!")
|
24
|
+
end
|
25
|
+
|
26
|
+
def game_intro
|
27
|
+
render("Welcome to flashcards! Type your input for each question and lets start learning! To exit, type 'exit'")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
data/lib/deck.rb
ADDED
data/lib/file_reader.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'flashcards.rb'
|
2
|
+
module ReadFile
|
3
|
+
|
4
|
+
def self.make_deck(file)
|
5
|
+
file_array = []
|
6
|
+
deck = []
|
7
|
+
f = File.open(file, "r")
|
8
|
+
f.each_line do |line|
|
9
|
+
file_array << line.chomp
|
10
|
+
end
|
11
|
+
file_array.delete('')
|
12
|
+
file_array.each_slice(2) do |card|
|
13
|
+
deck << Flashcard.new(card[0], card[1])
|
14
|
+
end
|
15
|
+
deck
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
data/lib/flashcards.rb
ADDED
data/lib/game.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require_relative 'deck.rb'
|
2
|
+
require_relative 'UI.rb'
|
3
|
+
require_relative 'game_logic.rb'
|
4
|
+
class Game
|
5
|
+
|
6
|
+
class << self
|
7
|
+
attr_reader :deck, :correct
|
8
|
+
def initialize(args={})
|
9
|
+
@current_card = nil
|
10
|
+
@file = args[:file] || ARGV[0]
|
11
|
+
@deck = Deck.initialize(@file)
|
12
|
+
@user_exit = false
|
13
|
+
@counter = 0
|
14
|
+
@correct = false
|
15
|
+
end
|
16
|
+
|
17
|
+
def play
|
18
|
+
View.game_intro
|
19
|
+
while !@user_exit && @counter < deck.length
|
20
|
+
sleep(0.5)
|
21
|
+
# repeat = true
|
22
|
+
@correct = false
|
23
|
+
@current_card = deck[@counter]
|
24
|
+
View.show_question(@current_card)
|
25
|
+
check_answer
|
26
|
+
@counter += 1
|
27
|
+
end
|
28
|
+
end
|
29
|
+
def check_answer
|
30
|
+
while !@correct
|
31
|
+
sleep(0.5)
|
32
|
+
View.render("Guess:")
|
33
|
+
answer = GameLogic.user_input
|
34
|
+
if answer == @current_card.answer
|
35
|
+
@correct = true
|
36
|
+
View.correct_answer
|
37
|
+
elsif answer.downcase == "exit"
|
38
|
+
@user_exit = true
|
39
|
+
break
|
40
|
+
else
|
41
|
+
View.wrong_answer
|
42
|
+
try_again = GameLogic.user_input
|
43
|
+
if try_again == 'n'
|
44
|
+
View.show_answer(@current_card)
|
45
|
+
break
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
data/lib/game_logic.rb
ADDED
metadata
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: flashcards_arikgadye
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Arik Gadye
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Gem to make and read flashcards
|
14
|
+
email: arikdovgadye@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/flashcards.rb
|
20
|
+
- lib/deck.rb
|
21
|
+
- lib/UI.rb
|
22
|
+
- lib/file_reader.rb
|
23
|
+
- lib/game_logic.rb
|
24
|
+
- lib/game.rb
|
25
|
+
homepage: http://rubygems.org/gems/flashcards_arikgadye
|
26
|
+
licenses:
|
27
|
+
- MIT
|
28
|
+
metadata: {}
|
29
|
+
post_install_message:
|
30
|
+
rdoc_options: []
|
31
|
+
require_paths:
|
32
|
+
- lib
|
33
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
requirements: []
|
44
|
+
rubyforge_project:
|
45
|
+
rubygems_version: 2.1.9
|
46
|
+
signing_key:
|
47
|
+
specification_version: 4
|
48
|
+
summary: Flashcards game
|
49
|
+
test_files: []
|