Codingame『Kirk - The Descent』

f:id:pongeponge:20150104165802j:plain


 山をつぶして宇宙船が着陸できるようにするゲーム。
毎回位置情報やら山の高さやらを全部取ってるけど、最初にガバっと取得してループ内でチョコチョコ処理すればいいんじゃないかなと思ったり。
山の位置や高さがモリモリ動くわけじゃないし……。


 とりあえず私はこんな感じ。

using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Collections;
using System.Collections.Generic;

/**
 * Auto-generated code below aims at helping you parse
 * the standard input according to the problem statement.
 **/
class Player
{
    static void Main(string[] args)
    {

        // game loop
        while (true)
        {
            string[] inputs = Console.ReadLine().Split(' ');
            int SX = int.Parse(inputs[0]);
            int SY = int.Parse(inputs[1]);
            
            string mode = "HOLD"; //船の状態(飛行モード)
            
            int MHst = 0;     //一番高い山
            int atkPoint = 0; //攻撃する山の番号
            for (int i = 0; i < 8; i++)
            {
                int MH = int.Parse(Console.ReadLine()); // represents the height of one mountain, from 9 to 0. Mountain heights are provided from left to right.
                if(MH > MHst) {   //一番高い山を比較して探す
                    MHst = MH;    //更新
                    atkPoint = i; //高い山が見つかったら攻撃地点に設定
                }
            }
            
            if(SX == atkPoint) mode ="FIRE"; //船の位置と攻撃位置が合えば攻撃

            // Write an action using Console.WriteLine()
            // To debug: Console.Error.WriteLine("Debug messages...");

            Console.WriteLine(mode); // either:  FIRE (ship is firing its phase cannons) or HOLD (ship is not firing).
        }
    }
}


 SYで船の高さ位置を取得してるけど、別につかわなくてもいけるよねぇ。
何か便利な使い道あるんだろうか。


あの航空機事故はこうして起きた (新潮選書)

あの航空機事故はこうして起きた (新潮選書)