Pongeponge

Codingame『Ragnarök - Power of Thor』

f:id:pongeponge:20150103195401j:plain


 Codingame始めました。
内容は「トール(徹)を雷のところまで誘導してあげよう」というもの。
C#を選んだ私はこんな感じになりました。

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)
    {
        string[] inputs = Console.ReadLine().Split(' ');
        int LX = int.Parse(inputs[0]); // the X position of the light of power
        int LY = int.Parse(inputs[1]); // the Y position of the light of power
        int TX = int.Parse(inputs[2]); // Thor's starting X position
        int TY = int.Parse(inputs[3]); // Thor's starting Y position

        // game loop
        while (true)
        {
            int Energy = int.Parse(Console.ReadLine()); // The level of Thor's remaining energy, representing the number of moves he can still make.
            
            string angleX = null; //移動方向:横(E,W)
            string angleY = null; //移動方向:縦(N,S)

            int difX = TX - LX; //徹と雷の相対位置:横
            int difY = TY - LY; //徹と雷の相対位置:縦
            
            if(difY > 0) { //相対位置:縦がプラスの場合
                angleY = "N"; //北へ
                TY--; //徹の位置:縦を-1
            }
            else if(difY < 0) { //相対位置:縦がマイナスの場合
                angleY = "S"; //南へ
                TY++; //徹の位置:縦を+1
            }

            if(difX > 0) { //相対位置:横がプラスの場合
                angleX = "W"; //西へ
                TX--; //徹の位置:横を-1
            }
            else if(difX < 0) { //相対位置:横がマイナスの場合
                angleX = "E"; //東へ
                TX++; //徹の位置:横を+1
            }

            Console.WriteLine(angleY+angleX); //移動方向出力
        }
    }
}


stringの配列だったらもっと楽かなとか、
if文の所を二回書くのめんどくさいので関数化したらよかったとか。
あと何かpointってクラスなかったっけ?


他の人はもっと上手いことやるはず。