mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 07:29:02 -08:00
51 lines
1.2 KiB
Rust
51 lines
1.2 KiB
Rust
use game::Game;
|
|
use util::PromptResult;
|
|
|
|
mod disk;
|
|
mod game;
|
|
mod needle;
|
|
mod util;
|
|
|
|
fn main() {
|
|
println!("\n\n\t\tTOWERS");
|
|
println!("CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
|
|
|
println!("TOWERS OF HANOI PUZZLE\n");
|
|
|
|
println!("YOU MUST TRANSFER THE DISKS FROM THE LEFT TO THE RIGHT");
|
|
println!("TOWER, ON AT A TIME, NEVER PUTTING A LARGER DISK ON A");
|
|
println!("SMALLER DISK.\n");
|
|
|
|
let mut quit = false;
|
|
|
|
while !quit {
|
|
let mut game = Game::new();
|
|
|
|
println!("");
|
|
println!(
|
|
r#"IN THIS PROGRAM, WE SHALL REFER TO DISKS BY NUMERICAL CODE.
|
|
3 WILL REPRESENT THE SMALLEST DISK, 5 THE NEXT SIZE,
|
|
7 THE NEXT, AND SO ON, UP TO 15. IF YOU DO THE PUZZLE WITH
|
|
2 DISKS, THEIR CODE NAMES WOULD BE 13 AND 15. WITH 3 DISKS
|
|
THE CODE NAMES WOULD BE 11, 13 AND 15, ETC. THE NEEDLES
|
|
ARE NUMBERED FROM LEFT TO RIGHT, 1 TO 3. WE WILL
|
|
START WITH THE DISKS ON NEEDLE 1, AND ATTEMPT TO MOVE THEM
|
|
TO NEEDLE 3.
|
|
|
|
GOOD LUCK!"#
|
|
);
|
|
|
|
loop {
|
|
if game.update() {
|
|
break;
|
|
}
|
|
}
|
|
|
|
if let PromptResult::YesNo(r) = util::prompt(false, "TRY AGAIN (YES OR NO)?") {
|
|
quit = !r;
|
|
}
|
|
}
|
|
|
|
println!("THANKS FOR THE GAME!");
|
|
}
|