// ========================================================================== // Maskable word base class. // A. Fischer, June 4, 2000 file: words.hpp // Modified by M. Fischer, October 8, 2009 //=========================================================================== #pragma once #include "tools.hpp" // ========================================================================== // BaseWord is a background word and a concealment mask class BaseWord { protected: const int len; // length of word, excluding terminator. const char* const w; // partially concealed word bool* const mask; // concealment mask public: BaseWord(const char* st) : len(strlen(st)), w(st), mask(new bool[len]) {} ~BaseWord() { delete [] mask; } // Get functions int length() const { return len; } const char* word() const { return w; } // Mask manipulation functions // Set false to hide letter, true to expose. bool& mask_slot(int k) const { return mask[k]; } void set_all(bool on_off) const { for (int k=0; k