Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,480 +0,0 @@
|
|||
<#
|
||||
.Synopsis
|
||||
Creates a new "Deck" which is a hashtable converted to a dictionary
|
||||
This is only used for creating the deck, to view/list the deck contents use Get-Deck.
|
||||
.DESCRIPTION
|
||||
Casts the string value that the user inputs to the name of the variable that holds the "deck"
|
||||
Creates a global variable, allowing you to use the name you choose in other functions and allows you to create
|
||||
multiple decks under different names.
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> New-Deck
|
||||
cmdlet New-Deck at command pipeline position 1
|
||||
Supply values for the following parameters:
|
||||
YourDeckName: Deck1
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> New-Deck -YourDeckName Deck2
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> New-Deck -YourDeckName Deck2
|
||||
|
||||
PS C:\WINDOWS\system32> New-Deck -YourDeckName Deck3
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
#>
|
||||
function New-Deck
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[OutputType([int])]
|
||||
Param
|
||||
(
|
||||
# Name your Deck, this will be the name of the variable that holds your deck
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$False,
|
||||
Position=0)]$YourDeckName
|
||||
)
|
||||
|
||||
Begin
|
||||
{
|
||||
$Suit = @(' of Hearts', ' of Spades', ' of Diamonds', ' of Clubs')
|
||||
$Pip = @('Ace', 'King', 'Queen', 'Jack', '10', '9', '8', '7', '6', '5', '4', '3', '2')
|
||||
|
||||
#Creates the hash table that will hold the suit and pip variables
|
||||
$Deck = @{}
|
||||
|
||||
#creates counters for the loop below to make 52 total cards with 13 cards per suit
|
||||
[int]$SuitCounter = 0
|
||||
[int]$PipCounter = 0
|
||||
[int]$CardValue = 0
|
||||
|
||||
}
|
||||
Process
|
||||
{
|
||||
#Creates the initial deck
|
||||
do
|
||||
{
|
||||
#card2add is the rows in the hashtable
|
||||
$Card2Add = ($Pip[$PipCounter]+$Suit[$SuitCounter])
|
||||
|
||||
#Addes the row to the hashtable
|
||||
$Deck.Add($CardValue, $Card2Add)
|
||||
|
||||
#Used to create the Keys
|
||||
$CardValue++
|
||||
|
||||
#Counts the amount of cards per suit
|
||||
$PipCounter ++
|
||||
if ($PipCounter -eq 13)
|
||||
{
|
||||
#once reached the suit is changed
|
||||
$SuitCounter++
|
||||
#and the per-suit counter is reset
|
||||
$PipCounter = 0
|
||||
}
|
||||
else
|
||||
{
|
||||
continue
|
||||
}
|
||||
}
|
||||
#52 cards in a deck
|
||||
until ($Deck.count -eq 52)
|
||||
|
||||
}
|
||||
End
|
||||
{
|
||||
#sets the name of a variable that is unknown
|
||||
#Then converts the hash table to a dictionary and pipes it to the Get-Random cmdlet with the arguments to randomize the contents
|
||||
Set-Variable -Name "$YourDeckName" -Value ($Deck.GetEnumerator() | Get-Random -Count ([int]::MaxValue)) -Scope Global
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.Synopsis
|
||||
Lists the cards in your selected deck
|
||||
.DESCRIPTION
|
||||
Contains a Try-Catch-Finally block in case the deck requested has not been created
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> Get-Deck -YourDeckName deck1
|
||||
|
||||
8 of Clubs
|
||||
5 of Hearts
|
||||
--Shortened--
|
||||
King of Clubs
|
||||
Jack of Diamonds
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> Get-Deck -YourDeckName deck2
|
||||
|
||||
deck2 does not exist...
|
||||
Creating Deck deck2...
|
||||
|
||||
Ace of Spades
|
||||
10 of Hearts
|
||||
--Shortened--
|
||||
5 of Clubs
|
||||
4 of Clubs
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> deck deck2
|
||||
|
||||
Ace of Spades
|
||||
10 of Hearts
|
||||
--Shortened--
|
||||
4 of Spades
|
||||
6 of Spades
|
||||
Queen of Spades
|
||||
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
#>
|
||||
function Get-Deck
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[Alias('Deck')]
|
||||
[OutputType([int])]
|
||||
Param
|
||||
(
|
||||
#Brings the Vairiable in from Get-Deck
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0)]$YourDeckName
|
||||
)
|
||||
|
||||
Begin
|
||||
{
|
||||
|
||||
}
|
||||
Process
|
||||
{
|
||||
# Will return a terminal error if the deck has not been created
|
||||
try
|
||||
{
|
||||
$temp = Get-Variable -name "$YourDeckName" -ValueOnly -ErrorAction stop
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host
|
||||
Write-Host "$YourDeckName does not exist..."
|
||||
Write-Host "Creating Deck $YourDeckName..."
|
||||
New-Deck -YourDeckName $YourDeckName
|
||||
$temp = Get-Variable -name "$YourDeckName" -ValueOnly
|
||||
}
|
||||
|
||||
finally
|
||||
{
|
||||
$temp | select Value | ft -HideTableHeaders
|
||||
}
|
||||
|
||||
}
|
||||
End
|
||||
{
|
||||
Write-Verbose "End of show-deck function"
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.Synopsis
|
||||
Shuffles a deck of your selection with Get-Random
|
||||
.DESCRIPTION
|
||||
This function can be used to Shuffle any deck that has been created.
|
||||
This can be used on a deck that has less than 52 cards
|
||||
Contains a Try-Catch-Finally block in case the deck requested has not been created
|
||||
Does NOT output the value of the deck being shuffled (You wouldn't look at the cards you shuffled, would you?)
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> Shuffle-Deck -YourDeckName Deck1
|
||||
Your Deck was shuffled
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> Shuffle NotMadeYet
|
||||
|
||||
NotMadeYet does not exist...
|
||||
Creating and shuffling NotMadeYet...
|
||||
Your Deck was shuffled
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
#>
|
||||
function Shuffle-Deck
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[Alias('Shuffle')]
|
||||
[OutputType([int])]
|
||||
Param
|
||||
(
|
||||
#The Deck you want to shuffle
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0)]$YourDeckName)
|
||||
|
||||
Begin
|
||||
{
|
||||
Write-Verbose 'Shuffles your deck with Get-Random'
|
||||
}
|
||||
Process
|
||||
{
|
||||
# Will return a missing variable error if the deck has net been created
|
||||
try
|
||||
{
|
||||
#These two commands could be on one line using the pipeline, but look cleaner on two
|
||||
$temp1 = Get-Variable -name "$YourDeckName" -ValueOnly -ErrorAction stop
|
||||
$temp1 = $temp1 | Get-Random -Count ([int]::MaxValue)
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host
|
||||
Write-Host "$YourDeckName does not exist..."
|
||||
Write-Host "Creating and shuffling $YourDeckName..."
|
||||
New-Deck -YourDeckName $YourDeckName
|
||||
$temp1 = Get-Variable -name "$YourDeckName" -ValueOnly
|
||||
$temp1 = $temp1 | Get-Random -Count ([int]::MaxValue)
|
||||
|
||||
}
|
||||
|
||||
finally
|
||||
{
|
||||
#Gets the actual value of variable $YourDeckName from the New-Deck function and uses that string value
|
||||
#to set the variables name
|
||||
Set-Variable -Name "$YourDeckName" -value ($temp1) -Scope Global
|
||||
}
|
||||
}
|
||||
End
|
||||
{
|
||||
Write-Host "Your Deck was shuffled"
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.Synopsis
|
||||
Creates a new "Hand" which is a hashtable converted to a dictionary
|
||||
This is only used for creating the hand, to view/list the deck contents use Get-Hand.
|
||||
.DESCRIPTION
|
||||
Casts the string value that the user inputs to the name of the variable that holds the "hand"
|
||||
Creates a global variable, allowing you to use the name you choose in other functions and allows you to create
|
||||
multiple hands under different names.
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> New-Hand -YourHandName JohnDoe
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> New-Hand JaneDoe
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
>
|
||||
#>
|
||||
function New-Hand
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[OutputType([int])]
|
||||
Param
|
||||
(
|
||||
# Name your Deck, this will be the name of the variable that holds your deck
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$False,
|
||||
Position=0)]$YourHandName
|
||||
)
|
||||
|
||||
Begin
|
||||
{
|
||||
$Hand = @{}
|
||||
}
|
||||
Process
|
||||
{
|
||||
}
|
||||
|
||||
End
|
||||
{
|
||||
Set-Variable -Name "$YourHandName" -Value ($Hand.GetEnumerator()) -Scope Global
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.Synopsis
|
||||
Lists the cards in the selected Hand
|
||||
.DESCRIPTION
|
||||
Contains a Try-Catch-Finally block in case the hand requested has not been created
|
||||
.EXAMPLE
|
||||
#create a new hand
|
||||
PS C:\WINDOWS\system32> New-Hand -YourHandName Hand1
|
||||
|
||||
PS C:\WINDOWS\system32> Get-Hand -YourHandName Hand1
|
||||
Hand1's hand contains cards, they are...
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
#This hand is empty
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> Get-Hand -YourHandName Hand2
|
||||
|
||||
Hand2 does not exist...
|
||||
Creating Hand Hand2...
|
||||
Hand2's hand contains cards, they are...
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> hand hand3
|
||||
hand3's hand contains 4 cards, they are...
|
||||
|
||||
5 of Spades
|
||||
4 of Spades
|
||||
6 of Spades
|
||||
Queen of Diamonds
|
||||
#>
|
||||
function Get-Hand
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[Alias('Hand')]
|
||||
[OutputType([int])]
|
||||
Param
|
||||
(
|
||||
#Brings the Vairiable in from Get-Deck
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0)]$YourHandName
|
||||
)
|
||||
Begin
|
||||
{
|
||||
}
|
||||
Process
|
||||
{
|
||||
# Will return a missing variable error if the deck has net been created
|
||||
try
|
||||
{
|
||||
$temp = Get-Variable -name "$YourHandName" -ValueOnly -ErrorAction stop
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host
|
||||
Write-Host "$YourHandName does not exist..."
|
||||
Write-Host "Creating Hand $YourHandName..."
|
||||
New-Hand -YourHandName $YourHandName
|
||||
$temp = Get-Variable -name "$YourHandName" -ValueOnly
|
||||
}
|
||||
|
||||
finally
|
||||
{
|
||||
$count = $temp.count
|
||||
Write-Host "$YourHandName's hand contains $count cards, they are..."
|
||||
$temp | select Value | ft -HideTableHeaders
|
||||
}
|
||||
|
||||
}
|
||||
End
|
||||
{
|
||||
Write-Verbose "End of show-deck function"
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.Synopsis
|
||||
Draws/returns cards
|
||||
.DESCRIPTION
|
||||
Draws/returns cards from your chosen deck , to your chosen hand
|
||||
Can be used without creating a deck or hand first
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> DrawFrom-Deck -YourDeckName Deck1 -YourHandName test1 -HowManyCardsToDraw 10
|
||||
|
||||
|
||||
|
||||
PS C:\WINDOWS\system32>
|
||||
.EXAMPLE
|
||||
DrawFrom-Deck -YourDeckName Deck2 -YourHandName test2 -HowManyCardsToDraw 10
|
||||
Deck2 does not exist...
|
||||
Creating Deck Deck2...
|
||||
|
||||
test2 does not exist...
|
||||
Creating Hand test2...
|
||||
test2's hand contains cards, they are...
|
||||
|
||||
|
||||
|
||||
.EXAMPLE
|
||||
PS C:\WINDOWS\system32> draw -YourDeckName deck1 -YourHandName test1 -HowManyCardsToDraw 5
|
||||
|
||||
|
||||
|
||||
#>
|
||||
function Draw-Deck
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[Alias('Draw')]
|
||||
[OutputType([int])]
|
||||
Param
|
||||
(
|
||||
# The Deck in which you want to draw cards out of
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0)]$YourDeckName,
|
||||
|
||||
#The hand in which you want to draw cards to
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0)]$YourHandName,
|
||||
|
||||
|
||||
#Quanity of cards being drawn
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0)]$HowManyCardsToDraw
|
||||
|
||||
)
|
||||
Begin
|
||||
{
|
||||
Write-Verbose "Draws a chosen amount of cards from the chosen deck"
|
||||
|
||||
#try-catch-finally blocks so the user does not have to use New-Deck and New-Hand beforehand.
|
||||
try
|
||||
{
|
||||
$temp = Get-Variable -name "$YourDeckName" -ValueOnly -ErrorAction Stop
|
||||
}
|
||||
catch
|
||||
{
|
||||
Get-Deck -YourDeckName $YourDeckName
|
||||
$temp = Get-Variable -name "$YourDeckName" -ValueOnly -ErrorAction Stop
|
||||
}
|
||||
finally
|
||||
{
|
||||
Write-Host
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$temp2 = Get-Variable -name "$YourHandName" -ValueOnly -ErrorAction Stop
|
||||
}
|
||||
catch
|
||||
{
|
||||
Get-Hand -YourHandName $YourHandName
|
||||
$temp2 = Get-Variable -name "$YourHandName" -ValueOnly -ErrorAction Stop
|
||||
}
|
||||
finally
|
||||
{
|
||||
Write-Host
|
||||
}
|
||||
}
|
||||
|
||||
Process
|
||||
{
|
||||
Write-Host "you drew $HowManyCardsToDraw cards, they are..."
|
||||
|
||||
$handValues = Get-Variable -name "$YourDeckName" -ValueOnly
|
||||
$handValues = $handValues[0..(($HowManyCardsToDraw -1))] | select value | ft -HideTableHeaders
|
||||
$handValues
|
||||
|
||||
}
|
||||
End
|
||||
{
|
||||
#sets the new values for the deck and the hand selected
|
||||
Set-Variable -Name "$YourDeckName" -value ($temp[$HowManyCardsToDraw..($temp.count)]) -Scope Global
|
||||
Set-Variable -Name "$YourHandName" -value ($temp2 + $handValues) -Scope Global
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue