diff --git a/ruby/myhunt-curses.rb b/ruby/myhunt-curses.rb index e8da389..0b8fc95 100755 --- a/ruby/myhunt-curses.rb +++ b/ruby/myhunt-curses.rb @@ -11,7 +11,14 @@ end require 'myhunt' -def display_curses( field, state = { dead: false, victory: false } ) +def display_curses( field, + state = { dead: false, victory: false }, + theme = { explorer: '☺', + dead_explorer: '☠', + door: '⇒', + mine: '◆', + cell: '█', + visited_cell: ' ' } ) Curses.setpos 0, 0 if state[:dead] @@ -26,13 +33,15 @@ def display_curses( field, state = { dead: false, victory: false } ) Curses.setpos y + 2, 0 field.width.times do |x| if [field.explorer_x, field.explorer_y] == [x, y] - Curses.addstr 'O' + Curses.addstr state[:dead] ? theme[:dead_explorer] : theme[:explorer] elsif [field.width, field.height] == [x + 1, y + 1] - Curses.addstr '^' - elsif field.field[[x, y]].open || state[:dead] || state[:victory] - Curses.addstr field.field[[x, y]].mine ? '*' : ' ' + Curses.addstr theme[:door] + elsif field.field[[x, y]].open + Curses.addstr theme[:visited_cell] + elsif field.field[[x, y]].mine && ( state[:dead] || state[:victory] ) + Curses.addstr theme[:mine] else - Curses.addstr '-' + Curses.addstr theme[:cell] end end end