プログラミングのお題スレ Part22 (863レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
66: デフォルトの名無しさん [] 2023/08/24(木) 22:51:17.82 ID:hcnR5QOK(1) AAS
>>6464(3): デフォルトの名無しさん [sage] 2023/08/24(木) 05:04:40.60 ID:UkV1PQmo(1) AAS
お題:2Dゲームのスクロール処理
整数の二次元配列(高さ50, 横幅100)上にランダムに整数1〜9が200個配置される。
この配列を高さ20, 横幅40の矩形領域に切り取って表示したい。キーボードの入力(l, r, t, b)で矩形領域を移動させ切り取る領域を変化させよ。
PowerShell (等幅フォント限定。最初は一番左上の領域が表示される。qキーで終了。Ubuntu版ではカーソルが消えない)
$a = random (1..9999) -count 200 |% {$_ % 9 + 1}
$b = random (0..4999) -count 200
$c = [char[][]](,(," " * 100) * 50)
0..199 |% {$c[[Math]::Floor($b[$_] / 100)][$b[$_] % 100] = [string]$a[$_]}
$L = 0..49 |% {-join $c[$_]}
$UI = $Host.UI.RawUI
$p, $s = $UI.CursorPosition, $UI.CursorSize
$p.y = [Math]::Min($p.y, $UI.BufferSize.Height - 23)
$x = $y = 0
$border = "+" + "-" * 40 + "+"
while ($true) {
try {$UI.CursorSize = 0} catch {}
$UI.CursorPosition = $p
$border
0..19 |% {"|" + $L[$y + $_].SubString($x, 40) + "|"}
$border
switch ($UI.ReadKey(6).Character) {
"l" {if ($x -gt +0) {$x--}}
"r" {if ($x -lt 60) {$x++}}
"t" {if ($y -gt +0) {$y--}}
"b" {if ($y -lt 30) {$y++}}
"q" {try {$UI.CursorSize = $s} catch {} return}
}
}
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s