2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【電脳少女 プログラミング2088 Cランク】 自然の残る公園 PowerShellによる

Posted at

電脳少女プログラミング2088
今回は、こちらのプログラミングゲームの解答コードを投稿しよう!の公式イベントの記事になります。

具体的にはpaizaの新作プログラミングゲーム「電脳少女プログラミング2088 ─壊レタ君を再構築─」の
「自然の残る公園」
という問題をPowerShell 5.1で解いてみたいと思います。

問題

答え

# ビーコンの数、現在地x座標、現在地y座標の入力
Write-Host "ビーコンの数、現在地x座標、現在地y座標を入力してください:"
$inputData = Read-Host
$inputArray = $inputData.Split(" ")
$beacon_num = [int]$inputArray[0]
$now_x = [int]$inputArray[1]
$now_y = [int]$inputArray[2]

# 最終的な答えを入れる変数を作成して初期化
$answer = 0
$min_distance = [double]::PositiveInfinity

# ビーコンの数分ループ(iはビーコンの番号として使う)
for ($i = 0; $i -lt $beacon_num; $i++) {
    # ビーコンのx座標、y座標を取得
    Write-Host "ビーコンのx座標、y座標を入力してください:"
    $beaconData = Read-Host
    $beaconArray = $beaconData.Split(" ")
    $x = [int]$beaconArray[0]
    $y = [int]$beaconArray[1]
    
    # 距離計算してresultへ格納
    $result = [Math]::Pow($now_x - $x, 2) + [Math]::Pow($now_y - $y, 2)
    
    # resultとmin_distanceを比較する
    if ($result -lt $min_distance) {
        $min_distance = $result
        $answer = $i + 1 # indexは0からスタートするためビーコンの番号として機能するように+1をする
    }
}

# 最終結果を出力
Write-Host $answer

PowerShellではテスト入力がツライ

image.png

処理は単純にビーコンとの距離を計算して、最も近いビーコン番号を出力するだけです。

評価

この「電脳少女プログラミング2088 ─壊レタ君を再構築─」では問題を解くとAIのパートナーが解答をコードレビューしてくれます。コードレビューしてもらったことがないので新鮮でした(評価はPythonの解答をしてもらいました)

最後に

このようなイベントをPowerShellでやる人は珍しいと思います。
PowerShellに興味を持った方は応援してね

下のリンク先でも記事を書いています

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?