main
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class Program
{
static void Main(string[] args)
{
//App클래스의 인스턴스를 생성
App app = new App();
}
}
}
App
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class App
{
/*
// 문자열타입의 1차원 배열 변수 fruitNames를 정의
// 정적 문자열 배열 타입
string[] fruitNames; // 참조 형식이다.
List<string> fruitNameList; // 참조 형식이다.
// 정수형타입의 1차원 배열 변수 fruiuPrices를 정의
int[] fruiuPrices;
생성자(메서드)
public App()
{
// 배열인스턴스 생성
fruitNames = new string[3];
// 배열의 길이를 출력
Console.WriteLine($"배열의 길이 : {fruitNames.Length}");
// 리스트 인스턴스화
fruitNameList = new List<string>();
// 리스트의 길이 출력
Console.WriteLine($"리스트의 길이 : {fruitNameList.Count}");
// 요소를 추가
// 인덱스로 배열의 요소(변수)에 접근
fruitNames[0] = "수박";
fruitNames[1] = "딸기";
fruitNames[2] = "멜론";
// 요소의 값들을 출력
Console.WriteLine(fruitNames[0]);
Console.WriteLine(fruitNames[1]);
Console.WriteLine(fruitNames[2]);
// 배열의 요소들을 순회
for (int i = 0; i < fruitNames.Length; i++) // fruitNames.Length : 해당 배열의 길이 만큼 반복
{
// 요소의 값을 출력
Console.WriteLine(fruitNames[i]); // 0, 1, 2
}
// 리스트에 요소를 추가
fruitNameList.Add("오렌지");
fruitNameList.Add("사과");
fruitNameList.Add("복숭아");
fruitNameList.Add("레몬");
// 리스트의 요소 수를 출력 / fruitNameList.Count : 리스트 배열의 길이
Console.WriteLine(fruitNameList.Count); // 4
// 리스트에 요소를 제거
fruitNameList.Remove("복숭아");
// 리스트의 요소 수를 출력
Console.WriteLine(fruitNameList.Count); // 3
// 리스트의 요소의 값을 출력 (인덱스로접근)
Console.WriteLine("=> {0}", fruitNameList[0]);
// 리스트의 요소를 순회
for (int i = 0; i < fruitNameList.Count; i++)
{
Console.WriteLine($"{i}", fruitNameList[i]);
}
}
*/
// 생성자
public App()
{
Inventory inven = new Inventory();
// 아이템 생성 (검)
Item item0 = new Item(Item.WeaponType.Bow);
inven.AddItem(item0); // 값 : Item클래스의 인스턴스, 타입 : Item형식
Item item1 = new Item(Item.WeaponType.Dagger);
inven.AddItem(item1); // 값 : Item클래스의 인스턴스, 타입 : Item형식
Item item2 = new Item(Item.WeaponType.Sword);
// 인벤토리에 아이템을 추가
inven.AddItem(item2); // 값 : Item클래스의 인스턴스, 타입 : Item형식
inven.DisPlayItem();
int count = inven.GetItemCount();
Console.WriteLine($"인벤에 있는 아이템의 수 : {count}"); // 2
bool found = inven.FindItem(Item.WeaponType.Sword); // 칼을 찾고 싶다.
if(found)
{
Console.WriteLine($"칼이 있습니다.");
Item sword = inven.GetItem(Item.WeaponType.Sword);
Console.WriteLine($"칼을 가져왔습니다. : {sword}");
count = inven.GetItemCount();
Console.WriteLine($"인벤에 있는 아이템의 수 : {count}"); // 2
}else
{
Console.WriteLine("칼이 없습니다.");
}
}
}
}
Inventory
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class Inventory
{
Item[] itemNames;
//생성자
public Inventory()
{
Console.WriteLine("인벤토리가 생성되었습니다.");
// 배열의 인스턴스화
itemNames = new Item[3];
}
public int idx;
// 인벤토리의 기능
// 1. 아이템을 추가 하는 기능 메서드
// 2. AddItem
// 3. 메서드 정의 (기본형)
public void AddItem(Item item)
{
// 기능구현
itemNames[idx++] = item;
}
internal void DisPlayItem()
{
for (int i = 0; i < itemNames.Length; i++)
{
Item item = itemNames[i];
Console.WriteLine($"{item.weaponType}");
}
}
public bool FindItem(Item.WeaponType itemType)
{
for (int i = 0; i < itemNames.Length; i++)
{
Item item = itemNames[i];
if(item.weaponType == itemType)
{
return true;
}
}
return false;
}
public Item GetItem(Item.WeaponType itemType)
{
for (int i = 0; i < itemNames.Length; i++)
{
Item item = itemNames[i];
if(item.weaponType == itemType)
{
// 인벤토리에 아이템이 있던 위치(인덱스)에 null을 할당
itemNames[i] = null;
return item;
}
}
return null;
}
public int GetItemCount()
{
int count = 0;
for (int i = 0; i < itemNames.Length; i++)
{
Item item = itemNames[i];
if(item != null)
{
count++;
}
}
return count;
}
}
}
item
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class Item
{
// 상수 집합(열거형식)을 정의
public enum WeaponType
{
// 열거형색의 맴버 이름을 정의한다
// 기본이 정수형식 , 0부터 시작하며 정의된 맴버의 순서에 따라 1식 증가.
// 기본값이 0이다.
Sword,
Dagger,
Bow
}
//맴버 변수
public WeaponType weaponType;
//생성자
public Item(WeaponType weaponType)
{
// Console.WriteLine($"맴버변수 : {this.weaponType}, 매개변수 : {weaponType}");
this.weaponType = weaponType;
Console.WriteLine($"아이템{weaponType}이 생성되었습니다.");
}
}
}
'[학원 Unity] > [게임 알고리즘]' 카테고리의 다른 글
2일차 시즈탱크 / Delegate이용 (0) | 2024.08.14 |
---|---|
Delegate (대리자) (0) | 2024.08.13 |
1일차 과제(2) (0) | 2024.08.12 |
1일차 과제(1) 미완성 (0) | 2024.08.12 |
1일차 미니테스트 (0) | 2024.08.12 |