유니티3D 프로그래밍
C# 2주차 2일 수업 내용 (21.03.16) 본문
데이터 참조
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class App
{
//생성자
public App()
{
//Item 배열 변수 선언
Item[] items;
//배열 인스턴스화(생성)
items = new Item[3];
//Item 객체 생성
//ItemData
ItemData data = new ItemData("장검", 20, ItemData.eItemType.WEAPON);
Item item = new Item(data);
//배열에 요소에 값 할당
items[0] = item;
//배열의 요소 출력
foreach(Item item1 in items)
{
if(item1 != null)
{
Console.WriteLine("{0}", item1.data.name);
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class ItemData
{
public enum eItemType
{
WEAPON,
ARMOR,
ACCESSORY,
POTION
}
public string name;
public eItemType itemType;
public int damage;
public int sellGold;
public int duplicateCount;
//기본 생성자
public ItemData()
{
}
public ItemData(string name, int damage, eItemType itemType)
{
this.name = name;
this.damage = damage;
this.itemType = itemType;
this.duplicateCount = 0;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class Item
{
public ItemData data;
//생성자
public Item(ItemData data)
{
this.data = data;
}
public string GetName()
{
return this.data.name;
}
public ItemData.eItemType GetItemType()
{
return this.data.itemType;
}
}
}
야채 리스트
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class App
{
//생성자
public App()
{
// Fruits배열변수 선언
Fruits[] fruits;
// 배열 인스턴스화
fruits = new Fruits[3];
// Fruits 객체 생성
FruitsData data = new FruitsData("사과");
FruitsData data1 = new FruitsData("복숭아");
FruitsData data2 = new FruitsData("수박");
Fruits fruits1 = new Fruits(data);
Fruits fruits2 = new Fruits(data1);
Fruits fruits3 = new Fruits(data2);
// 배열 요소에 추가
fruits[0] = fruits1;
fruits[1] = fruits2;
fruits[2] = fruits3;
// 배열 요소를 출력
foreach(Fruits fruits4 in fruits)
{
if(fruits4 != null)
{
Console.WriteLine("{0}", fruits4.data.GetName());
}
}
Console.WriteLine();
// 배열요소에서 이름이 "사과"인 Fruits객체를 검색
string name = null;
for(int i = 0; i < fruits.Length; i++)
{
if(fruits[i] != null && fruits[i].GetName()=="사과")
{
name = fruits[i].GetName();
break;
}
}
if (name != null)
{
Console.WriteLine("{0}을 찾았습니다.", name);
}
else
{
Console.WriteLine("{0}이/가 없습니다", name);
}
Console.WriteLine();
// 배열요소에서 이름이 "복숭아"인 Fruits객체를 삭제
for (int i = 0; i < fruits.Length; i++)
{
if (fruits[i] != null && fruits[i].GetName() == "복숭아")
{
Console.WriteLine("{0}을 삭제했습니다.", fruits[i].GetName());
fruits[i] = null;
}
}
Console.WriteLine();
foreach (Fruits fruits4 in fruits)
{
if (fruits4 != null)
{
Console.WriteLine("{0}", fruits4.data.GetName());
}
else
{
Console.WriteLine("[Enpty]");
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class Fruits
{
public FruitsData data;
//생성자
public Fruits(FruitsData data)
{
this.data = data;
}
public string GetName()
{
return data.GetName();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study00
{
public class FruitsData
{
private string name;
//기본 생성자
public FruitsData()
{
}
//Override
public FruitsData(string name)
{
this.name = name;
}
public string GetName()
{
return this.name;
}
}
}
using System;
using System.Collections;
namespace Study01
{
class App
{
//생성자
public App()
{
Console.WriteLine("App");
//ArrayList 변수 선언
ArrayList list;
//ArrayList 객체 생성
list = new ArrayList();
list.Add("사과");
list.Add(2000);
list.Add(new Item());
list.Add(1.4f);
list.Add(null);
list.Add(true);
list.Add('홍');
PrintCountAndAllElements(list);
//ArrayList의 모든 요소 제거
list.Clear();
PrintCountAndAllElements(list);
}
private void PrintCountAndAllElements(ArrayList list)
{
//ArrayList의 길이 출력
Console.WriteLine("count : {0}", list.Count);
//ArrayList의 모든 요소 출력
foreach (Object obj in list)
{
Console.WriteLine(obj);
}
}
}
}
인벤토리 리스트
using System;
using System.Collections;
using System.Collections.Generic;
namespace Study01
{
class App
{
//생성자
public App()
{
//Item
Item items = new Item("장갑", Item.eItemType.ARMOR);
//List 변수 선언
List<Item> listItems;
//타입 변수형
//List인스턴스화 + 변수에 할당
listItems = new List<Item>();
//요소 추가
listItems.Add(items);
//리스트의 요소의 수 출력
Console.WriteLine("Count : {0}", listItems.Count);
//요소 출력
Print(listItems);
//*******************************************
//List를 사용해서 인벤토리 제작
Inventory inven = new Inventory();
Item items1 = new Item("철갑옷", Item.eItemType.ARMOR);
Item items2 = new Item("천갑옷", Item.eItemType.ARMOR);
Item items3 = new Item("장화", Item.eItemType.ARMOR);
//아이템 삽입
inven.AddItem(items);
inven.AddItem(items1);
inven.AddItem(items2);
inven.AddItem(items3);
inven.Print();
//아이템 검색
Console.WriteLine();
inven.GetItem("철갑옷");
//아이템 삭제
Console.WriteLine();
inven.RemoveItem("철갑옷");
inven.Print();
Console.WriteLine();
//아이템 수정
Console.Write("바꿀 아이템의 번호를 선택하세요.");
string input = Console.ReadLine();
int input1 = Convert.ToInt32(input);
inven.Revise(input1, "체력포션", Item.eItemType.POTION);
inven.Print();
}
public void Print(List<Item> listItems)
{
Console.WriteLine("아이템의 정보 출력");
int count = 1;
foreach (Item item in listItems)
{
if(item != null)
{
Console.WriteLine("{0}. {1}({2})", count, item.GetName(), item.GetItemType());
}
else
{
Console.WriteLine("{0}. [Empty]", count);
}
count++;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study01
{
public class Inventory
{
List<Item> items = new List<Item>();
//생성자
public Inventory()
{
Console.WriteLine("Inventory");
}
public void AddItem(Item item)
{
items.Add(item);
}
public void Print()
{
int count = 1;
foreach (Item item in items)
{
if (item != null)
{
Console.WriteLine("{0}. {1}({2})", count, item.GetName(), item.GetItemType());
}
else
{
Console.WriteLine("{0}. [Empty]", count);
}
count++;
}
}
public Item GetItem(string itemName)
{
for(int i = 0; i < items.Count; i++)
{
if(items[i].GetName() == itemName)
{
Item removeItem = items[i];
Console.WriteLine("{0} 아이템을 찾았습니다.", items[i].GetName());
return removeItem;
}
}
Console.WriteLine("찾는 아이템이 없습니다.");
return null;
}
public string RemoveItem(string itemName)
{
for (int i = 0; i < items.Count; i++)
{
if (items[i].GetName() == itemName)
{
string removeItem = items[i].GetName();
Console.WriteLine("제거할 {0} 아이템을 찾았습니다.", items[i].GetName());
items.RemoveAt(i);
return removeItem;
}
}
Console.WriteLine("찾는 아이템이 없습니다.");
return null;
}
public void Revise(int index, string name, Item.eItemType eItemType)
{
Item item = new Item(name, eItemType);
items[index] = item;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study01
{
public class Item
{
public enum eItemType
{
WEAPON,
ARMOR,
ACCESSORIES,
POTION
}
public string name;
public eItemType itemType;
//생성자
public Item()
{
Console.WriteLine("Item");
}
public Item(string name, eItemType itemType)
{
this.name = name;
this.itemType = itemType;
}
public string GetName()
{
return this.name;
}
public eItemType GetItemType()
{
return this.itemType;
}
}
}
Dictionary
using System;
using System.Collections;
using System.Collections.Generic;
namespace Study01
{
class App
{
//생성자
public App()
{
//변수 선언
Dictionary<long, string> dicBooks;
//컬력션 인스턴스화
dicBooks = new Dictionary<long, string>();
//추가
dicBooks.Add(9788960906662, "그늘까지도 인생이니까");
dicBooks.Add(9791188194278, "구글 애드센스로 돈벌기");
//검색
string bookName = dicBooks[9791188194278];
Console.WriteLine(bookName);
//길이
Console.WriteLine(dicBooks.Count);
//출력
foreach(var pair in dicBooks)
{
Console.WriteLine("{0}:{1}", pair.Key, pair.Value);
}
}
}
}
책찾기
using System;
using System.Collections;
using System.Collections.Generic;
namespace Study01
{
class App
{
//생성자
public App()
{
//Dictionary 변수 선언
Dictionary<long, Book> dicBooks;
// 컬렉션 인스턴스화
dicBooks = new Dictionary<long, Book>();
//Book 객체 생성
Book book = new Book(9791188194278, "구글 애드센스로 돈벌기", 9900, "안동수", new DateTime(2021, 2, 25));
//추가
dicBooks.Add(book.GetISBN(), book);
//키로 요소 가져오기
Book foundBook = dicBooks[9791188194278];
//출력
//Console.WriteLine("{0} {1} {2}", foundBook.GetName(), foundBook.GetAuthorWithSuffix(), foundBook.GetstrPublishingDate());
foreach(KeyValuePair<long, Book> pair in dicBooks)
{
Book element = pair.Value;
Console.WriteLine("{0} {1} {2}", foundBook.GetName(), foundBook.GetAuthorWithSuffix(), foundBook.GetStrPrice());
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study01
{
class Book
{
//이름
private string name;
//ISBN (고유)
private long ISBN;
//가격
private int price;
//저자
private string author;
//출간일
private DateTime publicationDate;
//생성자
public Book(long ISBN, string name, int price, string author, DateTime publicationDate)
{
this.ISBN = ISBN;
this.name = name;
this.price = price;
this.author = author;
this.publicationDate = publicationDate;
}
public long GetISBN()
{
return this.ISBN;
}
public string GetName()
{
return this.name;
}
public int GetPrice()
{
return this.price;
}
//3자리 콤마 찍어서 price 문자열로 반환
public string GetStrPrice()
{
return String.Format("{0:#,0}", this.price);
}
public string GetAuthor()
{
return this.author;
}
//저자 뒤에 저 붙여서 반환
public string GetAuthorWithSuffix()
{
return string.Format("{0} 저", this.author);
}
public DateTime GetPublishingDate()
{
return this.publicationDate;
}
//날짜형식으로 변환해서 문자열 반환
public string GetstrPublishingDate()
{
return string.Format(this.publicationDate.ToString("yyyy.MM.dd"));
}
}
}
'C# > 수업내용' 카테고리의 다른 글
C# 2주차 4일 수업 내용 (21.03.18) (0) | 2021.03.18 |
---|---|
C# 2주차 3일 수업 내용 : 인터페이스, 상속, Dictionary(21.03.17) (0) | 2021.03.17 |
C# 2주차 1일 수업 내용 (21.03.15) (0) | 2021.03.15 |
C# 1주차 5일 수업 내용 (21.03.12) (0) | 2021.03.12 |
C# 1주차 4일 수업 내용 (21.03.11) (0) | 2021.03.11 |