From 62eef6a209ccf1b36d6cc9802a42373ea9e9b979 Mon Sep 17 00:00:00 2001 From: Markus Fleschutz Date: Mon, 18 Nov 2024 13:16:59 +0100 Subject: [PATCH] Updated write-xmas-tree.ps1 --- scripts/write-xmas-tree.ps1 | 56 ++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/scripts/write-xmas-tree.ps1 b/scripts/write-xmas-tree.ps1 index 9a1d15d7..4d793f7b 100644 --- a/scripts/write-xmas-tree.ps1 +++ b/scripts/write-xmas-tree.ps1 @@ -1,37 +1,43 @@ -# Writes a christmas tree to terminal -# Variable $Size = (tree_height, trunk_width, trunk_height) -# Variable $XPos = The starting x position on the terminal line -# Variables $colors = List of colors to use -# Random color pattern each execution +<# +.SYNOPSIS + Writes a Xmas tree +.DESCRIPTION + This PowerShell script writes a christmas tree to the terminal. +.EXAMPLE + PS> ./write-xmas-tree.ps1 +.LINK + https://github.com/fleschutz/PowerShell +.NOTES + Author: Markus Fleschutz | License: CC0 +#> -param ( - [array]$Size=@(20,8,4), - [int]$XPos=50, - [array]$colors = @("blue", "green", "cyan", "red", "yellow", "magenta"), - [int]$Idx = (Get-Random -Min 0 -Max ($colors.Length-1)), - [int]$count = 100, - [int]$duration = 250 # ms -) +param( [array]$Size=@(21,8,4), # tree height, trunk width, trunk height + [int]$XPos=50, # starting x position + [array]$colors = @("blue", "green", "cyan", "red", "yellow", "magenta"), + [int]$Idx = (Get-Random -Min 0 -Max ($colors.Length-1)), + [int]$count = 100, + [int]$duration = 250) # ms Clear-Host do { [console]::SetCursorPosition(0,0) - Write-Host "`n`tMerry Christmas and a Happy New Year!`n`n" -foregroundColor Yellow + Write-Host "`n`t`t`tMerry Christmas" -foregroundColor yellow + Write-Host "`t`t`t &" -foregroundColor yellow + Write-Host "`t`t`t Happy New Year" -foregroundColor yellow + for ( $i=1; $i -le $Size[0]; $i++ ) { + $line = " " * ($XPos - $i) + "*" * ($i * 2) + $Idx = $Idx % $colors.Length + Write-Host $line -foregroundColor $colors[$Idx] + $Idx++ + } - for ( $i=1; $i -le $Size[0]; $i++ ) { - $line = " " * ($XPos - $i) + "*" * ($i * 2) - $Idx = $Idx % $colors.Length - Write-Host $line -foregroundColor $colors[$Idx] - $Idx++ - } + for ( $j=1; $j -le $Size[2]; $j++ ){ + $line = " " * ( $XPos - ( $Size[1] / 2 ) ) + "#" * $Size[1] + Write-Host $line -foregroundColor DarkGreen + } - for ( $j=1; $j -le $Size[2]; $j++ ){ - $line = " " * ( $XPos - ( $Size[1] / 2 ) ) + "#" * $Size[1] - Write-Host $line -foregroundColor DarkGreen - } Start-Sleep -milliseconds $duration - $count-- } while ($count -gt 0)