tumblr-game 1.2.6 → 2.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 +4 -4
- data/lib/tumblr-game.rb +7 -1
- data/lib/tumblr-game/board.rb +12 -7
- data/lib/tumblr-game/gosu.rb +5 -7
- data/lib/tumblr-game/tile.rb +13 -5
- data/lib/tumblr-game/timer.rb +7 -2
- data/lib/tumblr-game/tumblr.rb +4 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebdcf94506e353243360efc40b2dd2b2a5c09e23
|
4
|
+
data.tar.gz: a5e9b6029157b4f3e015ecc1fcab2f0580965204
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23bfca9d86a47a10da517f9e23a8c7a6996788571a42349a97d0dd1fa6f1f08fe7e4cd7e6872199ad30bd6f9d46be78aa9429667d8e23a7007b6b24df8c2ee53
|
7
|
+
data.tar.gz: 41c0cd929c08ebfd164a154c7a45316d173ee133167df6e9b1df3589f098494b217093a6d9882ea166259212e3a9e71b565b95413d145b15490dd02a15d958c7
|
data/lib/tumblr-game.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require_relative 'tumblr-game/gosu.rb'
|
2
2
|
require_relative 'tumblr-game/tumblr.rb'
|
3
3
|
|
4
|
+
|
5
|
+
## GAME CLASS. This class takes care of getting user input from the user, passing it to the appropriate class for error checking, starting the game,
|
6
|
+
# and ending the game. A Game object must be created. The user must then call the initialize function, pass it the parameters, and then call start.
|
7
|
+
# Those three steps are all that is necessary to start the game.
|
8
|
+
|
4
9
|
class Game
|
5
10
|
|
6
11
|
## this function will accept the dimensions of the window to be created and initialize a Game object
|
@@ -35,7 +40,8 @@ class Game
|
|
35
40
|
end
|
36
41
|
end
|
37
42
|
|
38
|
-
## this function will delete the files that have been made over the course of the game. this
|
43
|
+
## this function will delete the files that have been made over the course of the game. this function is automatically called by this class after the
|
44
|
+
# window is closed
|
39
45
|
def delete
|
40
46
|
File.delete( File.join(Dir.home, 'Desktop/image1.png'),
|
41
47
|
File.join(Dir.home, 'Desktop/image2.png'),
|
data/lib/tumblr-game/board.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
require_relative 'tile.rb'
|
2
2
|
|
3
|
+
## BOARD CLASS. This class represents the "game board" that each tile is drawn on. The initialize function accepts 10 images that will be stored
|
4
|
+
# in the board object's tile_array. This represents the entire game board. This class effectively acts as an interface to the game tiles. The draw board
|
5
|
+
# function calls the draw functions for each of the tiles. This class contains various utility functions described below to interface appropriately with
|
6
|
+
# the tiles.
|
7
|
+
|
3
8
|
class Board
|
4
9
|
|
5
10
|
## initialize function of the board class: this will accept 10 parameters that are each a path to an image
|
@@ -21,39 +26,39 @@ class Board
|
|
21
26
|
@matchedCount = 0
|
22
27
|
end
|
23
28
|
|
24
|
-
|
29
|
+
## draw function of the board class: this will go through the tile array and draw each tile
|
25
30
|
def draw_board
|
26
31
|
for i in 0..9
|
27
32
|
@tile_Array[i].draw
|
28
33
|
end
|
29
34
|
end
|
30
35
|
|
31
|
-
|
36
|
+
## this function will flip a given tile to the face indicated by the parameter bool. false = facedown, true = face up
|
32
37
|
def flip_tile(ind, bool)
|
33
38
|
@tile_Array[ind].flip(bool)
|
34
39
|
end
|
35
40
|
|
36
|
-
|
41
|
+
## this function will get the id from the desired tile
|
37
42
|
def get_id(ind)
|
38
43
|
return @tile_Array[ind].return_id
|
39
44
|
end
|
40
45
|
|
41
|
-
|
46
|
+
## this function will set a tile to its "matched" configuration
|
42
47
|
def matchTile(ind)
|
43
48
|
@tile_Array[ind].set_match
|
44
49
|
end
|
45
50
|
|
46
|
-
|
51
|
+
## this function will get the matched status of a specific tile and return it
|
47
52
|
def is_matched(ind)
|
48
53
|
return @tile_Array[ind].return_match
|
49
54
|
end
|
50
55
|
|
51
|
-
|
56
|
+
## this function will increment the match counter to reflect a user successfully matching tiles
|
52
57
|
def inc_match
|
53
58
|
@matchedCount += 1
|
54
59
|
end
|
55
60
|
|
56
|
-
|
61
|
+
## this function will return the amount of matched tiles
|
57
62
|
def return_count
|
58
63
|
return @matchedCount
|
59
64
|
end
|
data/lib/tumblr-game/gosu.rb
CHANGED
@@ -3,6 +3,10 @@ require_relative 'board.rb'
|
|
3
3
|
require_relative 'tile.rb'
|
4
4
|
require_relative 'timer.rb'
|
5
5
|
|
6
|
+
## MY WINDOW CLASS. This class is the main workhorse class of the game. It maintains all of the objects and variables associated with the game, as well
|
7
|
+
# as rendering the window and allowing the user to interface with the tiles through picking. Each function is described in a comment block above the
|
8
|
+
# function declaration.
|
9
|
+
|
6
10
|
class MyWindow < Gosu::Window
|
7
11
|
|
8
12
|
## constants that will represent the background color for the window when the user loses
|
@@ -51,7 +55,7 @@ class MyWindow < Gosu::Window
|
|
51
55
|
## initialize a Timer object that will keep track of the time remaining for the given game
|
52
56
|
# also create a Gosu font object that will be passed to the Timer object
|
53
57
|
font = Gosu::Font.new(self, Gosu::default_font_name, 20)
|
54
|
-
@timer = Timer.new(font, @width/2, @height/2)
|
58
|
+
@timer = Timer.new(font, @width/2, @height/2, 30)
|
55
59
|
|
56
60
|
## create a font for the end of the game, either win or lose
|
57
61
|
@endFont = Gosu::Font.new(self, Gosu::default_font_name, 20)
|
@@ -134,11 +138,6 @@ class MyWindow < Gosu::Window
|
|
134
138
|
|
135
139
|
## update the Timer object
|
136
140
|
@timer.update
|
137
|
-
|
138
|
-
#if @timer.return_time == 0 then
|
139
|
-
# check_win
|
140
|
-
#end
|
141
|
-
|
142
141
|
end
|
143
142
|
|
144
143
|
## draw function. this function will draw one of the three backgrounds for the game. if the game is in the LOSE state, if the time has run out and the
|
@@ -148,7 +147,6 @@ class MyWindow < Gosu::Window
|
|
148
147
|
def draw
|
149
148
|
if (!@win and @lose) or (@frameCounter == 0 and @game_board.return_count < 5 and @timer.return_time == 0)
|
150
149
|
draw_lose
|
151
|
-
puts "here"
|
152
150
|
elsif (@win and !@lose)
|
153
151
|
draw_win
|
154
152
|
elsif (!@win and !@lose)
|
data/lib/tumblr-game/tile.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
require 'gosu'
|
2
2
|
|
3
|
+
## TILE CLASS. This class represents each of the pictures in the game window. Each tile is created with the initialize function that accepts a Gosu
|
4
|
+
# image for the main picture (img), x- and y-coordinates, an image to display when the tile is face down (img2), and id string, and a completion image
|
5
|
+
# that is displayed when the tile is matched (chkImg). The draw function renders the tile to the game window. This class contains various utility
|
6
|
+
# functions for tiles.
|
7
|
+
|
3
8
|
class Tile
|
4
9
|
|
5
10
|
## initialize function of the Tile class: this will create a Tile object with all necessary parameters
|
@@ -18,7 +23,10 @@ class Tile
|
|
18
23
|
@chkImage = chkImg
|
19
24
|
end
|
20
25
|
|
21
|
-
|
26
|
+
## draw function of the Tile class: this will draw the image at the Tile's specified location.
|
27
|
+
# if the tile is not fliped and not matched, then its facedown image is drawn.
|
28
|
+
# if the tile is flipped and not matched, then its true image is drawn.
|
29
|
+
# if the tile is matched, then the completion image is drawn.
|
22
30
|
def draw
|
23
31
|
if !@flipped and !@matched then
|
24
32
|
@rev.draw(@xLocation, @yLocation, 0)
|
@@ -29,22 +37,22 @@ class Tile
|
|
29
37
|
end
|
30
38
|
end
|
31
39
|
|
32
|
-
|
40
|
+
## flip function of the Tile class: this will make the Tile be drawn with its true image
|
33
41
|
def flip( bool )
|
34
42
|
@flipped = bool
|
35
43
|
end
|
36
44
|
|
37
|
-
|
45
|
+
## return_id function of the Tile class: this will return the given Tile's id to be used in comparisons
|
38
46
|
def return_id
|
39
47
|
return @idStr
|
40
48
|
end
|
41
49
|
|
42
|
-
|
50
|
+
## sets the matched attribute of a Tile object to true. this will result in the tile displaying a checkmark for completion
|
43
51
|
def set_match
|
44
52
|
@matched = true
|
45
53
|
end
|
46
54
|
|
47
|
-
|
55
|
+
## this function will return a tile's matched status
|
48
56
|
def return_match
|
49
57
|
return @matched
|
50
58
|
end
|
data/lib/tumblr-game/timer.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
require 'gosu'
|
2
2
|
|
3
|
+
## TIMER CLASS. This class handles the timing aspect of the game. The initialize function accepts parameters that pass in a font, the timer location,
|
4
|
+
# and the amount of time the game will run for. The update function will increment the frame counter by 1 every frame until it gets to 60. It then resets
|
5
|
+
# to zero. The draw function renders the Timer on the game screen at the location established in initialize. The return_time function returns the time
|
6
|
+
# left in the game.
|
7
|
+
|
3
8
|
class Timer
|
4
9
|
|
5
10
|
## initialize function of the timer class
|
@@ -8,10 +13,10 @@ class Timer
|
|
8
13
|
# pX = the x coordinate of where the font will display
|
9
14
|
# pY = the y coordinate of where the font will display
|
10
15
|
# the timer object also maintains a frame count and a count of the total time
|
11
|
-
def initialize(fontParam, pX, pY)
|
16
|
+
def initialize(fontParam, pX, pY, time)
|
12
17
|
@font = fontParam
|
13
18
|
@frameCounter = 0
|
14
|
-
@totalTime =
|
19
|
+
@totalTime = time
|
15
20
|
@posX = pX
|
16
21
|
@posY = pY
|
17
22
|
end
|
data/lib/tumblr-game/tumblr.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'open-uri'
|
2
2
|
require 'tumblr_client'
|
3
3
|
|
4
|
+
## TUMBLR API OBJECT CLASS. This class handles all of the interfacing with the Tumblr api. The initialize function will open a connection with the
|
5
|
+
# Tumblr API. The query function executes a query to get 5 images from Tumblr's API from the blog indicated in the url. The create images function makes
|
6
|
+
# the images that will be used in the game. They are stored on the user's desktop.
|
7
|
+
|
4
8
|
class TumblrAPIObject
|
5
9
|
|
6
10
|
## creates a new Tumblr API Object that is able to pull information from Tumblr's servers
|