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); |