Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 화살피하기
- rendermonkey
- 언리얼
- 3차원배열
- 셰이더
- 이득우언리얼
- 유니티
- 게임만들기
- 그림자 효과
- 화살표 함수
- 화살표 메서드
- 이득우
- IMGUI
- 비주얼스튜디오
- 가변배열
- swipe
- 배열문제
- c#
- visualstudio2022
- c++class
- 공부
- 다중상속
- 표창던지기
- 렌더몽키
- premake5
- C++
- Unity
- 파이썬
- python
- uidesign
Archives
- Today
- Total
신입 개발자 공부 과정
12/30 수업 스타크래프트 부대지정 본문
메서드
배열 하고
매개변수
Q1.
스타크래프트 부대지정 마린 3마리를 생성한다 각 마린의 이름은 고유하다 ex)홍길동, 임꺽정, 장길산 ... 마린 3마리를 부대지정한다 부대 지정한 마린 3마리의 이름을 출력한다
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace starcraft
{
class Program
{
static void Main(string[] args)
{
Marine marine1 = new Marine("홍길동");
Marine marine2 = new Marine("철수철수");
Marine marine3 = new Marine("돌쇠");
MarineGroup group = new MarineGroup();
//MarineGroup인스턴스가 만들어지고
//Marine 타입의 배열 인스턴스가 만들어지고
//배열에는 12개의 null이 들어가있는 상황
group.AddMarine(marine1); //한마리를 넣을라고 한다
//배열의 0번째 인덱스에 넣어야 한다
group.AddMarine(marine2); //인덱스 1에 들어갈것이다
group.AddMarine(marine3); //인덱스 2에 들어갈것이다
//group.AddMarine(marine2);
//group.AddMarine(marine3);
//int count = group.GetMarineCount();
//Console.WriteLine(count);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace starcraft
{
class Marine
{
public string name;
//생성자
public Marine(string name)
{
this.name = name;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace starcraft
{
class MarineGroup
{
private const int MAX_COUNT = 12;
private Marine[] marines;
private int x = 0;
//생성자
public MarineGroup()
{
this.marines = new Marine[MAX_COUNT]; //배열 marines에 그루핑 한다
//타입, 클래스 잘몰라요... <--- 클래스를 공부하세요
//배열에는 어떤 값이 들어있을까...?
//[0] : null
//[1] : null
//[2] : null
//...
//[11] : null
//Why? : marines (Marine타입 들어갈수 있는 배열 인스턴스)
//[0] ... [11] <---- 들어갈수 있는 타입은 Marine 타입
//Marine 타입은 클래스
//클래스는 참조형식
//모든 참조형식의 기본값은 null
}
public int GetMarineCount() //카운트가 계속 안되고 있습니다 네
{
int count = 0;
for(int n = 0; n<this.marines.Length; n++)
{
if(this.marines[n] != null)
{
count++;
}
}
return count;
}
//마린 한마리를 매개변수로 받아서 배열에 넣는 메서드
//메서드 매개변수, 배열 공부하세요
int index = 0; //매서드가 호출될때마다 index의 값이 0으로 초기화 되기 때문에
public void AddMarine(Marine marine)
{
if (this.index > this.marines.Length - 1)
{
Console.WriteLine("더이상 넣을수 없습니다.");
}
else
{
this.marines[index] = marine;//배열에다가 넣어야 한다
//인덱스가 변해야 한다 (변수)
Console.WriteLine("현재 인덱스 : {0}, 마지막 인덱스 : {1}", this.index, this.marines.Length - 1);
index++;
}
//배열의 인덱스는 마린을 넣을때마다 1씩 증가 되어야 하며
//최대 12마리까지 넣을수 있음으로
//(배열의 길이 - 1) : 배열의 마지막 인덱스
//배열의 마지막 인덱스 까지만 증가시켜야 한다 (배열의 마지막 인덱스 : 11)
//if(this.marines != null)
//{
// for(int n=0; n<)//뭐가 문제인가요? 네
// this.marines[x] = marine;// 잠시만요
// Console.WriteLine("{0}이(가) 추가되었습니다.", marine.name);
//}
}
}
}
Q2.
Enum을 사용해서 UnityType을 정의하세요
유닛 타입은 MARINE과 MEDIC 이 있습니다
GetUnitCount(): 그룹에 속한 모든 유닛의 갯수 (마린과 메딕)
GetMarines() : 그룹에 속한 모든 마린들만
GetMedics() : 그룹에 속한 모든 메딕들만
PrintAllUnits() : 다음과 같이 출력 될수 있도록
ex)
유닛의 타입 : MARINE, 유닛 이름 : 홍길동
유닛의 타입 : MARINE, 유닛 이름 : 임꺽정
유닛의 타입 : MARINE, 유닛 이름 : 장길산
유닛의 타입 : MEDIC, 유닛 이름 : 또치
유닛의 타입 : MEDIC, 유닛 이름 : 둘리
------------------------
모르는 부분
-get set 접근자 42강
속성에 접근자를 사용하여 값을 설정하거나 가져오는 기능
class Car
{
private string name;
public string Name
{
get
{
reutrn name;
}
set
{
name = value;
}
}
}
-업캐스팅
인스턴스 타입을 파생 클래스 타입에서 기본 클래스 타입으로 변환하는 방법
TerranUnit unit = new Marine();
-다운캐스팅(명시적)
인스턴스 타입을 기본 클래스 타입에서 파생 클래스 타입으로 변환하는 방법
Marine marine = (Marine)unit;
'C# > 수업 내용' 카테고리의 다른 글
Delegate 대리자1 (0) | 2022.01.04 |
---|---|
1월3일 인벤3 (0) | 2022.01.03 |
12/29수업 item + inventory (0) | 2021.12.29 |
모르는 부분들 다차원 배열 과 가변배열, 제네릭 리스트 List<T>, 컬렉션Collection (0) | 2021.12.29 |
벌쳐 (마인) vs 질럿 연습 문제 12/28 (0) | 2021.12.29 |