Main 메서드 [공통]
using System;
namespace LearnDotnet
{
internal class Program
{
static void Main(string[] args)
{
new App(); //new: 인스턴스 호출[값이라 변수에 넣을 수 있음]
}
}
}
1. App 클래스 [출력만]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static LearnDotnet.Weapon;
namespace LearnDotnet
{
internal class App
{
//데이터
//생성자
public App()
{
Player player = new Player("홍길동");
Weapon weapon = new Weapon(eWeaponType.AXE);
Monster monster = new Monster("고블린");
player.Equip(weapon);
player.Attack(monster);
}
//기능
}
}
1. Weapon 클래스 [출력만]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Weapon
{
public enum eWeaponType
{
AXE
}
//멤버 변수
public int damage = 5;
int price = 500;
//생성자 메서드
public Weapon(eWeaponType weapon)
{
Console.WriteLine("무기({0})가 생성되었습니다.", weapon);
Console.WriteLine("공격력 : {0}", damage);
Console.WriteLine("가격 : {0}", price);
}
//멤버 메서드
}
}
1. Player 클래스 [출력만]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static LearnDotnet.Weapon;
namespace LearnDotnet
{
internal class Player
{
//멤버 변수 : 데이터
string name;
Weapon weapon;
int damage = 3;
//생성자 메서드
public Player(string name)
{
this.name = name;
Console.WriteLine("플레이어({0})가 생성되었습니다.", name);
}
//멤버 메서드 : 기능
public void Equip(Weapon weapon)
{
this.weapon = weapon;
Console.WriteLine("{0}이 {1}를 착용했습니다.",name, eWeaponType.AXE);
}
public void Attack(Monster monster)
{
Console.WriteLine("{0}이 {1}를 공격했습니다.", name, monster.name);
int finalDamage = this.damage + this.weapon.damage;
monster.HitDamage(finalDamage);
}
}
}
1. Monster 클래스 [출력만]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Monster
{
//멤버 변수
public string name;
int hp = 50;
//생성자 메서드
public Monster(string name)
{
this.name = name;
Console.WriteLine("몬스터({0})가 생성되었습니다.", name);
}
//멤버 메서드
public void HitDamage(int damage)
{
this.hp -= damage;
Console.WriteLine("{0}이 -{1}의 데미지를 입었습니다.", name, damage);
}
}
}
2. App 클래스 [입력포함]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static LearnDotnet.Weapon;
namespace LearnDotnet
{
internal class App
{
//데이터
//생성자
public App()
{
Player player = new Player();
Weapon weapon = new Weapon(eWeaponType.AXE);
Monster monster = new Monster();
player.Equip(weapon);
player.Attack(monster);
}
//기능
}
}
2. Weapon 클래스 [입력포함]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Weapon
{
public enum eWeaponType
{
AXE
}
//멤버 변수
public int intDamage;
int price = 500;
//생성자 메서드
public Weapon(eWeaponType weapon)
{
Console.Write("무기 공격력을 입력해주세요 : ");
string damage = Console.ReadLine();
int intDamage = Convert.ToInt32(damage);
Console.WriteLine("무기({0})가 생성되었습니다.", weapon);
Console.WriteLine("공격력 : {0}", intDamage);
Console.WriteLine("가격 : {0}", price);
this.intDamage = intDamage;
}
//멤버 메서드
}
}
2. Player 클래스 [입력포함]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static LearnDotnet.Weapon;
namespace LearnDotnet
{
internal class Player
{
//멤버 변수 : 데이터
string name;
Weapon weapon;
int intDamage;
//생성자 메서드
public Player()
{
Console.Write("플레이어이름을 입력하세요: ");
string name = Console.ReadLine();
Console.Write("플레이어 공격력을 입력하세요: ");
string damage = Console.ReadLine();
int intDamage = Convert.ToInt32(damage);
Console.WriteLine("플레이어({0})가 생성되었습니다.", name);
Console.WriteLine("플레이어 공격력 : {0}", intDamage);
this.intDamage = intDamage;
this.name = name;
}
//멤버 메서드 : 기능
public void Equip(Weapon weapon)
{
this.weapon = weapon;
Console.WriteLine("{0}이 {1}를 착용했습니다.",name, eWeaponType.AXE);
}
public void Attack(Monster monster)
{
Console.WriteLine("{0}이 {1}을/를 공격했습니다.", name, monster.name);
int finalDamage = this.intDamage + this.weapon.intDamage;
monster.HitDamage(finalDamage);
}
}
}
2. Monster 클래스 [입력포함]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Monster
{
//멤버 변수
public string name;
int hp = 50;
//생성자 메서드
public Monster()
{
Console.Write("몬스터 이름을 입력하세요 : ");
string name = Console.ReadLine();
Console.WriteLine("몬스터({0})가 생성되었습니다.", name);
this.name = name;
}
//멤버 메서드
public void HitDamage(int damage)
{
this.hp -= damage;
Console.WriteLine("{0}이 -{1}의 데미지를 입었습니다.", name, damage);
}
}
}
'C#프로그래밍' 카테고리의 다른 글
저글링, 마린, 메딕 (0) | 2023.07.24 |
---|---|
저글링 vs 마린 (0) | 2023.07.21 |
this , 매개변수 있는 메서드, 매개변수도 있고 반환값도 있는 메서드, 반환값만 있는 메서드, 메서드의 종류 (0) | 2023.07.21 |
스타크래프트 유닛, 건물 (0) | 2023.07.21 |
클래스 정의[중요] (0) | 2023.07.21 |