class TicTacToe
Public Class Methods
new()
click to toggle source
# File lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb, line 27 def initialize @tic_tac_toe_board = Board.new @shell = shell { text "Tic-Tac-Toe" minimum_size 150, 178 composite { grid_layout 3, true (1..3).each { |row| (1..3).each { |column| button { layout_data :fill, :fill, true, true text <= [@tic_tac_toe_board[row, column], :sign] enabled <= [@tic_tac_toe_board[row, column], :empty] font style: :bold, height: 20 on_widget_selected { @tic_tac_toe_board.mark(row, column) } } } } } } observe(@tic_tac_toe_board, :game_status) { |game_status| display_win_message if game_status == Board::WIN display_draw_message if game_status == Board::DRAW } end
Public Instance Methods
display_draw_message()
click to toggle source
# File lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb, line 59 def display_draw_message display_game_over_message("Draw!") end
display_game_over_message(message_text)
click to toggle source
# File lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb, line 63 def display_game_over_message(message_text) message_box { text 'Game Over' message message_text }.open @tic_tac_toe_board.reset end
display_win_message()
click to toggle source
# File lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb, line 55 def display_win_message display_game_over_message("Player #{@tic_tac_toe_board.winning_sign} has won!") end
open()
click to toggle source
# File lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb, line 71 def open @shell.open end