From 0f619c65bab2465ffa84eb64cc62fe56506121f8 Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Sat, 1 Apr 2006 18:38:34 +0000 Subject: Move Sudoku plugin into its own subdirectory and add a random game generator. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9407 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/sudoku/sudoku.h | 104 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 apps/plugins/sudoku/sudoku.h (limited to 'apps/plugins/sudoku/sudoku.h') diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h new file mode 100644 index 0000000000..cdad581767 --- /dev/null +++ b/apps/plugins/sudoku/sudoku.h @@ -0,0 +1,104 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2005 Dave Chapman + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef _SUDOKU_H +#define _SUDOKU_H + +#include "plugin.h" + +/* here is a global api struct pointer. while not strictly necessary, + it's nice not to have to pass the api pointer in all function calls + in the plugin */ + +#define STATE_FILE PLUGIN_DIR "/sudoku.state" +#define GAME_FILE PLUGIN_DIR "/sudoku.ss" + +/* variable button definitions */ +#if CONFIG_KEYPAD == RECORDER_PAD +#define SUDOKU_BUTTON_QUIT BUTTON_OFF +#define SUDOKU_BUTTON_UP BUTTON_UP +#define SUDOKU_BUTTON_DOWN BUTTON_DOWN +#define SUDOKU_BUTTON_TOGGLE BUTTON_PLAY +#define SUDOKU_BUTTON_MENU BUTTON_F1 +#define SUDOKU_BUTTON_POSSIBLE BUTTON_F2 + +#elif CONFIG_KEYPAD == ONDIO_PAD +#define SUDOKU_BUTTON_QUIT BUTTON_OFF +#define SUDOKU_BUTTON_UP BUTTON_UP +#define SUDOKU_BUTTON_DOWN BUTTON_DOWN +#define SUDOKU_BUTTON_ALTTOGGLE (BUTTON_MENU | BUTTON_DOWN) +#define SUDOKU_BUTTON_TOGGLE_PRE BUTTON_MENU +#define SUDOKU_BUTTON_TOGGLE (BUTTON_MENU | BUTTON_REL) +#define SUDOKU_BUTTON_MENU_PRE BUTTON_MENU +#define SUDOKU_BUTTON_MENU (BUTTON_MENU | BUTTON_REPEAT) +#define SUDOKU_BUTTON_POSSIBLE (BUTTON_MENU | BUTTON_LEFT) + +#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ + (CONFIG_KEYPAD == IRIVER_H300_PAD) +#define SUDOKU_BUTTON_QUIT BUTTON_OFF +#define SUDOKU_BUTTON_UP BUTTON_UP +#define SUDOKU_BUTTON_DOWN BUTTON_DOWN +#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_ON +#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT +#define SUDOKU_BUTTON_MENU BUTTON_MODE +#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC + +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) +#define SUDOKU_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU) +#define SUDOKU_BUTTON_UP BUTTON_SCROLL_BACK +#define SUDOKU_BUTTON_DOWN BUTTON_SCROLL_FWD +#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT +#define SUDOKU_BUTTON_MENU BUTTON_MENU +#define SUDOKU_BUTTON_POSSIBLE (BUTTON_SELECT | BUTTON_LEFT) + +#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) +#define SUDOKU_BUTTON_QUIT BUTTON_POWER +#define SUDOKU_BUTTON_UP BUTTON_UP +#define SUDOKU_BUTTON_DOWN BUTTON_DOWN +#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT +#define SUDOKU_BUTTON_MENU BUTTON_PLAY +#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC + +#elif (CONFIG_KEYPAD == GIGABEAT_PAD) +#define SUDOKU_BUTTON_QUIT BUTTON_A +#define SUDOKU_BUTTON_UP BUTTON_UP +#define SUDOKU_BUTTON_DOWN BUTTON_DOWN +#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT +#define SUDOKU_BUTTON_MENU BUTTON_MENU +#define SUDOKU_BUTTON_POSSIBLE BUTTON_POWER + +#elif + #error SUDOKU: Unsupported keypad +#endif + +struct sudoku_state_t { + char filename[MAX_PATH]; /* Filename */ + char startboard[9][9]; /* The initial state of the game */ + char currentboard[9][9]; /* The current state of the game */ + char savedboard[9][9]; /* Cached copy of saved state */ + int x,y; /* Cursor position */ + int editmode; /* We are editing the start board */ +#ifdef SUDOKU_BUTTON_POSSIBLE + short possiblevals[9][9]; /* possible values a cell could be, user sets them */ +#endif +}; + + +#endif -- cgit v1.2.3