using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//배열의 인스턴스화
int[,] arr = new int[3, 2]; // 행 row , 열 col
//인덱스로 배열의 요소에 접근
arr[1, 0] = 1;
//배열의 순회 (요소를 출력)
int rowLength = arr.GetLength(0);
int colLength = arr.GetLength(1);
Console.WriteLine(arr.GetLength(0)); // 1차원, 행
Console.WriteLine(arr.GetLength(1)); // 2차원, 열
for(int i = 0; i < rowLength; i++)
{
for(int j = 0; j < colLength; j++)
{
Console.Write("{0},{1}({2}) ", i,j, arr[i,j]); // 행, 열 인덱스
}
Console.WriteLine();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//배열의 인스턴스화
int[,] arr = new int[2, 3]; // 행 row , 열 col
//인덱스로 배열의 요소에 접근
arr[0, 2] = 1;
arr[1, 1] = 1;
//배열의 순회 (요소를 출력)
int rowLength = arr.GetLength(0);
int colLength = arr.GetLength(1);
for(int i = 0; i < rowLength; i++)
{
for(int j = 0; j < colLength; j++)
{
Console.Write("[{0},{1}] : {2} ", i,j, arr[i,j]); // 행, 열 인덱스
}
Console.WriteLine();
}
}
}
}
//Game game = new Game();
//game.Start();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//배열의 인스턴스화 및 배열의 요소에 접근
int[,] arr = new int[,]
{
{0, 0, 1 },
{0, 1, 0 }
};
//배열의 순회
for(int i = 0; i < arr.GetLength(0); i++)
{
for(int j = 0; j < arr.GetLength(1); j++)
{
Console.Write("[{0},{1}] : {2} ", i, j, arr[i, j]);
}
Console.WriteLine();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//배열의 인스턴스화 및 배열의 요소에 접근
int[,] arr = new int[2,3] {
{1, 1, 1},
{1, 1, 2}
};
//배열의 순회
for(int i = 0; i < arr.GetLength(0); i++)
{
for(int j = 0; j < arr.GetLength(1); j++)
{
Console.Write("[{0},{1}] : {2} ", i, j, arr[i, j]);
}
Console.WriteLine();
}
}
}
}
캐릭터 추가
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Game2048
{
public class App
{
//생성자
public App()
{
//배열의 인스턴스화 및 배열의 요소에 접근
int[,] arr = new int[2,3] {
{1, 1, 1},
{1, 1, 2}
};
int[,] playerMap = new int[arr.GetLength(0), arr.GetLength(1)];
this.PrintMap(playerMap);
this.PrintMap(arr);
}
void PrintMap(int[,] arr)
{
//배열의 순회
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.Write("[{0},{1}] : {2} ", i, j, arr[i, j]);
}
Console.WriteLine();
}
}
}
}
캐릭터 이동
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Game2048
{
public class App
{
int[,] playerMap;
int rowIdx;
int colIdx;
//생성자
public App()
{
//배열의 인스턴스화 및 배열의 요소에 접근
int[,] arr = new int[2,3] {
{1, 1, 1},
{1, 1, 2}
};
this.playerMap = new int[arr.GetLength(0), arr.GetLength(1)];
this.PrintMap(arr);
this.PrintSpace();
this.PrintMap(playerMap);
//초기 위치 설정
this.rowIdx = 1;
this.colIdx = 2;
playerMap[1, 2] = 100;
this.PrintSpace();
this.PrintMap(playerMap);
this.MoveLeft();
this.PrintSpace();
this.PrintMap(playerMap);
this.PrintSpace();
this.MoveRight();
this.PrintMap(playerMap);
this.MoveRight();
this.PrintMap(playerMap);
this.MoveRight();
this.PrintMap(playerMap);
}
void PrintSpace()
{
Console.WriteLine();
}
//왼쪽이동
void MoveLeft()
{
int nextCol = this.colIdx - 1;
if(nextCol < 0)
{
Console.WriteLine("갈수없습니다.");
return;
}
this.playerMap[this.rowIdx, this.colIdx - 1] = 100;
this.playerMap[this.rowIdx, this.colIdx] = 0;
this.colIdx -= 1;
Console.WriteLine("왼쪽으로 이동했습니다.");
}
//오른쪽 이동
void MoveRight()
{
int nextCol = this.colIdx + 1;
if(nextCol > 0)
{
Console.WriteLine("갈수없습니다.");
return;
}
this.playerMap[this.rowIdx, this.colIdx + 1] = 100;
this.playerMap[this.rowIdx, this.colIdx] = 0;
this.colIdx += 1;
Console.WriteLine("오른쪽으로 이동했습니다.");
}
//위로 이동
void MoveUp()
{
this.playerMap[this.rowIdx + 1, this.colIdx] = 100;
this.playerMap[this.rowIdx, this.colIdx] = 0;
this.rowIdx += 1;
Console.WriteLine("위로 이동했습니다.");
}
//아래로 이동
void MoveDown()
{
this.playerMap[this.rowIdx - 1, this.colIdx] = 100;
this.playerMap[this.rowIdx, this.colIdx] = 0;
this.rowIdx -= 1;
Console.WriteLine("아래로 이동했습니다.");
}
void PrintMap(int[,] arr)
{
//배열의 순회
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.Write("[{0},{1}] : {2} ", i, j, arr[i, j]);
}
Console.WriteLine();
}
}
}
}
'C#프로그래밍' 카테고리의 다른 글
좌표, 인덱스, Utils, Vector2, Hero (0) | 2023.07.25 |
---|---|
2048[미완] (0) | 2023.07.25 |
1차원 배열 (0) | 2023.07.25 |
배열 복습 (0) | 2023.07.25 |
1차원 배열 인벤토리 (0) | 2023.07.24 |