In this version is it possible to play three kinds of Sudoku's.
Sudoku
Sudoku Samurai
Sudoku Ninja
and there are more and more features included in this version, for a live example.
Check: www.phpBBXS.nl / user: test password: sudoku
I have adapted the files and so you can use it.
Download the package and upload the whole package to your webhost with Icy Phoenix, al modified files are included into this package. After upload the package, you should do the following things.
- #
- #-----[ OPEN ]------------------------------------------
- #
- includes/page_tail.php
- #
- #-----[ FIND ]------------------------------------------
- #
- die('Hacking attempt');
- }
- #
- #-----[ AFTER, ADD ]------------------------------------------
- #
- //Weekly sudoku
- if ( ( time() - $board_config['sudoku_cron_last_time'] ) > $board_config['sudoku_cron_time'])
- {
- include_once($phpbb_root_path . 'includes/sudoku_weekly_cron.'.$phpEx);
- }
- #
- #-----[ OPEN ]------------------------------------------
- #
- language/lang_english/lang_main.php
- #
- #-----[ FIND ]------------------------------------------
- #
- ?>
- #
- #-----[ BEFORE, ADD ]------------------------------------------
- #
- // sudoku Mod
- $lang['Sudoku'] = 'Sudoku';
- $lang['sudoku_disable'] = 'Sorry, Board Sudoku is disabled';
- // End sudoku Mod
- #
- #-----[ OPEN ]------------------------------------------
- #
- includes/constants.php
- #
- #-----[ FIND ]------------------------------------------
- #
- define('SUDOKU_SESSIONS', $table_prefix . 'sudoku_sessions');
- define('SUDOKU_SOLUTIONS', $table_prefix . 'sudoku_solutions');
- define('SUDOKU_STARTS', $table_prefix . 'sudoku_starts');
- define('SUDOKU_STATS', $table_prefix . 'sudoku_stats');
- define('SUDOKU_USERS', $table_prefix . 'sudoku_users');
- #
- #-----[ REPLACE WITH ]------------------------------
- #
- // sudoku mod
- define('SUDOKU_TABLE', $table_prefix.'sudoku');
- define('SAMURAI_TABLE', $table_prefix .'sudoku_samurai');
- define('NINJA_TABLE', $table_prefix .'sudoku_ninja');
- define('SUDOKU_VAULT', $table_prefix.'sudoku_vault');
- define('SUDOKU_ADMIN', $table_prefix.'sudoku_admin');
- define('SUDOKU_USERS', $table_prefix.'sudoku_users');
- define('SUDOKU_STATS', $table_prefix.'sudoku_stats');
- define('SUDOKU_SESSIONS', $table_prefix.'sudoku_sessions');
- define('SUDOKU_GENERAL', $table_prefix.'sudoku_general');
- // end sudoku mod
- #
- #------------[OPEN]-----------------------------
- #
- languages/lang_english/lang_admin.php
- #
- #------------[FIND]-----------------------------
- #
- ?>
- #
- #------------[ADD BEFORE]-----------------------------
- #
- //Sudoku MOD
- $lang['Sudoku_config_updated'] = 'General Sudoku settings updated successfully';
- $lang['Sudoku_config_reset'] = 'General Sudoku settings reset successfully';
- $lang['Sudoku_admin_configuration'] = 'Sudoku Administration';
- $lang['Sudoku_admin_configuration_explain'] = 'Here you can edit general settings of Sudoku Reward System';
- $lang['Sudoku_admin_general_settings'] = 'General Settings';
- $lang['Sudoku_admin_reward_time'] = 'Time period to get results(in sec.)';
- $lang['Sudoku_admin_highscores1'] = '1st place Reward';
- $lang['Sudoku_admin_highscores2'] = '2nd place Reward';
- $lang['Sudoku_admin_highscores3'] = '3rd place Reward';
- $lang['Sudoku_admin_special'] = 'Highest Average Reward';
- $lang['Sudoku_admin_played'] = 'Most Played Puzzles Reward';
- $lang['Sudoku_admin_manage'] = 'Sudoku Game & Players Management';
- $lang['Sudoku_admin_manage_explain'] = 'Here you can edit, reset and add players and puzzles data of the game';
- $lang['Sudoku_admin_manage_settings'] = 'Game Settings';
- $lang['Sudoku_admin_game_on'] = 'Sudoku is active';
- $lang['Sudoku_admin_game_on_explain'] = 'Enable/disable the game on the Board';
- $lang['Sudoku_admin_reset_game'] = 'Reset <b>all</b> Gamedata';
- $lang['Sudoku_admin_reset_game_explain'] = 'Purge the whole gamedata off(attention! this action isn't restorable one!';
- $lang['Sudoku_admin_reset_user'] = 'Reset user gamedata';
- $lang['Sudoku_admin_reset_user_explain'] = 'Delete all gamedata of a user from forum tables';
- $lang['Sudoku_user_reset_successfully'] = 'Sudoku data on user %s reset successfully';
- $lang['Sudoku_admin_reset_user_title'] = 'Player resetting';
- $lang['Sudoku_admin_reset_user_confirm'] = 'Are you sure you want to reset gamedata of this user?';
- $lang['Sudoku_admin_puzzle_noexist'] = 'This puzzle isn't exist';
- $lang['Sudoku_admin_rename_grid_title'] = 'Renaming Grid Title';
- $lang['Sudoku_admin_rename_grid_confirm'] = 'This grid already has a title, are you sure you want to rename it?';
- $lang['Sudoku_grid_rename_success'] = 'Puzzle title renamed successsfully';
- $lang['Sudoku_admin_grid_title'] = 'Name or rename puzzle title';
- $lang['Sudoku_admin_grid_title_explain'] = 'You can name or rename a title of any existing grid';
- $lang['Sudoku_admin_game_pack'] = 'Game Pack';
- $lang['Sudoku_admin_game_num'] = 'Game Num';
- $lang['Sudoku_admin_game_level'] = 'Game Level';
- $lang['Sudoku_admin_grid_name'] = 'Game Title';
- $lang['Sudoku_admin_duplicate'] = 'You cannot install this puzzle because there is a puzzle with the same Game Pack and Game Num values<br />You must uninstall this game at first';
- $lang['Sudoku_admin_noinstall'] = 'You cannot install this puzzle because somebody is playing this game at the moment<br />You must wait untill nobody is playing this game';
- $lang['Sudoku_admin_new_grid_title'] = 'Install new puzzle';
- $lang['Sudoku_admin_new_grid_title_explain'] = 'You can install new puzzle using free place in existing packs or starting a new Game Pack';
- $lang['Sudoku_admin_starting_grid'] = 'Starting Grid';
- $lang['Sudoku_admin_solution_grid'] = 'Solution Grid';
- $lang['Sudoku_admin_delete_game'] = 'Uninstalling Puzzle';
- $lang['Sudoku_admin_delete_game_confirm'] = 'Are you sure you want to delete this puzzle in Database?';
- $lang['Sudoku_game_delete_success'] = 'Grid deleted successfully';
- $lang['Sudoku_admin_delete_grid_title'] = 'Uninstall a grid';
- $lang['Sudoku_admin_delete_grid_title_explain'] = 'You can delete a puzzle if nobody is playing it at this moment';
- $lang['Sudoku_admin_nodelete'] = 'You can'delete this pussle because somebody is playing it';
- $lang['Sudoku_admin_incorrect_level_value'] = 'Incorrect value of difficulty level';
- $lang['Sudoku_level_changed_successfully'] = 'Level of difficulty changed successfully for this puzzle';
- $lang['Sudoku_admin_not_numeric_value'] = 'Values must be numric';
- $lang['Sudoku_admin_change_level_title'] = 'Change Difficulty Level of a puzzle';
- $lang['Sudoku_admin_change_level_title_explain'] = 'You can change difficulty level of a puzzle from 1(Easy) to 4(Very hard)';
- $lang['Sudoku_admin_incorrect_grid_value'] = 'You must enter only numbers from 1 to 9';
- $lang['Sudoku_admin_no_fit'] = 'A nmber is starting grid doesn't fit to number in solution grid';
- $lang['Sudoku_admin_invalid solution'] = 'Solution grid is invalid';
- $lang['Sudoku_admin_new_success'] = 'New puzzle is installed successfully to Game Pack %s and Game Number %s !';
- $lang['Sudoku_admin_reset_game_confirm_title'] = 'Resetting all Sudoku gamedata';
- $lang['Sudoku_admin_reset_game_confirm_message'] = 'Are you sure you want to delete all data of Sudoku players?';
- $lang['Sudoku_admin_final_reset_game_confirm_title'] = 'Final confirm';
- $lang['Sudoku_admin_final_reset_game_confirm_message'] = 'Really?';
- $lang['Sudoku_admin_reset_success'] = 'All gamedata of Sudoku deleted successfully';
- $lang['Sudoku_admin_move_pack'] = 'Move Game Pack';
- $lang['Sudoku_admin_move_pack_explain'] = 'You can move a whole Game Pack into another Pack Number place';
- $lang['Sudoku_admin_new_game_pack'] = 'New Game Pack Number';
- $lang['Sudoku_admin_this_pack_exists'] = 'You can't move this Pack because exists a pack with the same number';
- $lang['Sudoku_admin_pack_move_success'] = 'You moved successfully this Pack into Pack Number %s';
- $lang['Sudoku_admin_arrange_database'] = 'Arrange Database';
- $lang['Sudoku_admin_arrange_database_explain'] = 'Arange puzzeles in Database Åôèäóû in order of Game Nums and Game Packs Ascending';
- $lang['Sudoku_arrange_database_success'] = 'Database rearranged successfully';
- $lang['Sudoku_admin_move_puzzle'] = 'Move a Puzzle';
- $lang['Sudoku_admin_move_puzzle_explain'] = 'You can move a puzzle into another place if nobody is playing it at the moment';
- $lang['Sudoku_admin_nomove_playing'] = 'You cannot move this puzzle because somebody is playing it at the moment';
- $lang['Sudoku_admin_nomove_duplicate'] = 'You can't move this puzzle because there is a game already in the destination place';
- $lang['Sudoku_admin_puzzle_move_success'] = 'The puzzle moved successfully';
- $lang['Sudoku_admin_pack_nomove_playing'] = 'You cannot move this pack because somebody is playing it at the moment';
- $lang['Sudoku_admin_copy_actions'] = 'Actions while copying';
- $lang['Sudoku_admin_copy_action_0'] = 'No actions';
- $lang['Sudoku_admin_copy_action_1'] = 'Rotate cw';
- $lang['Sudoku_admin_copy_action_2'] = 'Rotate ccw';
- $lang['Sudoku_admin_copy_action_3'] = 'Rotate upside down';
- $lang['Sudoku_admin_copy_action_4'] = 'Flip';
- $lang['Sudoku_admin_copy_puzzle'] = 'Copy a Puzzle';
- $lang['Sudoku_admin_copy_puzzle_explain'] = 'You can copy a puzzle into another place using some actions, e.g. rotate it upside down or flip<br />(if title field is empty new puzzle will have the same name)';
- $lang['Sudoku_admin_nocopy_duplicate'] = 'You cannot copy this puzzle because destination place is not free';
- $lang['Sudoku_admin_copy_success'] = 'The puzzle copied successfully into Game Pack %s and Game Num %s with action "%s"';
- $lang['Sudoku_admin_copy_action_5'] = 'Diagonal upside down';
- $lang['Sudoku_admin_copy_action_6'] = 'Diagonal flip';
- $lang['Sudoku_admin_testing_database'] = 'Testing Sudoku Database';
- $lang['Sudoku_admin_testing_database_explain'] = 'You can test all puzzles if they are valid and match<br />(it may take considerable amount of time depending on your database and server resources)';
- $lang['Sudoku_admin_test_invalid_solution'] = 'Invalid solution in Pack %s Game %s !!';
- $lang['Sudoku_admin_test_nomatch'] = 'Starts doesn't match solution in Pack %s Game %s in line %s symbol %s !!';
- $lang['Sudoku_admin_nocount'] ='Starts Table.<br />In line %s Game #%s Game Pack#%s not 17 but %s characters!';
- $lang['Sudoku_admin_anocount'] = 'Starts Table.<br />In line %s Game #%s Game Pack#%s dividing character "a" reported not 8 but %s times!';
- $lang['Sudoku_admin_test_success'] = 'Sudoku Database is checked up. No errors';
- $lang['Sudoku_admin_save'] = 'Save Puzzle';
- $lang['Sudoku_admin_purge'] = 'Purge Puzzle';
- $lang['Sudoku_admin_save_success'] = 'Puzzle Saved successfully';
- $lang['Sudoku_admin_purge_success'] = 'Puzzle purged successfully';
- $lang['Click_return_new_manage'] = '%sReturn to manage a new puzzle%s';
- $lang['Sudoku_admin_new_manage'] = 'Creating new puzzle Sudoku';
- $lang['Sudoku_admin_new_manage_explain'] = 'Here you can create and install new puzzle of Sudoku Game';
- $lang['Sudoku_admin_generate'] = 'Generate';
- $lang['Sudoku_admin_generate_explain'] = 'If Game Level is not set the generator would generate random level';
- $lang['Sudoku_admin_generate_fail'] = 'Sorry, generator failed to create a valid grid';
- $lang['Sudoku_admin_generate_success'] = 'Congratulations! New puzzle is generated!';
- $lang['Sudoku_admin_max_points'] = 'Maximal Winning Points In the puzzle';
- $lang['Sudoku_admin_generate_submit_explain'] = 'Finally submit to install the new puzzle';
- $lang['Sudoku_admin_new_pack_title'] = 'Generate a new Game Pack';
- $lang['Sudoku_admin_new_pack_title_explain'] = 'You can generate a new game pack or fill empty numbers in an existing Game Pack by new puzzles.<br /><i>Beware of server resources and do not set too big amount of puzzles. 20-50 puzzles is recommended</i>';
- $lang['Sudoku_admin_game_amount'] = 'Amount of puzzles';
- $lang['Sudoku_admin_new_pack_generate_success'] = 'New Game Pack %s is created successfully';
- $lang['Sudoku_admin_new_pack_generate_fail'] = 'Sorry, Game Pack %s already has this amount of puzzles';
- $lang['Sudoku_admin_new_pack_generate_update_success'] = 'Game Pack %s is updated with new puzzles successfully';
- $lang['Sudoku_admin_click_mode_enable'] = 'Click Mode Enabled';
- $lang['Sudoku_admin_click_mode_enable_explain'] = 'Click Mode allows not to reload page each time to save traffic';
- $lang['Sudoku_admin_helper_enable_explain'] = 'Allow players to use helper popup window with all available numbers for each empty cell';
- $lang['Sudoku_admin_helper_enable'] = 'Sudoku Helper enabled';
- $lang['Sudoku_admin_edit_puzzle'] = 'Edit Puzzle';
- $lang['Sudoku_admin_edit_puzzle_explain'] = 'Here you can edit an existing puzzle';
- $lang['Sudoku_admin_load'] = 'Load';
- $lang['Sudoku_admin_load_success'] = 'Puzzle loade successfully for an edition';
- $lang['Sudoku_admin_edit_list_select'] = 'Select a puzzle to edit';
- $lang['Sudoku_admin_no_update_loaded'] = 'Update data is empty';
- $lang['Sudoku_admin_edit_update_success'] = 'Puzzle edited successfully';
- $lang['Sudoku_admin_load_vault'] = 'Load a puzzle from vault';
- $lang['Sudoku_admin_load_vault_explain'] = 'Vault is a special table to keep single solution puzzles collection';
- $lang['Sudoku_admin_load_vault_success'] = 'A puzzle loaded successfully from vault table';
- $lang['Sudoku_admin_no_vault'] = 'Sorry, you haven't a vault table and cannot use this option';
- $lang['Sudoku_admin_solve'] = 'Solve';
- $lang['Sudoku_admin_solve_explain'] = 'You can try to solve any starting grid';
- $lang['Sudoku_admin_iterations'] = 'Iterations';
- $lang['Sudoku_admin_iterations_explain'] = 'Number of iterations while solving.<br /><i>Don't make it too big because it uses almost all server resources</i>';
- $lang['Sudoku_admin_solution_fail'] = 'The solver couldn't solve this puzzle using %s iterations';
- $lang['Sudoku_admin_solution_success'] = 'The solver has this puzzle solved by %s iterations!';
- $lang['Sudoku_admin_incorrect_value'] = 'Unavailable values entered';
- $lang['Sudoku_admin_helper_price'] ='Helper price';
- $lang['Sudoku_admin_level_price'] ='Level price';
- $lang['Sudoku_ninja_admin_manage'] = 'Sudoku Ninja Game & Players Management';
- $lang['Sudoku_ninja_admin_manage_explain'] = 'Here you can edit data of the game Sudoku Ninja';
- $lang['Sudoku_ninja_admin_testing_database'] = 'Testing Sudoku Ninja Database';
- $lang['Sudoku_samurai_admin_manage'] = 'Sudoku Samurai Game & Players Management';
- $lang['Sudoku_samurai_admin_manage_explain'] = 'Here you can edit data of the game Sudoku Samurai';
- $lang['Sudoku_samurai_admin_testing_database'] = 'Testing Sudoku Samurai Database';
- $lang['Sudoku_admin_samurai_price'] = 'Best Samurai Reward';
- $lang['Sudoku_admin_ninja_price'] = 'Best Ninja Reward';
- $lang['Sudoku_admin_helper_samurai_price'] = 'Helper Samurai Price';
- $lang['Sudoku_admin_helper_ninja_price'] = 'Helper Ninja Price';
Ok, that are the changes in the normal core files but one we don't forget are the SQL actions.
In the package is a db_update.php present, upload that to your server and after launch deleted it!! NOTE: IT DELETE ALL YOUR DATA OF SUDOKU MOD, for example, the games, points and other.
USE THE FOLLOWING UPDATE AND PACKAGE ON YOUR OWN RISK!!!
So hopefully you enjoy it and maybe a suggestion for the next version of IP.
