// file: checkers.cpp - by Bogdan Butnaru - cs420 #include //#include #include #include //#include #include #include "srgp.h" #include "POINT.H" typedef struct { point position; enum {UP, DOWN} buttonChord[MAX_BUTTON_COUNT]; int buttonOfMostRecentTransition; } locatorMeasure; #define PROGRAM_NAME "Checkers v1.1 - by Bogdan Butnaru" #define ACTION_BUTTON 0 // left mouse button #define RESET_BUTTON 1 // middle button #define QUIT_BUTTON 2 // right button void main() { Checkers Board; locatorMeasure MouseMeasure; SRGP_begin(PROGRAM_NAME, BOARD_SIDE, BOARD_SIDE, 6, TRUE); SRGP_setInputMode(KEYBOARD, INACTIVE); // deactivate keyboard SRGP_setInputMode(LOCATOR, EVENT); // activate mouse SRGP_setLocatorButtonMask(ACTION_BUTTON | RESET_BUTTON | QUIT_BUTTON ); inputDevice Device; logical Terminate = FALSE; do { Device = SRGP_waitEvent( INDEFINITE ); switch ( Device ) { case KEYBOARD: break; case LOCATOR: { SRGP_getLocator( &MouseMeasure ); switch ( MouseMeasure.buttonOfMostRecentTransition ) { case QUIT_BUTTON: Terminate = TRUE; break; case RESET_BUTTON: Board.ResetGameBoard(); break; case ACTION_BUTTON: Board.ExamineAction( MouseMeasure.position ); break; } // end switch } // end case LOCATOR } // end switch Device } while ( !Terminate ); // end while SRGP_end(); } // end main()