일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 오큘러스
- 유니티
- 가상현실
- 팀 프로젝트
- 길건너 친구들
- 연습
- 드래곤 플라이트
- meta
- 개발
- VR
- 유니티 Json 데이터 연동
- Oculus
- meta xr
- 멀티플레이
- OVR
- CGV
- HAPTIC
- 앱 배포
- 개발일지
- 드래곤 플라이트 모작
- ChatGPT
- 팀프로젝트
- 유니티 GUI
- XR
- 모작
- 포트폴리오
- input system
- Photon Fusion
- 오브젝트 풀링
- 유니티 UI
Archives
- Today
- Total
EasyCastleUNITY
플레이어,무기,몬스터 (OOP 연습 및, 반환값, 매개변수 연습) 본문
무기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Weapon
{
//열거형식 정의
public enum eWeaponType
{
Longsword, Shortsword, Bow, Axe
}
//멤버 변수
int damage;
int price;
eWeaponType weaponType;
//무기의 공격력 및 가격 랜덤 설정
Random randomDamage = new Random();
Random randomPrice = new Random();
//생성자
public Weapon(eWeaponType weaponType)
{
this.weaponType = weaponType;
damage = randomDamage.Next(1, 9); //무기 공격력 1~9사이
price=randomPrice.Next(300, 500); //무기 가격 300~500사이
Console.WriteLine("무기({0})가 생성되었습니다", weaponType);
Console.WriteLine("데미지:{0} 가격:{1}", damage,price);
Console.WriteLine("-----------------------");
}
public int GetDamage() { return damage; }
public eWeaponType GetWeaponType()
{
return weaponType;
}
}
}
플레이어
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Player
{
//멤버 변수
string name;
int attack;
Weapon myWeapon;
//플레이어의 데미지 1~9사이에서 랜덤 결정
Random randomDamage = new Random();
//생성자
public Player()
{
attack = randomDamage.Next(1, 9);
Console.Write("플레이어의 이름을 설정해주세요.:");
name=Console.ReadLine();
Console.WriteLine("플레이어({0})가 생성되었습니다.",name);
Console.WriteLine("플레이어({0})의 현재 공격력:{1}", name, attack);
Console.WriteLine("--------------------------");
}
public void Attack(Monster monster)
{
Console.WriteLine("플레이어({0})이 몬스터({1})을 공격했습니다.", name, monster.GetMonsterName());
monster.HitDamage(this.attack);
}
public void Equip(Weapon weapon)
{
myWeapon = weapon;
Console.WriteLine("플레이어({0})이 무기({1})를 착용했습니다.", name, weapon.GetWeaponType());
attack += weapon.GetDamage();
Console.WriteLine("현재 {0}의 공격력:{1}", name, attack);
}
public int getAttack()
{
return attack;
}
}
}
몬스터
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Monster
{
//멤버 변수
string name;
int damage;
int maxHp = 12;
int hp;
//생성자
public Monster()
{
hp = maxHp;
Console.Write("몬스터의 이름을 설정해주세요.:");
name = Console.ReadLine();
Console.WriteLine("몬스터({0})가 생성되었습니다.", name);
Console.WriteLine("몬스터({0})의 현재 HP:({1})/({2})", name, hp, maxHp);
Console.WriteLine("--------------------------------");
}
//멤버 메소드
public void HitDamage(int damage)
{
this.damage = damage;
hp -= damage;
if (hp <= 0) { hp = 0; }
Console.WriteLine("몬스터 ({0})은 {1}의 데미지를 입었다!", name, damage);
Console.WriteLine("몬스터 ({0})의 현재 HP:({1})/({2})",name,hp,maxHp);
if (hp <= 0)
{
Console.WriteLine("몬스터 ({0})은 죽었다!!", name);
}
}
public string GetMonsterName()
{
return name;
}
public int GetHp() { return hp; }
}
}
앱
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class App
{
//생성자
public App()
{
//무기 타입 랜덤으로 선정
Random randomNum = new Random();
int typeNumber = randomNum.Next(0,3);
Weapon weapon = new Weapon(Weapon.eWeaponType.Longsword + typeNumber);
Player player= new Player();
Monster monster = new Monster();
player.Equip(weapon);
player.Attack(monster);
}
}
}
'C#프로그래밍' 카테고리의 다른 글
배열 연습 Inventory(정렬 안함, 정렬함 + 아이템 개수 스택) (0) | 2023.07.24 |
---|---|
2023/07/24- 클래스 및 메서드 활용 (0) | 2023.07.24 |
스타크래프트 테란 커맨드센터/SCV/SiezeTank(OOP 및 클래스 연습) (0) | 2023.07.21 |
switch if 문 (0) | 2023.07.21 |
2023/07/20 도전문제 모음 (0) | 2023.07.20 |