プログラミングのお題スレ Part22 (862レス)
上下前次1-新
抽出解除 レス栞
64(3): デフォルトの名無しさん [sage] 2023/08/24(木)05:04 ID:UkV1PQmo(1)
お題:2Dゲームのスクロール処理
整数の二次元配列(高さ50, 横幅100)上にランダムに整数1〜9が200個配置される。
この配列を高さ20, 横幅40の矩形領域に切り取って表示したい。キーボードの入力(l, r, t, b)で矩形領域を移動させ切り取る領域を変化させよ。
65(1): デフォルトの名無しさん [] 2023/08/24(木)08:57 ID:a6n854uv(1)
>>64
試しに自分で書いてどんなプログラムになるのか見せてくれ
66: デフォルトの名無しさん [] 2023/08/24(木)22:51 ID:hcnR5QOK(1)
>>64
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}
}
}
68: デフォルトの名無しさん [] 2023/08/25(金)14:02 ID:5+gJach+(1)
>>64-65
OpenCVのROI便利だよな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.343s*