tumblr-game 1.2.6 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|