インディアンなジョーンズが洞窟を底へと滑り落ちていく。
滑り落ちていく方向を制御して、奈落へ叩き込もう!(助けない)
そんなに難しくない。
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; inputs = Console.ReadLine().Split(' '); int w = int.Parse(inputs[0]); // 横幅 int h = int.Parse(inputs[1]); // 高さ Console.Error.WriteLine("W H : {0} {1}", w, h); //マップを作る int[,] map = new int[w, h]; for (int i = 0; i < h; i++) { string[] sgrid = Console.ReadLine().Split(' '); // represents a line in the grid and contains W integers. Each integer represents one room of a given type. //マップに部屋のタイプを保存 for (int j = 0; j < w; j++) { map[j, i] = int.Parse(sgrid[j]); Console.Error.Write("{0} ", map[j, i]); } Console.Error.WriteLine(""); } //脱出口の横座標 int exit = int.Parse(Console.ReadLine()); // the coordinate along the X axis of the exit (not useful for this first mission, but must be read). Console.Error.WriteLine("Exit : {0}", exit); //ルームクラスの用意 Room r = new Room(); // game loop while (true) { inputs = Console.ReadLine().Split(' '); //主人公の位置 Pos p = new Pos(int.Parse(inputs[0]), int.Parse(inputs[1])); string inp = inputs[2]; Console.Error.WriteLine("x y : {0} {1}", p.w, p.h); Console.Error.WriteLine("pos : {0}", inp); //部屋判別 p = r.Type(map[p.w, p.h], inp, p); // Write an action using Console.WriteLine() // To debug: Console.Error.WriteLine("Debug messages..."); Console.WriteLine("{0} {1}", p.w, p.h); // One line containing the X Y coordinates of the room in which you believe Indy will be on the next turn. } } //部屋処理 public class Room { public Pos Type(int n, string inp, Pos p) { if ((n == 1) | (n == 3) | (n == 7) | (n == 8) | (n == 9) | (n == 12) | (n == 13)) { //下に落ちる return this.FallDown(p); } else if ((n == 2) | (n == 6)) { //左右移動 return MoveLR(inp, p); } else if ((n == 4) | (n == 5) | (n == 10) | (n == 11)) { //曲がってる return Curve(n, inp, p); } //エラー:部屋が見つからない Console.Error.WriteLine("1"); return p; } //下に落ちる private Pos FallDown(Pos p) { return new Pos(p.w, p.h + 1); } //左右移動 private Pos MoveLR(string inp, Pos p) { if (inp == "LEFT") { return new Pos(p.w + 1, p.h); } else if (inp == "RIGHT") { return new Pos(p.w - 1, p.h); } Console.Error.WriteLine("2"); return p; } //くねってる private Pos Curve(int n, string inp, Pos p) { if ((n == 4 | n == 10) & inp == "TOP") { return new Pos(p.w - 1, p.h); } else if ((n == 5 | n == 11) & inp == "TOP") { return new Pos(p.w + 1, p.h); } else { return new Pos(p.w, p.h + 1); } Console.Error.WriteLine("3"); return p; } } //座標 public class Pos { public int w; public int h; public Pos(int x, int y) { this.w = x; this.h = y; } } }
- 出版社/メーカー: パラマウント ホーム エンタテインメント ジャパン
- 発売日: 2013/12/20
- メディア: Blu-ray
- この商品を含むブログを見る