반응형
1. 클래스 생성 후 app에 호출
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class App
{
//생성자
public App() {
Console.WriteLine("app 생성자");
Mutalisk mutalisk;
mutalisk = new Mutalisk();
Console.WriteLine(mutalisk);
Hydralisk hydralisk;
hydralisk = new Hydralisk();
Console.WriteLine(hydralisk);
Dragon dragon;
dragon = new Dragon();
Console.WriteLine(dragon);
Drone drone;
drone = new Drone();
Console.WriteLine(drone);
Probe probe;
probe = new Probe();
Console.WriteLine(probe);
SCV scv = new SCV();
Console.WriteLine(scv);
Tank tank = new Tank();
Console.WriteLine(tank);
Larva larva = new Larva();
Console.WriteLine(larva);
Marine marine = new Marine();
Console.WriteLine(marine);
Commandcenter commandcenter = new Commandcenter();
Console.WriteLine(commandcenter);
}
}
}
2. 맴버 변수 및 맴버 메서드 생성 연습
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Commandcenter
{
//맴버 변수
public string name;
public float Hp;
public float damage;
public Commandcenter() {
}
//맴버 메서드
private void Hit(float damage) {
this.Hp -= damage;
Console.WriteLine("{0}가 {1} 만큼 피해를 입었습니다.",this.name, damage);
}
private void Die() {
Console.WriteLine("{0}가 터졌습니다.", this.name);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Dragon
{
//맴버 변수
int shield;
float hp;
string unitName;
public Dragon() {
}
//맴버 메서드
private void Die() {
Console.WriteLine("{0}이/가 죽었습니다.", this.unitName);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
class Drone
{
//맴버 변수
float hp;
string unitName;
public Drone() {
}
//맴버 메서드
private void GetherMineral(int amount) {
Console.WriteLine("{0}이/가 {1}의 미네랄을 모읍니다.",this.unitName,amount);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Hydralisk
{
//맴버 변수
string unitName;
float hp;
public Hydralisk() {
}
//맴버 메서드
private void Hit(float damage) {
Console.WriteLine("{0}가 피해 {1} 받았습니다", this.unitName, damage);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Larva
{
//맴버변수
string unitName;
float hp;
public Larva() {
}
//맴버 메서드
private void Eolved(string evolvedName) {
Console.WriteLine("{0}이 {1}으로 변태합니다.", this.unitName, evolvedName);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Mutalisk
{
//맴버변수
string unitName;
float hp;
//생성자
public Mutalisk() {
}
//맴버 메서드
private void Attack(Mutalisk target) {
Console.WriteLine("{0}가 {1}를/을 공격합니다",this.unitName,target);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Probe
{
//맴버 변수
string unitName;
float nowPositionX;
float nowPositionY;
public Probe() {
}
//맴버 메서드
private void Move(float positionX, float positionY) {
Console.WriteLine("{0} 가 X축으로 {1} 만큼, Y축으로 {2} 만큼 움직입니다.", this.unitName, positionX, positionY);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class SCV
{
//맴버 변수
string unitName;
float hp;
public SCV() {
}
//맴버 메서드
private void Repair(SCV target) {
Console.WriteLine("{0} 가 {1} 을/를 수리합니다.", this.unitName, target.unitName);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Tank
{
enum eTankMode
{
TankMdoe,
SiegeMode,
}
public Tank() {
}
//맴버 메서드
private void ChangeMode() {
}
}
}
-----
클래스 생성 -> 호출
클래스 내부에서 맴버 변수, 메서드 정의까지는 조금 알겠지만,
실제로 메서드를 만들고, App.cs 에서 클래스의 맴버 메서드, 변수를 자유롭게 사용하는 단계는 아직 어려움...
그 부분을 조금 더 연습을 해야겠다고 판단
// 따라서 선생님과 함께 한 예제를 천천히 파악하면서 만들어봄 (클래스 구조를 파악하는데 도움이 많이 됐음)
-----
마린 2마리 생성 -> 한 마리가 공격(체력까지 표시)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class App
{
//생성자
public App() {
Console.WriteLine("app 생성자");
Marine marine1 = new Marine();
marine1.unitName = "마린A";
marine1.damage = 20;
marine1.hp = 100;
Console.WriteLine(marine1.unitName);
Marine marine2 = new Marine();
marine2.unitName = "마린B";
marine2.damage = 20;
marine2.hp = 100;
Console.WriteLine(marine2.unitName);
for (int i = 0; i < 10; i++)
{
marine1.Attack(marine2);
if (marine2.hp <= 0)
{
break;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Marine
{
//맴버 변수 // 맴버변수도 접근하려면 public를 사용해야한다.
public string unitName;
public float hp;
public float damage;
public Marine()
{
}
//맴버 메서드
public void Attack(Marine target)
{
Console.WriteLine("{0}이(가) {1}을(를) 공격합니다.", this.unitName, target.unitName);
target.Hit(this.damage);
}
public void Hit(float damage)
{
this.hp -= damage;
Console.WriteLine("{0}이(가) 피해({1})를 받았습니다.", this.unitName, damage);
Console.WriteLine("{0}의 체력이 {1} 남았습니다.",this.unitName,this.hp);
}
public void CheckHp(float hp) {
Console.WriteLine("현재 체력은 : ({0})입니다",this.hp);
}
}
}
target.Hit(this.damage);
메서드 -> 메서드로 들어가는 부분이 처음에는 어려웠다가 차근차근 만들면서 이해가 됐습니다.
----
-미네랄 덩어리 생성
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class App
{
//생성자
public App() {
Console.WriteLine("app 생성자");
Mineral mineral = new Mineral();
mineral.amount = 5000;
int amount = mineral.GetAmount();
Console.WriteLine("현재 미네랄 덩어리 양 : {0}", amount);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study03
{
public class Mineral
{
//맴버 변수
public int amount;
public Mineral() {
}
//맴버 메서드
public int GetAmount()
{
return amount;
}
}
}
간단한 예제지만,
return 변환 하는 것을 이해하지 못해서 조금 해맸음.
반응형
'C# > 수업과제' 카테고리의 다른 글
0315_부족한 연산,문 / 클래스 생성 및 호출 공부 (0) | 2021.03.16 |
---|---|
scv _ 미네랄 캐기 (0) | 2021.03.15 |
매서드를 정의,호출 (0) | 2021.03.11 |
연산자 연습 (0) | 2021.03.09 |
변수정의 및 할당 출력 연습3 (기타 게임들 _ 8~10개) (0) | 2021.03.09 |