,,,,{
---
<div class="center" id="title">
<sup>...</sup>DESERT<sup>...</sup><br>
<sup>...</sup>BUS<sup>...</sup><br>
</div>
---
}
{
<div class="center" id="title">
@=@=@=@=@<br>
DESERT<br>
BUS<br>
@=@=@
</div>
}
{
<div class="center" id="title">
=DESERT=<br>
=BUS=<br>
</div>
}
{
<div class="center" id="title">
<div class="crunch">
$transparent[..]/\$transparent[..]<br>
$transparent[.]/$transparent[..]\$transparent[.]<br>
</div>
DESERT<br>
BUS<br>
<div class="crunch">
$transparent[.]\$transparent[..]/$transparent[.]<br>
$transparent[..]\/$transparent[..]<br>
</div>
</div>
}
{
<div class="center" id="title">
<div class="crunch">
$transparent[..]/\$transparent[..]<br>
$transparent[.]/$transparent[..]\$transparent[.]<br>
---
</div>
DESERT<br>
BUS<br>
<div class="crunch">
---
$transparent[.]\$transparent[..]/$transparent[.]<br>
$transparent[..]\/$transparent[..]<br>
</div>
</div>
}
{
<!-- Create a variable to track the position within the $typewriterText string -->
(set: $typewriterPos to 1)
<!-- Create a hook to hold the typed text -->
|typewriterOutput>[]
<!-- Set a delay of 5ms seconds per loop -->
(live: 2ms)[
<!-- Add the next character to the hook -->
(append: ?typewriterOutput)[(print: $typewriterText's $typewriterPos)]
<!-- Update the position -->
(set: $typewriterPos to it + 1)
<!-- If it's gone past the end, stop -->
(if: $typewriterPos is $typewriterText's length + 1)[
(goto:"next")
(stop:)
]
]
}
LOADING: SAND
LOADING: BUS
LOADING: SLEIGHT OF HAND
CHECKING DIFFERENCE BETWEEN `DESSERT' AND 'DESERT'
"{
<!-- Create a variable to track the position within the $typewriterText string -->
(set: $typewriterPos to 1)
<!-- Create a hook to hold the typed text -->
|typewriterOutput>[]
<!-- Set a delay of 20ms seconds per loop -->
(live: 2ms)[
<!-- Add the next character to the hook -->
(append: ?typewriterOutput)[(print: $typewriterText's $typewriterPos)]
<!-- Update the position -->
(set: $typewriterPos to it + 1)
<!-- If it's gone past the end, stop -->
(if: $typewriterPos is $typewriterText's length + 1)[
(goto:"first")
(stop:)
]
]
}<pre style="line-height: 1.2em; font-family: 'Press Start 2P', cursive;">
/$$$$$$$ /$$
| $$__ $$ | $$
| $$ \ $$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$
| $$ | $$ /$$__ $$ /$$_____/ /$$__ $$ /$$__ $$|_ $$_/
| $$ | $$| $$$$$$$$| $$$$$$ | $$$$$$$$| $$ \__/ | $$
| $$ | $$| $$_____/ \____ $$| $$_____/| $$ | $$ /$$
| $$$$$$$/| $$$$$$$ /$$$$$$$/| $$$$$$$| $$ | $$$$/
|_______/ \_______/|_______/ \_______/|__/ \___/
/$$$$$$$
| $$__ $$
| $$ \ $$ /$$ /$$ /$$$$$$$
| $$$$$$$ | $$ | $$ /$$_____/
| $$__ $$| $$ | $$| $$$$$$
| $$ \ $$| $$ | $$ \____ $$
| $$$$$$$/| $$$$$$/ /$$$$$$$/
|_______/ \______/ |_______/
</pre>You climb aboard the bus to begin your shift driving from Tucson to Las Vegas.
A note warns that the cruise control is broken, you'll need to keep pressing `*ACCELERATE*`.
Also, the alignment is off and the bus drifts to the right. Remember to keep turning `*LEFT*`.
If you go off road or stop you will `*STALL*` your engine.
{
<div class="center">
(link:"NEXT")[
(goto:"intro 2")
]
</div>
}{
(set: $version to 1.00)
<!-- Clock Stuff
27,000 sec is 07:30-->
(set: $clock to (dm:
"sec", 27000,
"min", 0,
"hour", 0,
)) <!--Clock Datamap-->
(set: $bus to (dm:
"speed", 0,
"distance", 0,
"score", 0,
"orientation", 0,
)) <!--Bus Datamap-->
(set: $time to "")
(set: $name1 to "Patrick") <!--Entered name-->
(set: $name to "(uppercase: $name1)") <!--Make name uppercase-->
(set: $trips to 1) <!--Trip counter-->
(set: $returnTrip to false) <!--To or from Vegas-->
(set: $stopCounter to 0) <!--Check if stopped too long-->
(set: $stopped to false) <!--If Bus is stopped-->
<!-- CSS Text modifiers-->
(set: $transparent to
(css: "color: transparent")) <!--Fully Transparent Text (used to help alignment)-->
(set:$transparentHalf to
(css: "color: rgba(255, 255, 255, 0.5);")) <!--SemiTransparent Text-->
(set:$transparentThird to
(css: "color: rgba(255, 255, 255, 0.25);")) <!--SemiTransparent Text-->
(set:$transparentFull to
(css: "color: rgba(255, 255, 255, 0.05);")) <!--SemiTransparent Text-->
(set: $small to (css: "font-size: 70%;"))
}{
$transparent[.....]()<br>
$transparent[.....]() ()<br>
$transparent[..]()$transparent[.]() ()<br>
$transparent[..]()$transparent[.]() ()<br>
$transparent[...]()()()<br>
$transparent[.....]()<br>
$transparent[.....]()<br>
$transparent[====]====
}{
<div class="center" id="data">
|==
SCORE: (print: $bus's score)
=|=
(display:"func:time")
=|
(display: "func:distance")mi
</div>
}
{
(live: 1880ms)[
(display:"header")
---
<div class="small">
YOUR DRIVER IS:
<br>
$name.
</div>
<br>
(display: "func:bugSplat alt")
<div id="dataDisplay">
(display: "data")
</div>
<br>
<br>
<div class="center">-ROAD-</div>
(display:"func:orientation")
(display:"status alt")
---
<br>
<div id="controls">
(display:"controls")
</div>
(display:"func:tests alt")
]
}{
SPEED: (print: $bus's speed)mph
<br>
<br>
VIEW: (display:"func:day-night")<br>
}{
|==
(display:"func:accelerate")
<br>
(display:"func:decelerate")
==|
(display:"func:left")
<br>
(display:"func:right")
}<div class="title">
TEST
</div>{
<!--Accelerate. Does not accelerate past 45-->
<div id="controls">
(link:"ACCELERATE")[
(if: $bus's speed is <40)[
(set: $bus's speed to it +5)
$transparent[ACCELERATE]
]
(elseif:$bus's speed is >=40)[
(set: $bus's speed to 45)
$transparent[ACCELERATE]
]
]
</div>
}{
<div class="small center">
(if: $bus's orientation is >0)[
(if: $bus's orientation is 1)[
`|-----------DB---------|`
]
(elseif: $bus's orientation is 2)[
`|------------DB--------|`
]
(elseif: $bus's orientation is 3)[
`|-------------DB-------|`
]
(elseif: $bus's orientation is 4)[
`|--------------DB------|`
]
(elseif: $bus's orientation is 5)[
`|---------------DB-----|`
]
(elseif: $bus's orientation is 6)[
`|----------------DB----|`
]
(elseif: $bus's orientation is 7)[
`|-----------------DB---|`
]
(elseif: $bus's orientation is 8)[
`|------------------DB--|`
]
(elseif: $bus's orientation is 9)[
`|-------------------DB-|`
]
(elseif: $bus's orientation is 10)[
`|--------------------DB|`
]
]
(elseif: $bus's orientation is <0)[
(if: $bus's orientation is -1)[
`|---------DB-----------|`
]
(elseif: $bus's orientation is -2)[
`|--------DB------------|`
]
(elseif: $bus's orientation is -3)[
`|-------DB-------------|`
]
(elseif: $bus's orientation is -4)[
`|------DB--------------|`
]
(elseif: $bus's orientation is -5)[
`|-----DB---------------|`
]
(elseif: $bus's orientation is -6)[
`|----DB----------------|`
]
(elseif: $bus's orientation is -7)[
`|---DB-----------------|`
]
(elseif: $bus's orientation is -8)[
`|--DB------------------|`
]
(elseif: $bus's orientation is -9)[
`|-DB-------------------|`
]
(elseif: $bus's orientation is -10)[
`|DB--------------------|`
]
]
(else:)[
`|----------DB----------|`
]
</div>
}{
<!--Add speed times miles per second to distance counter.
The `2*` is for the 2 second refresh-->
(set: $bus's distance to it + (2*($bus's speed/60)/60))
(print: $bus's distance.toFixed(2))
<!--(set: $bus's distance to it + (2*($bus's speed/60)/60))
(print: $bus's distance.toFixed(2))-->
}
{
<!--Decelerate. Does not decelerate past 0-->
<div id="controls">
(link:"DECELERATE")[
(if: $bus's speed is >=5)[
(set: $bus's speed to it -5)
$transparent[DECELERATE]
]
(elseif: $bus's speed is <5)[
(set: $bus's speed to 0)
$transparent[DECELERATE]
]
]
<div id="controls">
}{
<!-- Moves bus to the left 3 units -->
<div id="controls">
(link: "LEFT$transparent[.]")[
$transparent[LEFT.]
(if: $bus's speed is >0)[
(set: $bus's orientation to it -3)
]
]
</div>
}{
<!-- Moves bus to the right 3 units -->
<div id="controls">
(link: "RIGHT")[
(if: $bus's speed is >0)[
(set: $bus's orientation to it +3)
$transparent[RIGHT]
]
]
</div>
}{ <!-- Tests to see if player has won or lost
First checks if out of bounds then checks if you won -->
(if: $bus's orientation is >-10 and <10)[
(if: $bus's distance is >=360)[
(goto:"win")
]
(else:)[
(if: $bus's speed is >0)[
<!--(set: $bus's orientation to it +1)
(set: $bus's speed to it -1)-->
]
]
]
(else:)[
(goto:"lose")
]
}{
<div class="center">
SCORE: (print: $bus's score)
</div>
}
You stalled your engine, $name.
You are towed back to {
(if: $returnTrip)[
Las Vegas.
]
(else:)[
Tucson.
]
}
(display: "func:card")
{
<div class="center">
(link:"RESTART")[
(reload:)
]
</div>
}{
(set: $bus's score to it +1)
<div class="center">
SCORE: (print: $bus's score)
</div>
<br>
<br>
You arrived
(if: $returnTrip)[
in Tucson.
]
(else:)[
in Las Vegas.
]
}
{
Want to make some overtime and drive back to
(if: $returnTrip)[
Las Vegas?
]
(else:)[
Tucson?
]
}
{
<div class="center">
(link:"YES")[
(set: $bus's speed to 0)
(set: $bus's orientation to 0)
(set: $trips to it +1)
(if: $returnTrip)[
(set:$returnTrip to false)
]
(else:)[
(set:$returnTrip to true)
]
(goto:"main screen")
]
</div>
}{
<div class="center">
(if: $bus's orientation is >7)[
!!!
]
(elseif: $bus's orientation is <-7)[
!!!
]
(else:)[
<br>
]
</div>
}{
(if: $bus's speed is >0)[
(set: $rand to (random: 0,10))[
(if: $rand >=0 and <=8)[
Nothing
]
(elseif: $rand is 9)[
A rock
]
(elseif: $rand is 10)[
A bus stop
]
]
]
(else:)[
The desert
]
}{
(display:"func:title")
<div class="center">
<br>
<br>
(link:"START")[
(goto:"intro")
]<br><br>
(link:"ABOUT")[
(goto:"about")
]
</div>
<br>
<br>
<br>
<div class="center">
$small[$transparentThird[DEMAKE BY PATRICK SUSMILCH]]
</div>
}{
<div class="center" id="title">
<div class="crunch">
$transparent[..]/\$transparent[..]<br>
$transparent[.]/$transparent[..]\$transparent[.]<br>
</div>
DESERT<br>
BUS<br>
<div class="crunch">
$transparent[.]\$transparent[..]/$transparent[.]<br>
$transparent[..]\/$transparent[..]<br>
</div>
</div>
}{
(if: $bus's distance is >=(360*$trips))[
(goto:"win")
]
<!--Test if bus is off road or sat idle too long -->
(else:)[
(if: $bus's orientation is >=-10 and <=10)[
(if: $bus's speed is >0)[
(set: $bus's orientation to it +1)
(set: $bus's speed to it -1)
]
]
(else:)[
(goto:"lose")
]
]
}On the plus side, the pine tree air freshener is still quite fresh!
Now write your name on the `*DRIVER BOARD*` and get to work!
{
<div class="center">
(link:"ENTER NAME<br>AND GET DRIVING")[
(set: $name1 to (prompt: "Your name, driver.", "James Randi"))
(goto:"main screen")
]
</div>
}<div class="font-override">
<input type="text" data-varname="name1">\
<script>processInputElements();</script>
</div>
{
<div class="center">
(link:"BEGIN DRIVING")[
(goto:"main screen")
]
</div>
}{
<div class="card">
<div class="center">
BUGGS `&` RUDY'S
<BR>
<div class="small">
DISCOUNT TOWING SERVICE
<BR>
<br>
<br>
<q>The desert never sleeps <br>and neither do we.</q>
<br>
<br>
|=
Open 24 hours
=|
Call 555-3666
</div>
</div>
</div>
}{
(if: $bus's distance is > ($bus's distance - (360 * $trips)))[
(if: $stopCounter is >= 5)[
(goto: "lose")
]
(elseif: $bus's speed is 0)[
(set: $stopCounter to it +1)
]
(else:)[
(set: $stopCounter to 0)
]
]
}{
<!--Tests if you've driven far enough-->
(if: $bus's distance is >=(360*$trips))[
(set: $bus's distance to (360*$trips))
(goto:"win")
]
<!-- Tests if you've gone off road or stood idle too long -->
(else:)[
(if: $bus's orientation is >=-10 and <=10)[
(if: $bus's speed is >0)[
(set: $bus's orientation to it +1)
(set: $bus's speed to it -1)
(set: $stopCounter to 0)
]
(if: $bus's distance is > ((360 * ($trips -1))))[
(if: $stopCounter is >= 5)[
(goto: "lose")
]
(elseif: $bus's speed is 0)[
(set: $stopCounter to it +1)
]
]
]
(else:)[
(goto:"lose")
]
]
}{ <!--Put in startup-->
(set: $clock to (dm:
"min", 0,
"hour", 0,
))
(set: $timeUp to 0)
}
{ <!--Clock Check-->
<!--Minutes-->
(set: $clock's min to it + $timeUp)
}{
(set: $clock's sec to it +2)
<!--Clock Minutes-->
(set: $clock's min to ((floor:($clock's sec / 60))%60))
<!--Clock Hours-->
(set: $clock's hour to (floor:($clock's sec / (60*60))%24))
Clock:(display: "func:time")(print: $clock's sec)
}
{
(if: $clock's hour < 10)[
(set: $time to ("0" + (text:$clock's hour) +":"))
]
(else:)[
(set: $time to (text:$clock's hour) + ":")
]
}{
(set: $clock's sec to it +2)
<!--Clock Minutes-->
(set: $clock's min to ((floor:($clock's sec / 60))%60))
<!--Clock Hours-->
(set: $clock's hour to (floor:($clock's sec / (60*60))%24))
(if: $clock's min <10)[
(set: $time to it + "0" +(text: $clock's min))
]
(else:)[
(set: $time to it + (text:$clock's min))
]
Clock:(print:$time)(print: clock's sec)
}{
<!--Add 2 sec to clock on screen refresh-->
(set: $clock's sec to it +2)
<!--Clock Minutes-->
(set: $clock's min to ((floor:($clock's sec / 60))%60))
<!--Clock Hours-->
(set: $clock's hour to (floor:($clock's sec / (60*60))%24))
<!--Converts hours to string so can display leading zero-->
(if: $clock's hour < 10)[
(set: $time to ("0" + (text:$clock's hour) +":"))
]
(else:)[
(set: $time to (text:$clock's hour) + ":")
]
<!--Converts minutes to string so can display leading zero-->
(if: $clock's min <10)[
(set: $time to it + "0" +(text: $clock's min))
]
(else:)[
(set: $time to it + (text:$clock's min))
]
<!--Displays Time-->
(print: $time)
}
{
(set: $clock's sec to it +100)
<!--Clock Minutes-->
(set: $clock's min to ((floor:($clock's sec / 60))%60))
<!--Clock Hours-->
(set: $clock's hour to (floor:($clock's sec / (60*60))%24))
<!--Converts hours to string so can display leading zero-->
(if: $clock's hour < 10)[
(set: $time to ("0" + (text:$clock's hour) +":"))
]
(else:)[
(set: $time to (text:$clock's hour) + ":")
]
<!--Converts minutes to string so can display leading zero-->
(if: $clock's min <10)[
(set: $time to it + "0" +(text: $clock's min))
]
(else:)[
(set: $time to it + (text:$clock's min))
]
<!--Displays Time-->
(print: $time) <br>
(print: $clock's hour) <br>
}
(live: 5ms)[
(display: "func:timetests")
(if: $clock's hour is >=8)[
Greater than 8!
]
]
{
(if: $clock's hour is >= 7 and <17)[
(display:"func:scenery")
]
(if: $clock's hour is >=17 and <18)[
$transparentHalf[(display:"func:scenery")]
]
(if: $clock's hour is >=18 and <19)[
$transparentThird[(display:"func:scenery")]
]
(if: $clock's hour is >=19 and <=24)[
$transparentFull[(display:"func:scenery")]
]
(if: $clock's hour is >=0 and <5)[
$transparentFull[(display:"func:scenery")]
]
(if: $clock's hour is >=5 and <6)[
$transparentThird[(display:"func:scenery")]
]
(if: $clock's hour is >=6 and <7)[
$transparentHalf[(display:"func:scenery")]
]
}{
(if: $bus's distance is >225)[
and a bug splat
]
(else:)[
<br>
]
}{
(if: $bus's distance is >225)[
<div class="right">
`*`
</div>
]
(else:)[
<br>
]
}'Desert Bus' is a minigame from the unreleased Sega CD title 'Penn & Teller's Smoke and Mirrors'.
The game challenges players to drive an empty bus the 360 miles from Tucson, Arizona, to Las Vegas, Nevada in real time.
To add to the tedium the bus drifts to the right requiring constant correction from the player.
It is regarded as //the worst game of all time//.
{<div class="center">
[[DESERT BUS<br>FOR HOPE->about2]]
</div>}Every year internet sketch group LoadingReadyRun marathon plays 'Desert Bus' to raise money for the charity 'Child's Play' in an event called 'Desert Bus For Hope'.
As of 2017 they have raised $4,464,793.72.
{<div class="center">
(link: "GO TO<BR>DESERT BUS<BR>FOR HOPE")[
(open-url: "https://desertbus.org/")
]<br><br><br>
(link: "BACK TO TITLE")[
(goto: "first")
]
</div>}