2017-10-29 7 views
-3

id4の場合、文と出力が1行でうまくいけば完了していません。 完了していないように見え、elseステートメントに到達できません。 もっと具体的には、私は5行の表示機能を作ろうとしています。 うまくいけば、私たちはこの仕事をすることができます。 (システムを使用すると、コード内にある)9より大きい数字は2桁の数字を持っているし、グリッドをオフセットするのでid4の文が完了していないC#

namespace amoba_fel3 
{ 
    class FiveInARowBoard 
    { 
     public FiveInARowBoard(int size) 
     { 
      m_size = size; 
      m_board = new int[m_size, m_size]; 
     } 

     public void set(int row, int col, int val) 
     { 
      m_board[row, col] = val; 
     } 

     public void draw() 
     { 
      for (int row = 0; row < m_size; row++) 
      { 
       for (int col = 0; col < m_size; col++) 
       { 
        if (m_board[row, col] == 0) 
         Console.Write("[.]"); 
        else if (m_board[row, col] == 1) 
         Console.Write("[O]"); 
        else if (m_board[row, col] == 2) 
         Console.Write("[X]"); 
        else if (m_board[row, col] == 3) 
         Console.Write(" " + cords[col] + " "); 
        else if (m_board[row, col] == 4) 
         if (col >= 10) 
          Console.Write(numcords[row]); 
         else 
          Console.Write(" " + numcords[row] + " "); 
       } 
       Console.WriteLine(); 
      } 
     } 

     private int[] numcords = new int[] { 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 
              12, 13, 14, 15, 16, 17, 18, 19, 20 }; 
     private char[] cords = "AABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); 
     private int m_size; 
     private int[,] m_board; 

     static void Main(string[] args) 
     { 
      FiveInARowBoard board = new FiveInARowBoard(20); 

      for (int i = 0; i < 20; i++) 
      { 
       board.set(0, i, 3); 
       board.set(i, 0, 4); 
      } 

      board.draw(); 

     } 
    } 
} 
+0

@yacc:これまで

else if (m_board[row, col] == 4) if (col >= 10) Console.Write(numcords[row]); else Console.Write(" " + numcords[row] + " "); 

変更それら:

あなたのコードは、現在、これらの行を持っていますか?メインはクラス内にあるべきです、それはメソッドです。 –

+0

@yacc: "mainはクラスの外にあるべきです"そうは思わない - どのid4にもC#の非常に奇妙な考えがない限り、メソッドを名前空間の中に直接入れることはできません。 –

+0

真実、私は間違っている。 – yacc

答えて

0

は、私の知る限り、何を求めていることは、適切にグリッド内の行を整列させる方法です1文字分。間違いはrow変数の代わりにcol変数と比較しています。 "メインは、クラスの外にあるべき" ノー

else if (m_board[row, col] == 4) 
    if (row >= 10) // check the row not the col 
     Console.Write(numcords[row] + " "); // still need a trailing space 
    else 
     Console.Write(" " + numcords[row] + " "); // leading space when single digit 
関連する問題