board_tiles = board_col_heights.sum()
board_col_top_px = []
score = 0
-board = new Array(board_tiles) # letters ("Qu" or single letter)
+tiles = new Array(board_tiles)
board_neighbors = [] # array of tile numbers "next to" this one
tile_top_px = [] # array of pixel coordinates for top of column
board_left_px = [] # array of pixel coordinates for left of column
else
c = 1
for num in selected
- html_tiles[num].addClass classes[c]
- html_tiles[num].removeClass classes[1 - c]
+ tiles[num].dom.addClass classes[c]
+ tiles[num].dom.removeClass classes[1 - c]
# unselects the last tile of the selecetion
unselect_tile = ->
_unselect_tile = ->
num = selected.pop()
- html_tile = html_tiles[num]
+ html_tile = tiles[num].dom
html_tile.removeClass 'selected_word'
html_tile.removeClass 'selected'
selected_word = ->
word = ''
- word += board[i] for i in selected
+ word += tiles[i].text for i in selected
return word.toLowerCase()
save_game = ->
encoded = ''
- for t in board
- encoded += t.substr 0, 1
+ for t in tiles
+ encoded += t.letter.substr 0, 1
encoded += score
set_cookie 'hexbog', encoded, 365
window.location.hash = encoded
selected = []
update_selection_display()
for i in faders
- html_tiles[i].unbind('click').fadeOut fade_ms
+ tiles[i].dom.unbind('click').fadeOut fade_ms
timeout fade_ms + 1, ->
# which tiles need to be slid down
- sliders = (false for i in board)
+ sliders = (false for i in tiles)
prev_col_top = null
next_new_y = null
next_new_y = -10 - tile_width
prev_col_top = col_top
- html_tiles[deleted].remove()
+ tiles[deleted].dom.remove()
# For each each tile above the one we've deleted:
# 1. move it down one slot in the data scructures
dest = deleted
aboves = board_aboves[deleted].clone().reverse()
for above in aboves
- html_tiles[dest] = html_tiles[above]
- html_tiles[dest].data 'tile_number', dest
- board[dest] = board[above]
+ tiles[dest] = tiles[above]
+ tiles[dest].id = dest
+ tiles[dest].dom.data 'tile_number', dest
sliders[dest] = true
--dest
sliders[col_top] = true # the new tile needs to be slid down too
for slide, i in sliders
if slide
- html_tiles[i].animate {top: "#{tile_top_px[i]}px"}, slide_ms
+ tiles[i].dom.animate {top: "#{tile_top_px[i]}px"}, slide_ms
sliders[i] = false
save_game()
select_tile = (num) ->
- html_tile = html_tiles[num]
+ html_tile = tiles[num].dom
# html_tile.css backgroundColor: tile_selected_color
selected.push num
update_selection_display()
$board.append(html_tile)
html_tile.data 'tile_number', num
- board[num] = letter
- html_tiles[num] = html_tile
+ tiles[num] = text: letter, dom: html_tile, id: num
html_tile.click ->
me = $(this)
$board = null
-html_tiles = []
init_html_board = ->
$('#loading').remove()
$big_tip = $('#big_tip')
index = 0
for i in [0 .. board_min_height * 2]
unless i % 2
- ret += ' ' + board[j] for j in [board_min_height + index .. board_tiles - 1] by 2 * board_min_height + 1
+ ret += ' ' + tiles[j].text for j in [board_min_height + index .. board_tiles - 1] by 2 * board_min_height + 1
else
- ret += ' ' + board[j] + ' ' for j in [index .. board_tiles - 1] by 2 * board_min_height + 1
+ ret += ' ' + tiles[j].text + ' ' for j in [index .. board_tiles - 1] by 2 * board_min_height + 1
index += 1
ret += '\n'