Towers Of Hanoi

Enrique Mayoral

Rules of the tower of Hanoi:

  1. Move all your disks from tower 1 to tower 3
  2. You cannot stack a bigger disk on top of a smaller disk
  3. You cannot move more than one disk at a time

Please enter number of disks

Number of Disks:

Please enter in a number less than 10 but greater than 1.
<head>
<link rel="stylesheet" type="text/css" href="./styles.css">
<link rel="stylesheet" type="text/css" href="./timezone_calculator/styles.css">
</head>

<header>
<h1>Towers Of Hanoi</h1>
<h1>Enrique Mayoral </h1>
</header>

<?php
if(isset($_POST['submit'])) {
    
$numberofdisks $_POST['numberofdisks'];
    }

$n 0;

require 
'./header.html';

function 
toh($n$tower1$tower2$tower3) {
    if(
$n===1) {
        echo 
"Moving disk $n from tower $tower1 to tower $tower3. <br>";
        return;
    } else {
        
toh($n-1$tower1$tower3$tower2);
        echo 
"Moving Disk $n from tower $tower1 to tower $tower3 <br>";
        
toh($n-1$tower2$tower1$tower3);
    }
    return;
}

function 
selectOptionsFor($assoc_array$selected_value=NULL) { //output the associative array into html format
    
$output "";
    foreach(
$assoc_array as $opt_value => $label) {
        
$output .= "<option value=\"{$opt_value}\"";
        if(
$selected_value == $opt_value) {
            
$output .= " selected";
        }
        
$output .= ">";
        
$output .= $label;
        
$output .= "</option>";
    }
return 
$output;
}

function 
numberofrings($selectedrings=NULL) { //designed to input digits to associative array for dropdown list in form. 
    
$range range(2,10);
    
$rings array_combine($range$range);
    
    if(
is_null($selectedrings)) { $selectedrings 2; }
    return 
selectOptionsFor($rings$selectedrings);
}
?>



<div id="main-content">
<p>Rules of the tower of Hanoi:</p>
    <ol>
        <li>Move all your disks from tower 1 to tower 3</li>
        <li>You cannot stack a bigger disk on top of a smaller disk</li>
        <li>You cannot move more than one disk at a time</li>
    </ol>
    <p>Please enter number of disks</p>
<form action="" method="post">
Number of Disks:<br>
    <select name="numberofdisks">
    <?php echo numberofrings($numberofdisks); ?>
  </select>

    <input type="submit" name="submit" value="Submit"/>
</form>
</div>
<br />

<?php
$n 
$_POST['numberofdisks'];
if(
$n 11 && $n 0) {
    
toh($n,1,2,3);
    
$n=0;
}
elseif (
$n 10 || $n 2) {
    echo 
"Please enter in a number less than 10 but greater than 1. <br>";
    
$n=0;
}
else
    echo 
"waiting for input...<br>";
?>

<?php
show_source
("towersofhanoi.php");
?>