rendered paste body#!/usr/bin/ruby#starta cursesrequire "ncurses"Ncurses::initscr#Set optionsNcurses::nlNcurses::noechoNcurses::curs_set(0)Ncurses::nodelay(Ncurses::stdsrc, true)Ncurses::rawNcurses::keypad(Ncurses::stdscr,1)Ncurses::mousemask(Ncurses::ALL_MOUSE_EVENTS | Ncurses:: REPORT_MOUSE_POSITION, [])Ncurses::start_colorNcurses::init_pair(1,Ncurses::COLOR_GREEN, Ncurses::COLOR_RED)Ncurses::init_pair(2,Ncurses::COLOR_CYAN, Ncurses::COLOR_BLUE)my_window = Ncurses::WINDOW.new(10,20,0,0)my_window.color_set(1,nil)my_window.border(*([0]*8))#loopabegin case(Ncurses.getch) when "q"[0] break when Ncurses::KEY_MOUSE mev = Ncurses::MEVENT.new Ncurses.getmouse(mev) when Ncurses::BUTTON1_CLICKED if(mev.y<7 && mev.x<20) my_window.color_set(2,nil) my_window.mvaddstr(mev.y, mev.x," ") end end end ##output my_window.noutrefresh() Ncurses::doupdate sleep(0.05)end while true Ncurses::echoNcurses::nocbreakNcurses::curs_set(1)Ncurses::endwin