74 lines
1.7 KiB
Plaintext
74 lines
1.7 KiB
Plaintext
CLS
|
|
|
|
Function isNumeric ($x)
|
|
{
|
|
$x2 = 0
|
|
$isNum = [System.Int32]::TryParse($x,[ref]$x2)
|
|
Return $isNum
|
|
}
|
|
|
|
$NumberArray = @()
|
|
While( $NumberArray.Count -lt 4 ){
|
|
$NumberArray += Random -Minimum 1 -Maximum 10
|
|
}
|
|
|
|
Write-Host @"
|
|
Welcome to the 24 game!
|
|
|
|
Here are your numbers: $($NumberArray -join ",").
|
|
Use division, multiplication, subtraction and addition to get 24 as a result with these 4 numbers.
|
|
"@
|
|
|
|
Do
|
|
{
|
|
$Wrong = 0
|
|
$EndResult = $null
|
|
$TempChar = $null
|
|
$TempChar2 = $null
|
|
$Count = $null
|
|
|
|
$AllowableCharacters = $NumberArray + "+-*/()".ToCharArray()
|
|
$Result = Read-Host
|
|
Foreach($Char in $Result.ToCharArray())
|
|
{
|
|
If( $AllowableCharacters -notcontains $Char ){ $Wrong = 1 }
|
|
}
|
|
|
|
If($Wrong -eq 1)
|
|
{
|
|
Write-Warning "Wrong input! Please use only the given numbers."
|
|
}
|
|
Foreach($Char in $Result.ToCharArray())
|
|
{
|
|
If((IsNumeric $TempChar) -AND (IsNumeric $Char))
|
|
{
|
|
Write-Warning "Wrong input! Combining two or more numbers together is not allowed!"
|
|
}
|
|
$TempChar = $Char
|
|
}
|
|
Foreach($Char in $Result.ToCharArray())
|
|
{
|
|
If(IsNumeric $Char)
|
|
{
|
|
$Count++
|
|
}
|
|
}
|
|
If($Count -eq 4)
|
|
{
|
|
$EndResult = Invoke-Expression $Result
|
|
If($EndResult -eq 24)
|
|
{
|
|
Write-Host "`nYou've won the game!"
|
|
}
|
|
Else
|
|
{
|
|
Write-Host "`n$EndResult is not 24! Too bad."
|
|
}
|
|
}
|
|
Else
|
|
{
|
|
Write-Warning "Wrong input! You did not supply four numbers."
|
|
}
|
|
}
|
|
While($EndResult -ne 24)
|