동구의_C# & Unity_개발일지
2024.01.11 내일배움캠프 14일차 TIL C#_ProGramming(알고리즘, C# 심화) 본문
오늘은 알고리즘 특강이 아닌 직접 문제를 풀어보았다.
알고리즘 코드카타라는 이름으로 아침 9시부터 10시까지 1시간 동안 매일 풀어야 되는 알고리즘 문제로 오늘 풀어야 될 첫 번째 문제는 매우 쉬웠다.
반복되는 연습이라는 뜻을 가진 `Kata`를 통해 매일 아침 코딩을 훈련해 보자!
알고리즘 코드카타 1일차
두 수의 차
문제 설명
정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요.
using System;
public class Solution {
public int solution(int num1, int num2) {
int answer = num1 - num2;
return answer;
}
}
개인 과제 피드백
디버깅은 프로그래머로써 꼭 익혀야 하는 필수 스킬
구현하지 못한 부분은 시간을 내어 완성해 보는 게 실력 향상에 도움
Character, Item 같은 클래스는 별도의 파일로 분리하여 구현 하는 게 코드 관리에 좋다.
일반적으로 파일1 개당 클래스 1개를 권장
일관성 있는 네이밍 규칙을 사용하여 작성
파일이나 클래스 프로퍼티 함수는 PascalCase, 필드는 camelCase 가 일반적
조건 처리할 때 단순하게 1,2,3 으로 하는것 보다 enum 으로 정의하여 처리하는 게 가독성에 좋다.
enum MenuType
{
STATUS = 1,
NVENTORY,
STORE
}
README를 잘 작성하는 습관
이력서를 제출할때 GitHub링크를 추가하는데 잘 작성된 README는 면접관에게 좋은 인상을 주며, README는 보는 사람이 쉽게 이해할수 있도록, 프로젝트 설명과 함께 스크린샷이 포함되면 좋습니다.
주말에 시간을 내서 구현을 못한 부분을 완성해 내야겠다!
팀 과제 던전 게임 만들기
static int CalculateDamage(int baseAttack)
{
Random random = new Random();
double error = Math.Ceiling(baseAttack * 0.1); // 공격력의 10% 오차, 소수점은 올림 처리
int randomValue = random.Next(-(int)error, (int)error + 1);
return baseAttack + randomValue;
}
랜덤 함수를 만들어 공격력에 10%의 오차가 나게 하는 코드이다.
static void Attack(Player player, Monster monster)
{
if (monster.IsDead())
{
Console.WriteLine("잘못된 입력입니다. 이미 죽은 몬스터를 공격할 수 없습니다.");
}
else
{
Console.WriteLine($"몬스터 {monster.Name}을(를) 공격합니다.");
int damage = CalculateDamage(player.AttackPower);
monster.TakeDamage(damage);
Console.WriteLine($"몬스터에게 {damage}의 데미지를 입혔습니다.");
if (monster.IsDead())
{
Console.WriteLine($"몬스터 {monster.Name}을(를) 처치했습니다.");
}
}
}
Player가 Moster을 공격하는 코드이다.
이미 죽은 몬스터는 공격할 수 없으며,
int damage = CalculateDamage(player.AttackPower);는 CalculateDamage 메서드를 호출하여 공격력에 오차를 가한 값을 계산한다. 이 값은 damage 변수에 저장된다.
아직 미구현이지만 공격을 하니깐 9 ~ 11 사이의 랜덤 한 데미지로 HP가 줄어들면서 0이 되면 Dead가 뜬다!
'C#' 카테고리의 다른 글
2024.01.15 내일배움캠프 16일차 TIL C#_ProGramming(알고리즘, C# 심화) (0) | 2024.01.15 |
---|---|
2024.01.12 내일배움캠프 15일차 TIL C#_ProGramming(알고리즘, C# 심화) (0) | 2024.01.12 |
2024.01.10 내일배움캠프 13일차 TIL C#_ProGramming(알고리즘, C# 심화) (0) | 2024.01.10 |
2024.01.09 내일배움캠프 12일차 TIL C#_ProGramming(알고리즘, C# 심화) (0) | 2024.01.09 |
2024.01.08 내일배움캠프 11일차 TIL C#_ProGramming(Text_Game2) (0) | 2024.01.08 |