チェスメニューのサムネイル
コマの動かし方 ナイト Go編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

  • はじめに


  • 今回はナイトについてです。

    ナイトは上下左右好きな方向に 2 マス動いてから 90 度方向転換して 1 マス動くことでたどり着くことが出来る 8 マスに移動することが出来ます。相手のコマがある場合はその位置に移動することで相手のコマをとることが出来ます。

    例えば、以下の盤面があるとき、WN は ※マークがついたマスに移動が出来ます。

    --  --  --  BR  --  --  --  --
    -- -- -- -- -- -- WP --
    -- -- --* -- BP* WK -- --
    -- --* -- -- -- --* -- --
    -- -- -- WN -- -- -- --
    -- WQ BN -- -- BN* -- --
    -- -- --* -- --* -- -- --
    -- -- -- -- -- BK -- --


    実際にやってみましょう。


  • 問題


  • 駒が置かれた盤面 L が与えられます。位置 P に置かれた WN のコマが移動できるマスを全て列挙してください。

    入力される値

    P
    L_{a8} L_{b8} ... L_{h8}
    L_{a7} L_{b7} ... L_{h7}
    ...
    L_{a1} L_{b1} ... L_{h1}

    1 行目には 1 つの文字列 P が与えられます。

    i + 1 (1 ≦ i ≦ 8) 行目には n = 9 - i としたとき、8 つの文字列 L_{an},L_{bn},L_{cn},L_{dn},L_{en},L_{fn},L_{gn},L_{hn} が与えられます。

    入力は 9 行となり、末尾に改行が 1 つ入ります。


    入力値最終行の末尾に改行が1つ入ります。
    文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
    期待する出力

    答えのマス数を q としたとき、答えを、q + 1 行で出力してください。

    1 行目には q を出力してください。1 + i (1 ≦ i ≦ q) 行目には移動できるマスを出力してください。ただし、数字が大きい順、数字が同じであればアルファベット順で出力してください。

    条件

    すべてのテストケースにおいて、以下の条件をみたします。

    ・P は 1 文字目が a,b,c,d,e,f,g,h のいずれかで、2 文字目が 1,2,3,4,5,6,7,8 のいずれかである 2 文字の文字列

    ・L の要素は 1 文字目が B,W のいずれかで、2 文字目が R,B,N,P,Q,K のいずれかである 2 文字の文字列か --

    ・L_P は WN

    入力例1

    b1
    BR BN BB BQ BK BB BN BR
    BP BP BP BP BP BP BP BP
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    WP WP WP WP WP WP WP WP
    WR WN WB WQ WK WB WN WR

    出力例1

    2
    a3
    c3

    入力例2

    g1
    -- BN BB -- BK -- BN BR
    BP BP BP -- BP BP -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- BP
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- WP WP -- -- WP -- WP
    WR -- WB WQ -- WK WN --

    出力例2

    3
    f3
    h3
    e2

    問題一覧へ戻る

    1. paizaトップ
    2. レベルアップ問題集
    3. チェスメニュー(言語選択)
    4. 問題一覧 Go編
    5. コマの動かし方 ナイト Go編
    ページの先頭へ戻る