Advertisement
Guest User

Untitled

a guest
May 15th, 2021
503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Get-AsciiDice {
  2.     Param
  3.   (
  4.       [parameter(Mandatory=$true,
  5.       ParameterSetName="Random")]
  6.       [int]$Random,
  7.  
  8.       [parameter(Mandatory=$true,
  9.       ParameterSetName="Numbers")]
  10.       $Numbers,
  11.  
  12.       [parameter(Mandatory=$False)]
  13.       [ValidateSet("Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","DarkYellow","Gray","DarkGray","Blue","Green","Cyan","Red","Magenta","Yellow","White")]
  14.       [String]$DieColor = "White"
  15.     )
  16.  
  17.     if ($random) {
  18.         $NumberSet = (1..$random | foreach {Get-Random -Maximum 6 -Minimum 1})
  19.         #$NumberSet = ($NumberSet -join '').ToString().ToCharArray()
  20.     }
  21.     if ($Numbers) {
  22.         #$NumberSet = $Numbers.ToString().ToCharArray()
  23.         $NumberSet = $Numbers
  24.     }
  25.  
  26.    $NumberSet | foreach { if ($_ -gt '6'){Write-Error -Message "Only supports digits 1-6" -ErrorAction Stop} }
  27.  
  28.     $d = @{
  29.         1 = '     ','  o  ','     '
  30.  
  31.         2 = '   o ','     ',' o   '
  32.        
  33.         3 = ' o   ','  o  ','   o '
  34.        
  35.         4 = 'o   o','     ','o   o'
  36.        
  37.         5 = 'o   o','  o  ','o   o'
  38.        
  39.         6 = 'o   o','o   o','o   o'
  40.     }
  41.  
  42.     Write-Host (" _____   " * $NumberSet.Count) -NoNewline -ForegroundColor $DieColor
  43.     0..2 | ForEach-Object {
  44.         Write-Host
  45.         foreach($n in $NumberSet) {
  46.             Write-Host "|$($d[$n][$_])|  " -NoNewline -ForegroundColor $DieColor
  47.         }
  48.     }
  49.     Write-Host
  50.     Write-Host (" -----   " * $NumberSet.Count) -ForegroundColor $DieColor
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement