⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reversi.cpp

📁 Siemens 的SIMpad是一个多媒体设备
💻 CPP
字号:
////////////////////////////////////////////////////////////////////////////////// File         :  Reversi.cpp// Class        :  Reversi// Description  :  This class builds the whole window with menubar //                 and callbacks.// Author       :  Juergen P. Messerer, juergen.messerer@freesurf.ch// Project      :  Fl-Reversi// Release Date :  12th March 2003// Revised on   :// License      :  Gnu Public License (GPL)//// Copyright(c) Juergen P. Messerer 2003./////////////////////////////////////////////////////////////////////////////////#include <FL/forms.H>#include <iostream.h>#include <stdlib.h>#include <time.h>#include "Reversi.h"Fl_Menu_Item Reversi::menuEntries[] = { {"&File", 0,  0, 0, 64, 0, 0, 14, 56}, {"&New Game", 0x4006e, (Fl_Callback*)Reversi::s_newGameCB, 0, 0, 0, 0, 14, 56}, {"&Load Game", 0x4006c, (Fl_Callback*)Reversi::s_loadGameCB, 0, FL_MENU_INACTIVE, 0, 0, 14, 56}, {"&Save Game", 0x40073, (Fl_Callback*)Reversi::s_saveGameCB, 0, FL_MENU_INACTIVE|128, 0, 0, 14, 56}, {"&Quit", 0x40071, (Fl_Callback*)Reversi::s_quitGameCB, 0, 0, 0, 0, 14, 56}, {0}, {"&Game", 0,  0, 0, 64, 0, 0, 14, 56}, {"Get &Hint", 0,  (Fl_Callback*)Reversi::s_getHintCB, 0, 0, 0, 0, 14, 56}, {"&Undo Move", 0x40075, (Fl_Callback*)Reversi::s_undoMoveCB, 0, 128, 0, 0, 14, 56}, {"Hall of &Fame", 0x40068, (Fl_Callback*)Reversi::s_hallOfFameCB, 0, FL_MENU_INACTIVE, 0, 0, 14, 56}, {0}, {"&Settings", 0,  0, 0, 64, 0, 0, 14, 56}, {"&Computer first", 0, (Fl_Callback*)Reversi::s_switchSidesCB, 0, FL_MENU_TOGGLE|128, 0, 0, 14, 56}, {"Skill", 0,  0, 0, 64, 0, 0, 14, 56}, {"Level 1 (Wimp)",     0x40031, (Fl_Callback*)Reversi::s_setLevelCB, (void*)1, 8, 0, 0, 14, 56}, {"Level 2 (Beginner)", 0x40032, (Fl_Callback*)Reversi::s_setLevelCB, (void*)2, 8, 0, 0, 14, 56}, {"Level 3 (Novice)",   0x40033, (Fl_Callback*)Reversi::s_setLevelCB, (void*)3, 12, 0, 0, 14, 56}, {"Level 4 (Average)",  0x40034, (Fl_Callback*)Reversi::s_setLevelCB, (void*)4, 8, 0, 0, 14, 56}, {"Level 5 (Good)",     0x40035, (Fl_Callback*)Reversi::s_setLevelCB, (void*)5, 8, 0, 0, 14, 56}, {"Level 6 (Expert)",   0x40036, (Fl_Callback*)Reversi::s_setLevelCB, (void*)6, 8, 0, 0, 14, 56}, {"Level 7 (Master)",   0x40037, (Fl_Callback*)Reversi::s_setLevelCB, (void*)7, 8, 0, 0, 14, 56}, {"Level 8 (Wizard)",   0x40038, (Fl_Callback*)Reversi::s_setLevelCB, (void*)8, 8, 0, 0, 14, 56}, {0}, {"Select &Background Color...", 0, (Fl_Callback*)Reversi::s_selectBGColorCB, 0, 128, 0, 0, 14, 56}, {"Animation", 0, (Fl_Callback*)Reversi::s_animationCB, 0, FL_MENU_TOGGLE, 0, 0, 14, 56}, {0}, {"&Help", 0,  0, 0, 64, 0, 0, 14, 56}, {"&About Fl-Reversi", 0, (Fl_Callback*)Reversi::s_aboutReversiCB, 0, 0, 0, 0, 14, 56}, {0}, {0}};Reversi::Reversi() {   /* initialize random number generator */    srand(::time(0));   m_mainWindow = new Fl_Double_Window( 274, 317, "Fl-Reversi" );   m_mainWindow->user_data((void*)(this));   m_menuBar = new Fl_Menu_Bar(0, 0, 274, 25);   m_menuBar->menu(menuEntries);   m_board = new Board( 0, 25, 274, 274 );   m_board->updateAnimations( FALSE );   m_aboutDlg = new AboutDlg();   m_mainWindow->end();}//-----------------------------------------------------------------------------void Reversi::show( int argc, char** argv ) {  Fl::visual(FL_DOUBLE|FL_INDEX);  m_mainWindow->show();}//-----------------------------------------------------------------------------void Reversi::s_newGameCB( Fl_Menu_ *o, void * ){   ((Reversi*)(o->parent()->user_data()))->newGameCB( );}//-----------------------------------------------------------------------------void Reversi::newGameCB() {   m_board->newGame();}//-----------------------------------------------------------------------------void Reversi::s_loadGameCB( Fl_Menu_ *o, void * ) {   ((Reversi*)(o->parent()->user_data()))->loadGameCB( );}//-----------------------------------------------------------------------------void Reversi::loadGameCB() {   cout << "Load Game" << endl;}//-----------------------------------------------------------------------------void Reversi::s_saveGameCB( Fl_Menu_ *o, void * ) {   ((Reversi*)(o->parent()->user_data()))->saveGameCB( );}//-----------------------------------------------------------------------------void Reversi::saveGameCB() {   cout << "Save Game" << endl;}//-----------------------------------------------------------------------------void Reversi::s_quitGameCB( Fl_Menu_*, void * ){  cout << "Thank you for playing flreversi!\n";  exit(0);}//-----------------------------------------------------------------------------void Reversi::s_getHintCB( Fl_Menu_ *o, void * ) {   ((Reversi*)(o->parent()->user_data()))->getHintCB( );}//-----------------------------------------------------------------------------void Reversi::getHintCB() {   m_board->getHint();}//-----------------------------------------------------------------------------void Reversi::s_undoMoveCB( Fl_Menu_ *o, void * ) {   ((Reversi*)(o->parent()->user_data()))->undoMoveCB( );}//-----------------------------------------------------------------------------void Reversi::undoMoveCB() {   m_board->undoMove();}//-----------------------------------------------------------------------------void Reversi::s_switchSidesCB( Fl_Menu_ *o, void *v ) {   ((Reversi*)(o->parent()->user_data()))->switchSidesCB( o, v );}//-----------------------------------------------------------------------------void Reversi::switchSidesCB( Fl_Menu_ *o, void *v ) {   m_board->updateComputerBegins( o->mvalue()->value() );}//-----------------------------------------------------------------------------void Reversi::s_hallOfFameCB( Fl_Menu_ *o, void * ) {   ((Reversi*)(o->parent()->user_data()))->hallOfFameCB( );}//-----------------------------------------------------------------------------void Reversi::hallOfFameCB() {   cout << "Hall of Fame" << endl;}//-----------------------------------------------------------------------------void Reversi::s_setLevelCB( Fl_Menu_ *o, void *v ) {   ((Reversi*)(o->parent()->user_data()))->setLevelCB( o, v );}//-----------------------------------------------------------------------------void Reversi::setLevelCB( Fl_Menu_*, void *arg ) {   m_board->updateStrength((int)arg);}//-----------------------------------------------------------------------------void Reversi::s_selectBGColorCB( Fl_Menu_ *o, void * ) {   ((Reversi*)(o->parent()->user_data()))->selectBGColorCB( );}//-----------------------------------------------------------------------------void Reversi::selectBGColorCB() {   cout << "Select Background color" << endl;}//-----------------------------------------------------------------------------void Reversi::s_animationCB( Fl_Menu_ *o, void *v ) {   ((Reversi*)(o->parent()->user_data()))->animationCB( o, v );}//-----------------------------------------------------------------------------void Reversi::animationCB( Fl_Menu_ *o, void *v ) {   if( o->mvalue()->value() > 0)     m_board->updateAnimations( TRUE );   else     m_board->updateAnimations( FALSE );}//-----------------------------------------------------------------------------void Reversi::s_aboutReversiCB( Fl_Menu_ *o, void *arg ) {   ((Reversi*)(o->parent()->user_data()))->aboutReversiCB( );}//-----------------------------------------------------------------------------void Reversi::aboutReversiCB() {    m_aboutDlg->show();}//-----------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -