From 5661ed25c9a173f72a86f6b627f0b2378a895021 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Fri, 8 May 2015 18:02:45 +0100 Subject: [PATCH] Add game logic. --- lib/match.rb | 9 +++++++++ lib/player.rb | 8 ++++++++ score_board.rb | 5 +++++ views/index.erb | 17 +++++++++++------ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/lib/match.rb b/lib/match.rb index 1adb535..590b146 100644 --- a/lib/match.rb +++ b/lib/match.rb @@ -7,6 +7,15 @@ class Match def add_point(player) @players[player].add_point + if @players[:one].has_beaten(@players[:two]) + @players[:one].reset_score + @players[:two].reset_score + @players[:one].add_game + elsif @players[:two].has_beaten(@players[:one]) + @players[:one].reset_score + @players[:two].reset_score + @players[:two].add_game + end end def scores diff --git a/lib/player.rb b/lib/player.rb index cd8e820..aaa5255 100644 --- a/lib/player.rb +++ b/lib/player.rb @@ -14,10 +14,18 @@ class Player @score += 1 end + def add_game + @games += 1 + end + def undo_point @score -= 1 end + def reset_score + @score = 0 + end + def attributes { score: @score, games: @games } end diff --git a/score_board.rb b/score_board.rb index 802fab4..d47123e 100755 --- a/score_board.rb +++ b/score_board.rb @@ -22,6 +22,11 @@ class ScoreBoard < Sinatra::Base two: @@match.players[:two] } end + put '/reset_scores' do + @@match = Match.new(Player.new, Player.new) + push_scores + end + put '/player1_scores' do @@match.add_point(:one) push_scores diff --git a/views/index.erb b/views/index.erb index 01cdabe..0f31aa4 100644 --- a/views/index.erb +++ b/views/index.erb @@ -37,6 +37,12 @@ #player2-score .score { left: 5rem; } #player1-score .games { left: 5rem; } #player2-score .games { right: 5rem; } + + .controls { + position: absolute; + bottom: 0; left: 0; right: 0; + height: 2rem; + } @@ -57,15 +63,14 @@ $('#player2-score .games').text(data.two.games); } - reset = function () { - resetScores(); - resetGames(); - updateScores(); + resetScores = function () { + $.ajax({method: 'PUT', + url: '/reset_scores', + data: ''}); } $(function() { - updateScores(scores); - $('#reset').on('click', reset); + $('#reset').on('click', resetScores); })