This is just a bruteforce solver for Calculator: The Game
I wrote this script before I descovered the better tool with better documentation
This is just a bruteforce solver for Calculator: The Game
I wrote this script before I descovered the better tool with better documentation
| <?php | |
| echo '<pre>'; | |
| define('start_num', 100); | |
| define('end_num', 101); | |
| define('moves', 5); | |
| define('functions', explode(' ', '0 x2 2=>10 0=>1 Reverse')); | |
| function check($current_num, $moves_left=moves, $history='') { | |
| if ($current_num == end_num) { | |
| echo $history; | |
| echo "\n"; | |
| } | |
| if ($moves_left>0) { | |
| foreach(functions as $func) { | |
| if (strpos($func, '=>')!==false) { | |
| $nums = explode('=>', $func); | |
| $new_num = str_replace($nums[0], $nums[1], $current_num); | |
| } else { | |
| $new_num = $current_num; | |
| switch ($func) { | |
| case 'Reverse': | |
| $new_num = ($new_num <=> 0) * strrev($new_num); | |
| break; | |
| case '+/-': | |
| $new_num = -$new_num; | |
| break; | |
| case '<<': | |
| $new_num = substr($new_num, 0, -1); | |
| break; | |
| default: | |
| switch ($func[0]) { | |
| case '+': | |
| case '-': | |
| $new_num += $func; | |
| break; | |
| case 'x': | |
| $new_num *= substr($func, 1); | |
| break; | |
| case '/': | |
| $new_num /= substr($func, 1); | |
| break; | |
| default: | |
| $new_num .= $func; | |
| break; | |
| } | |
| } | |
| } | |
| check( | |
| $new_num, | |
| $moves_left-1, | |
| $history . ' ' . $func | |
| ); | |
| } | |
| } | |
| } | |
| check(start_num); |