fizzbuzzer 0.0.1 → 0.1.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 +4 -4
- data/Manifest.txt +1 -0
- data/README.md +62 -8
- data/bin/fizzbuzz +17 -0
- data/lib/fizzbuzzer.rb +35 -2
- data/lib/fizzbuzzer/version.rb +2 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28811d471013230a977d03c106fb752a6367ebaf
|
4
|
+
data.tar.gz: 64f7fd56a9228ac13a81028d3c9f363b7120908c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7712b412f04216e2d143b258dc4c029924a27db4b9b26d63e992ef01bb787c848d03e7609ac78a2d7df53d5972fed4efb6e1731f218b03dbccc06722935488e9
|
7
|
+
data.tar.gz: b2fb9b151340b3a08af3d07cf1e8e97a68c80df108b2af4c44a55a59cddafd5e47cc9e32323cd9193a84a866d1d0eb9b1a7abca056b7e098bc6c3c0adff86507
|
data/Manifest.txt
CHANGED
data/README.md
CHANGED
@@ -6,32 +6,86 @@ or helps you find the world's best coders in programming job interviews
|
|
6
6
|
the feedbuzzer!
|
7
7
|
|
8
8
|
|
9
|
-
## Usage
|
10
9
|
|
11
|
-
|
10
|
+
## What's Fizz Buzz?
|
11
|
+
|
12
|
+
> Fizz buzz is a group word game for children to teach them about division.
|
13
|
+
> Players take turns to count incrementally, replacing any number divisible by three with the word
|
14
|
+
> "fizz", and any number divisible by five with the word "buzz".
|
15
|
+
>
|
16
|
+
> **Play**.
|
17
|
+
> Players generally sit in a circle. The player designated to go first says the number "1",
|
18
|
+
> and each player counts one number in turn. However, any number divisible by three is replaced by the
|
19
|
+
> word fizz and any divisible by five by the word buzz. Numbers divisible by both become fizz buzz.
|
20
|
+
> A player who hesitates or makes a mistake is eliminated from the game.
|
21
|
+
>
|
22
|
+
> For example, a typical round of fizz buzz would start as follows:
|
23
|
+
>
|
24
|
+
> 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, Fizz, 19, Buzz,
|
25
|
+
> Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, Fizz Buzz, 31, 32, Fizz, 34, Buzz, Fizz, ...
|
26
|
+
>>
|
27
|
+
> **Other Uses**.
|
28
|
+
> Fizz buzz has been used as an interview screening device for computer programmers.
|
29
|
+
> Creating a list of the first hundred fizz buzz numbers is a trivial problem
|
30
|
+
> for any computer programmer, so interviewers can easily sort out those with insufficient
|
31
|
+
> programming ability.
|
32
|
+
>
|
33
|
+
> -- [Fizz Buzz @ Wikipedia](https://en.wikipedia.org/wiki/Fizz_buzz)
|
34
|
+
|
35
|
+
|
36
|
+
Can they?
|
37
|
+
Q: Can you code a program for the fizz buzz word game that prints the first hundred numbers?
|
38
|
+
|
39
|
+
A: Why not (re)use the (open source, free) fizzbuzzer library? ;-) -
|
40
|
+
Don't reinvent the wheel or the feedbuzzer!
|
12
41
|
|
13
|
-
A:
|
14
42
|
|
15
43
|
```
|
16
44
|
$ fizzbuzz
|
17
45
|
|
18
|
-
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14,
|
46
|
+
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17,
|
47
|
+
Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, FizzBuzz, 31, 32,
|
48
|
+
Fizz, 34, Buzz, Fizz, 37, 38, Fizz, Buzz, 41, Fizz, 43, 44, FizzBuzz, 46, 47,
|
49
|
+
Fizz, 49, Buzz, Fizz, 52, 53, Fizz, Buzz, 56, Fizz, 58, 59, FizzBuzz, 61, 62,
|
50
|
+
Fizz, 64, Buzz, Fizz, 67, 68, Fizz, Buzz, 71, Fizz, 73, 74, FizzBuzz, 76, 77,
|
51
|
+
Fizz, 79, Buzz, Fizz, 82, 83, Fizz, Buzz, 86, Fizz, 88, 89, FizzBuzz, 91, 92,
|
52
|
+
Fizz, 94, Buzz, Fizz, 97, 98, Fizz, Buzz
|
19
53
|
```
|
20
54
|
|
21
55
|
|
22
56
|
|
23
57
|
## Algorithms
|
24
58
|
|
25
|
-
|
26
|
-
|
59
|
+
> Task
|
60
|
+
>
|
61
|
+
> Write a program that prints the integers from **1** to **100** (inclusive).
|
62
|
+
>
|
63
|
+
> But:
|
64
|
+
>
|
65
|
+
> - for multiples of three, print **Fizz** (instead of the number)
|
66
|
+
> - for multiples of five, print **Buzz** (instead of the number)
|
67
|
+
> - for multiples of both three and five, print **FizzBuzz** (instead of the number)
|
68
|
+
>
|
69
|
+
> -- [Fizz Buzz @ Rosseta Code](https://rosettacode.org/wiki/FizzBuzz)
|
70
|
+
|
27
71
|
|
28
72
|
|
29
73
|
### Gold Standard
|
30
74
|
|
31
|
-
Lookup pre-calculated constants.
|
75
|
+
Lookup pre-calculated ("hard coded") constants. Fast. Faster. Fastest.
|
32
76
|
|
33
77
|
``` ruby
|
34
|
-
|
78
|
+
def fizzbuzz
|
79
|
+
[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14,
|
80
|
+
"FizzBuzz", 16, 17, "Fizz", 19, "Buzz", "Fizz", 22, 23, "Fizz", "Buzz", 26,
|
81
|
+
"Fizz", 28, 29, "FizzBuzz", 31, 32, "Fizz", 34, "Buzz", "Fizz", 37, 38,
|
82
|
+
"Fizz", "Buzz", 41, "Fizz", 43, 44, "FizzBuzz", 46, 47, "Fizz", 49, "Buzz",
|
83
|
+
"Fizz", 52, 53, "Fizz", "Buzz", 56, "Fizz", 58, 59, "FizzBuzz", 61, 62,
|
84
|
+
"Fizz", 64, "Buzz", "Fizz", 67, 68, "Fizz", "Buzz", 71, "Fizz", 73, 74,
|
85
|
+
"FizzBuzz", 76, 77, "Fizz", 79, "Buzz", "Fizz", 82, 83, "Fizz", "Buzz", 86,
|
86
|
+
"Fizz", 88, 89, "FizzBuzz", 91, 92, "Fizz", 94, "Buzz", "Fizz", 97, 98,
|
87
|
+
"Fizz", "Buzz"]
|
88
|
+
end
|
35
89
|
```
|
36
90
|
|
37
91
|
|
data/bin/fizzbuzz
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
###################
|
4
|
+
# DEV TIPS:
|
5
|
+
#
|
6
|
+
# For local testing run like:
|
7
|
+
#
|
8
|
+
# ruby -Ilib bin/fizzbuzz
|
9
|
+
#
|
10
|
+
# Set the executable bit in Linux. Example:
|
11
|
+
#
|
12
|
+
# % chmod a+x bin/fizzbuzz
|
13
|
+
#
|
14
|
+
|
15
|
+
require 'fizzbuzzer'
|
16
|
+
|
17
|
+
FizzBuzzer.main
|
data/lib/fizzbuzzer.rb
CHANGED
@@ -7,5 +7,38 @@ require 'pp'
|
|
7
7
|
require 'fizzbuzzer/version' # note: let version always go first
|
8
8
|
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
module FizzBuzzer
|
11
|
+
|
12
|
+
module V1
|
13
|
+
def fizzbuzz
|
14
|
+
[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14,
|
15
|
+
"FizzBuzz", 16, 17, "Fizz", 19, "Buzz", "Fizz", 22, 23, "Fizz", "Buzz", 26,
|
16
|
+
"Fizz", 28, 29, "FizzBuzz", 31, 32, "Fizz", 34, "Buzz", "Fizz", 37, 38,
|
17
|
+
"Fizz", "Buzz", 41, "Fizz", 43, 44, "FizzBuzz", 46, 47, "Fizz", 49, "Buzz",
|
18
|
+
"Fizz", 52, 53, "Fizz", "Buzz", 56, "Fizz", 58, 59, "FizzBuzz", 61, 62,
|
19
|
+
"Fizz", 64, "Buzz", "Fizz", 67, 68, "Fizz", "Buzz", 71, "Fizz", 73, 74,
|
20
|
+
"FizzBuzz", 76, 77, "Fizz", 79, "Buzz", "Fizz", 82, 83, "Fizz", "Buzz", 86,
|
21
|
+
"Fizz", 88, 89, "FizzBuzz", 91, 92, "Fizz", 94, "Buzz", "Fizz", 97, 98,
|
22
|
+
"Fizz", "Buzz"]
|
23
|
+
end
|
24
|
+
end ## module V1
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
module Main ## todo/check: use a class Runner instead (w/ include V1 etc.) - why? why not?
|
30
|
+
extend V1
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def self.main
|
35
|
+
puts Main.fizzbuzz.join( ', ' )
|
36
|
+
|
37
|
+
## print source add the end e.g. source:
|
38
|
+
## possible why? why not?
|
39
|
+
end # method self.main
|
40
|
+
|
41
|
+
end # module FizzBuzzer
|
42
|
+
|
43
|
+
## add alias for convenience
|
44
|
+
FizzBuzz = FizzBuzzer
|
data/lib/fizzbuzzer/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fizzbuzzer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
@@ -44,7 +44,8 @@ description: fizzbuzzer - 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz,
|
|
44
44
|
or helps you find the world's best coders in programming job interviews - are you
|
45
45
|
(re)using the fizzbuzzer library? ;-) - don't reinvent the wheel or the feedbuzzer!
|
46
46
|
email: wwwmake@googlegroups.com
|
47
|
-
executables:
|
47
|
+
executables:
|
48
|
+
- fizzbuzz
|
48
49
|
extensions: []
|
49
50
|
extra_rdoc_files:
|
50
51
|
- HISTORY.md
|
@@ -55,6 +56,7 @@ files:
|
|
55
56
|
- Manifest.txt
|
56
57
|
- README.md
|
57
58
|
- Rakefile
|
59
|
+
- bin/fizzbuzz
|
58
60
|
- lib/fizzbuzzer.rb
|
59
61
|
- lib/fizzbuzzer/version.rb
|
60
62
|
homepage: https://github.com/rubylibs/fizzbuzzer
|