flashcards_arikgadye 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|