// This may look like C code, but it is really -*- C++ -*- /////////////////////////////////////////////////////////////////////////// // // AMIGA Minesweeper - Declaration of the Field-object // // (c) 1992 Hubert Feyrer (c9020@rrzc1.rz.uni-regensburg.de) // /////////////////////////////////////////////////////////////////////////// #ifndef _FIELD_H #define _FIELD_H // // Klassendeklaration für ein Feld des Mine-Programmes // Die Felder werden in einem Feld gespeichert. // class Field { private: int _cnt; // Anzahl Nachbar-Minen; -1 bei Minen int _open; // Flag; 1=aufgedeckt; struct Gadget *_gad; // gad->UserData=this; char txt[2]; // Gadget-Text int _i,_j; // Position im Minenfeld (x,y) public: enum { MARK = 'X', BOMB = '*', NUM = '0', BLANK = ' ' }; static Gadget *lastgad; // Um Liste aufzubauen; int cnt(int c) const { _cnt=c; return _cnt; } int cnt(void) const { return _cnt; } int i(void) const { return _i; } int j(void) const { return _j; } GameStat check(int force=0); // Feld und Nachbarfelder prüfen; 0=OK, 1=Bombe! // force=1; trotz Markierung prüfen void open(int show=0); // Feld aufdecken; show=1: Nur Bomben hervorhe- // ben, sonstige Felder grau und Blank void clear(void); // Feld abdecken, Spuren verwischen GameStat mark(void); // mit X markieren; Field(int x, int y, int i, int j); ~Field(void); }; #endif /* _FIELD_H */