ただし、山が邪魔なので、砲撃して山を切り崩す必要があります。
1段階の高さで、それぞれ1回ずつしか砲撃できません。
そのためには何をすれば良いでしょうか?
ONBOADINGが参考になるでしょう。
考慮すべき点
- どの山に砲撃させるか
- 1行目
- int SX : 位置x 左端がゼロ(最初の山の上空)、右端が7
- int SY : 位置y 最初が10、平地が1
- 2行目から9行目
- int MH : 山の高さ 9~0。大きければ高い。左から右の順
出力
- "FIRE" 真下の山を砲撃
- "HOLD" 何もしない
回答例
using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Collections;
using System.Collections.Generic;
class Player
{
static void Main(String[] args)
{
string[] inputs;
// game loop
while (true)
{
inputs = Console.ReadLine().Split(' ');
int SX = int.Parse(inputs[0]); //位置x
int SY = int.Parse(inputs[1]); //位置y
int target = -1; // 砲撃対象の山のID。初期値 -1
int maxHeight = 0;; // 最大の山の高さ。初期値 0
for (int i = 0; i < 8; i++)
{
int MH = int.Parse(Console.ReadLine()); // 山の高さ 9 から 0。左から右へ。
Console.Error.WriteLine("SX:"+SX+" SY:"+SY + " MH(i):" +MH+"("+i+")"); //確認のため標準エラー出力へ
if(maxHeight == 0 || maxHeight < MH){ // maxHeight が初期値だったら、または、maxHeight がそれまでのものより大きかったら
maxHeight = MH; // maxHeightを更新
target = i; // 砲撃対象を更新
}
}
if(SX==target){ //
Console.WriteLine("FIRE"); // 砲撃
}else{
Console.WriteLine("HOLD"); // スルーする
}
}
}
}
所感
まだ変数と IF しか出てきませんね...