namespace UnityGameDevelopment.Day10 {
public class Outline {
public static string Chapter1 = "진법 변환";
public static string Chapter2 = "LINQ 기초";
}
}
1. 진법 변환
10진수에서 2진수로의 변환과 2진수에서 10진수로의 변환에 대해 알아봅니다.
2진수에서 10진수로 변환하기
2진수를 10진수로 변환하는 방법은 2의 "자리수-1"승을 그 자리의 수(0 또는 1)와 곱하여 전부 더하여 구하는 방법이 있습니다.
2진수 1001을 10진수로 변환해보겠습니다.
자리의 수 | 1 | 1 | 0 | 1 |
자리수 값 | 2의 3승 | 2의 2승 | 2의 1승 | 2의 0승 |
자리수 값 | 8 | 4 | 2 | 1 |
각 자리의 수와 해당 자리수 값을 각각 곱해서 모두 더해주면 10진수 표현이 됩니다.
10진수에서 2진수로 변환하기
아래 표는 10진수 13을 2진수로 변환하는 과정입니다.
계산 | 몫 | 나머지 |
13 / 2 = | 6 | 1 |
6 / 2 = | 3 | 0 |
3 / 2 = | 1 | 1 |
1 / 2 = | 0 | 1 |
처음엔 변환할 값을 2로 나누어 몫과 나머지를 계산합니다. 구한 몫을 다시 2로 나누어 몫과 나머지를 계산합니다. 이 과정을 몫이 0이 될 때까지 반복합니다.
마지막으로 아래에서 위로 순서대로 나머지에 해당하는 값을 읽으면 2진수 표현이 됩니다.
10진수 13에 대한 나머지들을 나열해보면, 1101이 되어 10진수 13은 2진수 1101임을 알 수 있습니다.
2. LINQ 기초
LINQ에는 배열이나 리스트의 값을 종합하는 함수들이 있어서 이들을 사용하면 더욱 쉽고 효율적으로 코드를 작성할 수 있습니다.
LINQ를 사용하려면 아래와 같은 코드를 스크립트에 추가해야합니다.
using System.Linq;
Max 함수
Max 함수는 배열이나 리스트의 값 중 가장 큰 값을 반환하는 함수입니다.
int[] playerScores = { 10, 20, 30 };
int maxScore = playerScores.Max();
Average 함수
Average 함수는 배열이나 리스트의 값의 평균을 구하는 함수입니다.
int[] playerScores = { 10, 20, 30 };
double averageScore = playerScores.Average();
Contains 함수
Contains 함수는 배열이나 리스트에 값이 있는지 확인하는 함수입니다.
int[] playerScores = { 10, 20, 30 };
bool hasTwenty = playerScores.Contains(20);
실습 및 응용
▶ 2차원 배열을 사용해서 랜덤 맵 생성하기
먼저 2차원 배열을 선언합니다. 그리고 씬에 배치할 큐브 프리팹과 구 프리팹을 에디터에서 받아옵니다.
int[,] mapTiles = new int[10, 10];
public GameObject cubeObject;
public GameObject sphereObject;
반복문으로 장애물 혹은 길에 해당하는 값을 랜덤하게 넣어줍니다.
for (var x = 0; x < mapTiles.GetLength(0); x++)
{
for (int y = 0; y < mapTiles.GetLength(1); y++)
{
mapTiles[x, y] = Random.value > 0.8f ? 1 : 0;
}
}
80%의 확률로 장애물로 설정합니다.
for (int x = 0; x < mapTiles.GetLength(0); x++)
{
for (int y = 0; y < mapTiles.GetLength(1); y++)
{
Instantiate(mapTiles[x, y] == 1 ? cubeModel : sphereModel, new Vector3(x, 0, y), Quaternion.identity);
}
}
구를 큐브로 바꾸고 머티리얼을 투명하게 만들어서 맵을 생성한 결과입니다.
'멋쟁이사자처럼 > 유니티 게임 개발 3기' 카테고리의 다른 글
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임 개발 3기 12일차 (0) | 2024.12.04 |
---|---|
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임 개발 3기 11일차 (0) | 2024.12.03 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임 개발 3기 9일차 (0) | 2024.11.29 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임 개발 3기 8일차 (0) | 2024.11.28 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임 개발 3기 7일차 (0) | 2024.11.27 |