図形の表示
出典: フリー百科事典『ウィキペディア(Wikipedia)』
シェルピンスキーのギャスケット - Wikipedia
この図形を表示するスクリプトを作成しました。
作成方法はまず、一次元配列を作成します。要素の値は基本的に「0」に設定しますが、真ん中に一つ「1」を設定します。
X1 | X2 | X3 | X4 | X5 | X6 | X7 |
0 | 0 | 0 | 1 | 0 | 0 | 0 |
↓
X1 | X2 | X3 | X4 | X5 | X6 | X7 |
0 | 0 | 1 | 0 | 1 | 0 | 0 |
↓
X1 | X2 | X3 | X4 | X5 | X6 | X7 |
0 | 1 | 0 | 0 | 0 | 1 | 0 |
↓
・
・
・
配列を順番に表示させると図形が現れます。
今回は「1」→「*」、「0」→スペース としました。
$ON = "*"; $OFF = " "; $Cnum = 101; Function GetNextCells{ param ( $Cbf ); $Caf = @(); for ( $i = 0; $i -le $Cbf.Length -1; $i++ ){ if ($i -eq 0){ $Xm = $OFF; $Xp = $Cbf[1]; }elseif ($i -eq $Cbf.Length -1) { $Xm = $Cbf[$Cbf.Length - 2]; $Xp = $OFF; }else{ $Xm = $Cbf[$i - 1]; $Xp = $Cbf[$i + 1]; } if ($Xm -eq $Xp){ $Caf += $OFF; }else{ $Caf += $ON; } } $Caf; } $C = @(); for ( $i = 0; $i -lt $Cnum; $i++ ){ if ( $i -eq [int](($Cnum-1)/2)){ $C += $ON; }else{ $C += $OFF; } } do { $Line = ""; foreach ( $Xi in $C ){ $Line += $Xi; } $Line; $C = GetNextCells $C; } while ( $C[0] -ne $ON )