#ifndef IUGRINA_SCREEN20061113
#define IUGRINA_SCREEN20061113

#include <string>

class Screen{
  
// private
  std::string _screen;
  mutable std::string::size_type _cursor; // trenutni polozaj kursora
  short _height; // broj redaka
  short _width; // broj stupaca
  
  bool checkRange( short,short) const;
  
public:
  Screen( short hi=8, short sir=40, char bg='#');


  // postavlja kursor na pocetak
  void home(){
    _cursor=0;
  }
  
  // pomice kursor na poziciju zadanu s parametrima fje
  // vraca true ako uspije pomaknuti _cursor inace false
  bool move( short, short) const;
  
  // vraca znak na koji kursor pokazuje
  char get() const{
    return _screen.at(_cursor);
  }
  
  // vraca znak koji se nalazi na poziciji zadanoj s parametrima fje
  char get( short, short);
  
  // opisnik klase
  void print();
  
  // vracaju _height, _width, _screen
  short height(){ return _height; }
  short width(){ return _width; }
  std::string screen(){ return _screen; }

  // pomice kursor za jedno mjesto naprijed
  // ako je to mjesto izvan velcine screena vraca false inace true
  bool forward() const;

  bool backward() const;
  
};

#endif


