[240109]TIL

응징·2024년 1월 9일
0

TIL

목록 보기
12/36
post-thumbnail

알고리즘 세션 강의

리스트

데이터 낭비에 대해

만약 반복문으로 각각의 데이터에 랜덤값을 넣고싶은 경우.

 반복문
{
	랜덤 변수
	랜덤 초기화
	출력

}

위 처럼 반복문을 사용하여 랜덤 변수를 매번 초기화 해도 기능은 실행되나 랜덤 변수가 반복문 안에서 매번 생성되어 데이터 낭비가 생긴다

랜덤 변수
반복문
{
	
	랜덤 초기화
	출력

	리스트.Clear

}

이 처럼 하면 데이터 낭비를 줄일 수 있다.

LinkdList

LinkdList는 데이터 요소들이 노드로 연결된 데이터 구조이다(그래프랑 비슷한건가?)

일반 리스트에서는 배열처럼 중간에서의 삽입 또는 삭제가 발생하면 해당 위치 이후의 모든 요소를 이동시켜야 하는 낭비가 있는데 리스트에 비해 링크리스트는 노드의 링크, 즉 다음 노드와의 연결 선만 바꾸면 되기 때문에 중간 삽입 및 삭제가 효율적이다.

강의 감상

아직 나에게는 데이터 관리가 그리 중요한 문제는 아니지만 이러한 방향으로 사고 할 수 있게끔 여러 알고리즘을 접해야 할 것 같다.

팀프로젝트

Text Game 만들기 전투 구현

18조는 전투 구현 부문을 나누는 건 불가하다고 판단하여 특정 기간 내까지 필수 구현 부분중 전투 구현을 GitHub에 Brunch로 각각 관리하여 제출하기로 하였다.

배틀

public void Battle(Player player)
{
    Console.Clear();
    MonsterRend = new List<Monster>();
    RandomMobster(MonsterRend);  //몬스터 설정
    


    do
    {
        BattleStatus(player);

        Console.WriteLine("0. 취소");
        Console.WriteLine();
        Console.WriteLine("대상을 선택해주세요.");
        Console.WriteLine();
    }
    while (Isrun);
    {
        switch (Console.ReadLine())
        {
            case "0":
                player.Attack(MonsterRend[0]);  //여기까지 함
                break;
            case "1":
                break;
            case "2":
                break;
            case "3":
                break;
            default:
                ConsoleManager.RedColor("잘 못된 입력입니다 $");
                break;
        }
    }

}
  
    public void BattleStatus(Player player)
  {

      ConsoleManager.YellowColor("Battle!!");
      Console.WriteLine();
      Console.WriteLine();

      for (int i = 0; i < MonsterRend.Count; i++) 
      {
          Console.Write(i + 1.ToString() + ". [ Lv.");
          ConsoleManager.RedColor(MonsterRend[i].GetLv().ToString());
          Console.WriteLine(" " + MonsterRend[i].GetName() + " HP " + MonsterRend[i].hp.ToString() + " ]");
      }

      Console.WriteLine();

      Console.WriteLine("[내 정보]");
      Console.Write("3. Lv.");
      ConsoleManager.RedColor(player.getLevel().ToString());
      Console.WriteLine(" Char ({0})", player.getJob());
      Console.Write("HP ");
      Console.WriteLine("{0}/{1}", player.hp, player.maxhp);

  }

  void RandomMobster(List<Monster> MonsterRend)
  {
      //생성되는 몬스터 수
      Random rend = new Random();
      int MonsterNum = rend.Next(2, 5);

      //랜덤 몬스터 생성
      
      for (int i = 0; i < MonsterNum; i++)
      {
          Random r = new Random();

          MonsterRend.Add(monsters[r.Next(0, 3)]);

      }
  }
  
}

던전

&

[오늘 한 일]

배틀 시스템

  • 몬스터 소환 수 랜덤
  • 몬스터 리스트 초기화
  • 몬스터 소환
  • 몬스터 공격

[해야 할 일]

  • 몬스터 다이
  • 플레이어 실패
  • 플레이터 클리어

[시간 남으면]
Console.Clear 관리
Console.Color 관리

profile
Unity 개발 위주로 정리합니다

0개의 댓글