tomtom9898
asked on
Powershell scripting help
I am trying to make a fortune game decide answers at random, but be mad if someone asks something about the lottery. I am very close, but just can't seem to finish this up. What am I missing?
#Clear the Windows command console screen
Clear-Host
#Define the variables used in this script to collect player inputs
$question = "" #This variables will store the player's question
$status = "Play" #This variable will be used to control game termination
$randomNo = New-Object System.Random #This variable stores a random object
$answer = 0 #This variable stores a randomly genrated number
$time = (Get-Date).Hour #This variable stores the current hour of the day
#Display the game's opening screen
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host " W E L C O M E T O T H E W I N D O W S"
Write-Host
Write-Host
Write-Host
Write-Host " P O W E R S H E L L F O R T U N E T E L L E R"
Write-Host
Write-Host
Write-Host
Write-Host "
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host " Press Enter to continue."
#Pause script execution and wait for the player to press the Enter key
Read-Host
#Clear the Windows command console screen
Clear-Host
#Provide the player with instructions
Write-Host
Write-Host " The fortune teller is a very busy and impatient mystic. Make"
Write-Host
Write-Host " your questions brief and simple and only expect to receive"
Write-Host
Write-host " Yes / No styled answers. Also do not ask me if you will win"
Write-Host
Write-Host " the lottery or not. I am tired of that one"
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host " Press Enter to continue."
#Pause script execution and wait for the player to press the Enter key
Read-Host
#Continue game play until the player decides to stop
while ($status -ne "Stop") {
#Ask the player the first question
while ($question -eq ""){
Clear-Host #Clear the Windows command console screen
Write-Host
$question = read-host " What is your question? I hate questions about the lottery! "
}
$question = "" #Reset variable to a empty string
#Using the Random object, get a random number between 1 and 4
If ($answer = "lottery") { "What the heck are you doing?!?!?! I told you I hate lottery questions! Please restate the question."}
else {
$answer = $randomNo.Next(1, 5)}
#Select an answer based on the time and random number
#If it is the afternoon the fortune teller will be a little cranky
if ($time -gt 12) {
Write-Host
if ($answer -eq 1) { " Grrrr. The answer is no!" }
if ($answer -eq 2) { " Grrrr. The answer is never" }
if ($answer -eq 3) { " Grrrr. The answer is unclear!" }
if ($answer -eq 4) { " Grrrr. The answer is yes!" }
}
#If it is morning the fortune teller will be in a good mood
else {
Write-Host
if ($answer -eq 1) { " Ah. The answer is yes!" }
if ($answer -eq 2) { " Ah. The answer is Always" }
if ($answer -eq 3) { " Ah. The answer is uncertain!" }
if ($answer -eq 4) { " Ah. The answer is no!" }
}}
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host " Press Enter to continue."
#Pause script execution and wait for the player to press the Enter key
Read-Host
#Clear the Windows command console screen
Clear-host
Write-Host
#Prompt the player to continue or quit
$reply = read-host " Press Enter to ask another question or type Q to quit."
if ($reply -eq "q") { $status = "Stop" }
#Clear the Windows command console screen
Clear-Host
#Provide the player with instructions
Write-Host
Write-Host " Very well then. Please return again to get all your questions"
Write-Host " answered."
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host
Write-Host " Press Enter to continue."
#Pause script execution and wait for the player to press the Enter key
Read-Host
#Clear the Windows command console screen
Clear-Host
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Fantastic, knew I was missing something! Thanks again for the help!
May I suggest some improvements? For example, I would do the mood stuff more like this:
Open in new window
And instead of writing several lines with Write-Host, I would doOpen in new window