본문으로 바로가기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static string[] Map = new string[10] { "GGGGGGGGGGGGGGGG",    //0
                                               "G##############G",    //1
                                               "G#            #G",    //2
                                               "G# ############G",    //3
                                               "G#       .B.@ #G",    //4 
                                               "G#            #G",    //5
                                               "G#            #G",    //6
                                               "G#            #G",    //7
                                               "G##############G",    //8
                                               "GGGGGGGGGGGGGGGG"};   //9

        static void Main(string[] args)
        {
            char[][] TT = new char[10][];

            for (int i = 0; i < Map.Length; i++)
            {
                TT[i] = Map[i].ToCharArray();
            }

            
            foreach (var A in TT)
            {
                foreach (var Temp in A)
                {
                    Console.Write(Temp);
                }
                Console.WriteLine();
            }
            

            /*
            TT[0] = Map[0].ToCharArray();
            TT[1] = Map[1].ToCharArray();
            TT[2] = Map[2].ToCharArray();
            TT[3] = Map[3].ToCharArray();
            TT[4] = Map[4].ToCharArray();
            TT[5] = Map[5].ToCharArray();
            TT[6] = Map[6].ToCharArray();
            TT[7] = Map[7].ToCharArray();
            TT[8] = Map[8].ToCharArray();
            TT[9] = Map[9].ToCharArray();
            */

        }
        static void Main2(string[] args)
        {
            char[] TT0 = Map[0].ToCharArray();
            char[] TT1 = Map[1].ToCharArray();
            char[] TT2 = Map[2].ToCharArray();
            foreach (var Temp in TT1)
            {
                Console.Write(Temp);
            }
            Console.WriteLine();


        }

        static void Main1(string[] args)
        {


            char[] TT1 = Map[0].ToCharArray();
            TT1[1] = '#';
            foreach (var Temp in TT1)
            {
                Console.Write(Temp);
            }
            Console.WriteLine();

            foreach (var Temp in Map[0])
            {
                Console.Write(Temp);
            }
            Console.WriteLine();
        }
            
        
    }
}

 

Main1에 내용을 설명하겠습니다.

char[] TT1 = Map[0].ToCharArray();은 Map[]의 0번째 배열을 캐릭터 배열로 만들어서 TT1에 넣겠다는 의미이다.

TT1[1] = '#'; 은 TT1에 인덱서 1번을 '#으로 바꾼다.

foreach문으로 TT1을 출력해 보면 'G'에서 '#'으로 바뀐것을 알수 있다.

foreach문으로 Map[0]을 출력해 보면 Map[0] 과 TT1을 비교할수 있다.

따라서 Map[0]은 바꿀수 없지만 TT1은 바꿀수 있다.

Main2의 내용을 설명하겠습니다.

Map[]의 나머지 것들도 캐릭터형배열로 바꾸는것을 보여줍니다.

char[] TT0 = Map[0].ToCharArray();
char[] TT1 = Map[1].ToCharArray();
char[] TT2 = Map[2].ToCharArray();

만든것중에 하나인 char[] TT1 = Map[1].ToCharArray();을 foreach문으로 출력해보았습니다.

Main의 내용을 설명하겠습니다.

C#은 이차원 배열을 만들때 두가지 방법이 있습니다.

하나는 arr[1, 2]이런 방법이 있고         (C#에서만 사용하는 방법, 고정배열)

하나는 arr[1][2](가변배열)이 있습니다. (자바에서 사용하는 방법, 가변배열)

char[][] TT = new char[10][];을 통해 이차원 배열을 만들었습니다.

TT[0] = Map[0].ToCharArray();

TT[1] = Map[1].ToCharArray();

TT[2] = Map[2].ToCharArray();
TT[3] = Map[3].ToCharArray();

TT[4] = Map[4].ToCharArray();
TT[5] = Map[5].ToCharArray();
TT[6] = Map[6].ToCharArray();
TT[7] = Map[7].ToCharArray();
TT[8] = Map[8].ToCharArray();
TT[9] = Map[9].ToCharArray();

을 통해서 Map을 캐릭터배열로 만들었다.

여기서 공통된것을 발견해서 for문으로 만들었다.

그리고 foreach문을 통해서 출력을 했다.

 

 

'스마트팩토리 > C#' 카테고리의 다른 글

소코반 만들기 수정 작업(2)  (0) 2020.10.28
소코반 만들기 수정 작업(1)  (0) 2020.10.27
2020/9/8 C#  (0) 2020.09.08
2020/8/18 C#  (0) 2020.08.18
2020/7/30 C#  (0) 2020.07.30