home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
tv20os2.zip
/
demos
/
puzzle.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-01-19
|
2KB
|
102 lines
/*---------------------------------------------------------*/
/* */
/* Puzzle.h : Header file for puzzle.cpp */
/* */
/*---------------------------------------------------------*/
/*
* Turbo Vision - Version 2.0
*
* Copyright (c) 1994 by Borland International
* All Rights Reserved.
*
*/
#if !defined( __PUZZLE_H )
#define __PUZZLE_H
class TPuzzleView : public TView
{
public:
TPuzzleView(TRect& r);
TPuzzleView( StreamableInit ) : TView(streamableInit) { };
virtual TPalette& getPalette() const;
virtual void handleEvent(TEvent& event);
virtual void draw();
void moveKey(int key);
void moveTile(TPoint point);
void scramble();
void winCheck();
private:
char board[6][6];
int moves;
char solved;
virtual const char *streamableName() const
{ return name; }
protected:
virtual void write( opstream& );
virtual void *read( ipstream& );
public:
static const char * const name;
static TStreamable *build();
};
inline ipstream& operator >> ( ipstream& is, TPuzzleView& cl )
{ return is >> (TStreamable&) cl; }
inline ipstream& operator >> ( ipstream& is, TPuzzleView*& cl )
{ return is >> (void *&) cl; }
inline opstream& operator << ( opstream& os, TPuzzleView& cl )
{ return os << (TStreamable&) cl; }
inline opstream& operator << ( opstream& os, TPuzzleView* cl )
{ return os << (TStreamable *) cl; }
class TPuzzleWindow : public TWindow
{
public:
TPuzzleWindow();
TPuzzleWindow( StreamableInit ) :
TWindow(streamableInit), TWindowInit(&TPuzzleWindow::initFrame) { };
private:
virtual const char *streamableName() const
{ return name; }
protected:
virtual void write( opstream& );
virtual void *read( ipstream& );
public:
static const char * const name;
static TStreamable *build();
};
inline ipstream& operator >> ( ipstream& is, TPuzzleWindow& cl )
{ return is >> (TStreamable&) cl; }
inline ipstream& operator >> ( ipstream& is, TPuzzleWindow*& cl )
{ return is >> (void *&) cl; }
inline opstream& operator << ( opstream& os, TPuzzleWindow& cl )
{ return os << (TStreamable&) cl; }
inline opstream& operator << ( opstream& os, TPuzzleWindow* cl )
{ return os << (TStreamable *) cl; }
#endif // __PUZZLE_H