From 9fc8946428830510dc46a1dd0d61f4668f7d48c7 Mon Sep 17 00:00:00 2001 From: Gwenhael Le Moine Date: Thu, 15 Sep 2022 12:31:32 +0200 Subject: [PATCH] themable unicode characters --- ruby/myhunt-curses.rb | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) 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