Reversi: Sample Game

Click to open or copy the files for the Reversi sample.

This sample includes the following functions:

Function Description
UpdateCursor Updates the cursor position
Checkdepth Updates Skill menu items
Clearboard Clears board and sets starting pieces
RevCreate Creates Reversi; called on WM_CREATE messages
Printboard Draws game pieces on board
ClearMessageTop Clears message bar
ShowMessageTop Displays string in message bar
Drawboard Draws game board
RevPaint Paints Reversi; called on WM_PAINT messages
FlashMessageTop Sets up system timer for callback procedure
RevMessage Outputs flashing message at top of window
Flashsqr Flashes game piece
RevMouseMove Updates cursor to show legality of move
ShowBestMove Updates cursor and mouse position to show best move
Gameover Finds a human reply to the computer's move
Paintmove Makes a move and shows the results
RevMenu Handles menu selections; called on WM_COMMAND messages
RevInit Initializes window data and registers window
RevMouseClick Handles mouse click or keyboard space or CR
Next Finds next square
Previous Finds previous square
ShowNextMove Shows next legal move
RevChar Handles keystrokes; called on WM_KEYDOWN messages
InverseMessage Callback; inverts message bitmap or kills timer
ReversiWndProc Processes messages for Reversi window
AboutDlgProc Processes messages for About dialog box
WinMain Calls initialization function, processes message loop
Finalscore Calculates final score
Legalcheck Returns 1 if move legal, else returns 0
Makemove Handles capturing of enemy pieces
Score Calculates the value of board
Minmax Plays human move then recursively plays computer move

Building SDK Samples

This sample uses the following keywords:

aboutdlgproc; beginpaint; checkdepth; checkmenuitem; clearboard; clearmessagetop; clienttoscreen; createsolidbrush; createwindow; defwindowproc; deleteobject; dialogbox; dispatchmessage; drawboard; ellipse; enablemenuitem; enddialog; endpaint; finalscore; flashmessagetop; flashsqr; gameover; get_wm_activate_hwnd; get_wm_activate_state; get_wm_command_id; getclientrect; getdc; getdevicecaps; getinstancedata; getkeystate; getmenu; getmessage; getstockobject; getsystemmetrics; gettextextentpoint; gettextmetrics; inversemessage; isiconic; killtimer; legalcheck; lineto; loadaccelerators; loadcursor; loadicon; loadstring; localalloc; localfree; long2point; lstrlen; makeintresource; makemove; makempoint; makepoint; makeprocinstance; messagebox; minmax; movetoex; next; paintmove; patblt; postmessage; postquitmessage; previous; printboard; registerclass; releasecapture; releasedc; revchar; revcreate; reversiwndproc; revinit; revmenu; revmessage; revmouseclick; revmousemove; revpaint; rgb; score; selectobject; setbkmode; setcapture; setcursor; setcursorpos; setfocus; settimer; setwindowtext; showbestmove; showcursor; showmessagetop; shownextmove; showwindow; textout; translateaccelerator; translatemessage; unreferenced_parameter; updatecursor; updatewindow; width; winmain