๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ํ ๊ฒ
๊ฐ์ฅ ์ฒ์์ผ๋ก ํด์ผํ ์ผ์ด ๋ด๊ฐ ๋ญ ๋ง๋ค๊ณ ์ถ๋ค๋ ๊ฒ์ ์ ํํ ์๋ ๊ฒ.
RPG?
ํด๋์ค๋ฅผ ์ ์ธํ๋ค.
ํด๋์ค ์์ ๋ฉค๋ฒ๋ณ์ ์ ์ธํ๋ค.
ํด๋์ค ์์ ๋ฉค๋ฒํจ์ ์ ์ธํ๋ค.
ํด๋์ค ๋ช ์ธ : ์๋ชป ์ฐ๊ธฐ๋ ํ๋ค๊ฒ ๋ง๋ค์ด๋๋ผ.
๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฌด์จ ์ฝ๋๋ฅผ ์น์ด๋ ๋ด๊ฐ ์์ฑํ ํด๋์ค๋ ์ ๋์๊ฐ๊ฒ๋!
์ด๋ป๊ฒ? ๋ฉค๋ฒ ๋ณ์(์์ฑ)๋ค์ ์ธ๋ถ์์ ์ ๊ทผํ์ง ๋ชปํ๋๊ฒ ์ผ๋ฐ์ ์ผ๋ก ์ข๋ค!
RPG์ ์, ํ๋ ์ด์ด๊ฐ ๊ฐ์ง ์ ์๋ ์ธ๋ถ์ ์ธ ๋ด์ฉ๋ค(์ํ)
ex) ๊ณจ๋, ๊ฒฝํ์น, ๊ณต๊ฒฉ๋ ฅ, ๋ฐฉ์ด๋ ฅ (์ธ๋ถ ์์ฑ์ด๋ฉด์ ๋ช ์ฌ์ด๋ฉด์ ๊ฐ์ด๋ผ๋ฉด... -> ๋ฉค๋ฒ ๋ณ์๋ก ํํ ๊ฐ๋ฅ)
๋ฉค๋ฒ ๋ณ์์ ์ด๊ธฐ๊ฐ(๋ฆฌํฐ๋ด ๊ฐ)์ ๋ฃ์ด์ค ์ ์๋ค.
์ ์ธ๊ณผ ๋์์ ๊ฐ์ ๋์ ํด์ฃผ๋ ๊ฒ!
//๊ฐ๋
: ํ๋ ์ด์ด๊ฐ ์๋ค
class Player
{
//ํ๋ ์ด์ด๋ ๊ณจ๋, ๊ฒฝํ์น, ๊ณต๊ฒฉ๋ ฅ, ๋ฐฉ์ด๋ ฅ, ์ฒด๋ ฅ๋ฅผ ๊ฐ์ง๋ค.
int Gold; //๋จ์ 4๋ฐ์ดํธ ๋งํผ์ ๊ณต๊ฐ ์ฐจ์ง
int Exp;
int Att;
int Def;
int Hp;
bool isFight; //์ธ์ธ ์ ์๋ค
}
๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง๋ถํด์ผํ๋ค.
ํ๋๋์คํฌ์ ์๋ exe ํ์ผ์ ์คํํ๋ฉด
ํ๋ก๊ทธ๋จ์ ๋จ์ ์ฌ๋ผ๊ฐ๊ฒ(๋ณต์ฌ) ๋๋ค.
๋ช ์ฌ๋ ๋ฉค๋ฒ๋ณ์(ํด๋์ค ๋ด๋ถ์ ์๋ค๊ณ ํด์ ๋ฉค๋ฒ ๋ณ์), (ํจ์ ์์ ์๋ ๊ฒ์ ์ง์ญ ๋ณ์)
ํ๋์ ๋ฉค๋ฒํจ์๋ก ์ค๊ณํ๋๋ก ํ์.
RPG์ ์, ํ๋ ์ด์ด๊ฐ ์ทจํ ์ ์๋ ํ๋๋ค
ex) ์งํ์์ ์์ง์ธ๋ค, ๋ชฌ์คํฐ๋ฅผ ๊ณต๊ฒฉํ๋ค, NPC์ ๋ํํ๋ค, ์คํฌ์ ์ฌ์ฉํ๋ค.
//๊ฐ๋
: ํ๋ ์ด์ด๊ฐ ์๋ค
class Player
{
//ํ๋ ์ด์ด๋ ๊ณจ๋, ๊ฒฝํ์น, ๊ณต๊ฒฉ๋ ฅ, ๋ฐฉ์ด๋ ฅ, ์ฒด๋ ฅ๋ฅผ ๊ฐ์ง๋ค.
//์ ๊ทผ์ ํ ์ง์ ์๋ฅผ ์
๋ ฅํ์ง ์์ผ๋ฉด ๋ํดํธ๋ private์ด๋ค.
int Gold;
int Exp;
int Att;
int Def;
int Hp;
void Fight()
{
}
void Talk()
{
}
void SkillUse()
{
}
void Move()
{
}
}
*์ ๋ฆฌ*
๊ฒ์์ ๋ง๋ค๊ธฐ ์ํด์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ ๋ค.
์ฃผ์ธ๊ณต์ด ์์ผ๋ ค๋ฉด ํด๋์ค(์ค๊ณ๋)๊ฐ ์์ด์ผ ํ๋ค.
์ฃผ์ธ๊ณต์ด ์คํฏ์ด ์์ผ๋ ค๋ฉด ์ค๊ณ๋์ ๋ฉค๋ฒ๋ณ์๋ฅผ ์ถ๊ฐํด์ผํ๋ค.
์ฃผ์ธ๊ณต์ด ํ๋์ ํ๋ ค๋ฉด ์ค๊ณ๋์ ๋ฉค๋ฒํจ์๋ฅผ ์ถ๊ฐํด์ผํ๋ค.
User ์ค๊ณ๋(User๊ฐ ์ด๋ค ์ฌ์๊ณผ ๋ด์ฉ์ ๊ฐ์ก๋ค, ์ค๊ณ๋ ๋ง์ผ๋ก ์์ง ๊ฐ์ฒดํ๋๊ฑด ์๋๋ค.)
๊ฐ์ฒด์งํฅ์ ์บก์ํ ์๋ํ๋ฅผ ๋ํํ๋ ๋ฌธ๋ฒ : ์ ๊ทผ์ ํ ์ง์ ์
class User
{
//ํด๋์ค์ ๋ด๋ถ
public int Att;//ํด๋์ค ์ธ๋ถ์๋ ๊ณต๊ฐ
protected int Hp;//์์์๊ฒ๋ง ๊ณต๊ฐ
private int Def;//๋ด๋ถ์๋ง ๊ณต๊ฐ
public void Fight()
{
int Damage = 0; //์ ์ธ๋๋ ์๊ฐ ์ง์ญ๋ณ์๋ ๋ฉ๋ชจ๋ฆฌํ ๋๊ณ
}
}//๊ฒ์์์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์ฌ๊ธฐ๊น์ง ์ค๊ณํ๋ค.
//ํด๋์ค์ ์ธ๋ถ
namespace Example
{
class Program
{
static void Main(string[] args)
{
//๊ฐ์ฒดํ : ์ค๊ณ๋๋ก User๋ฅผ ๋ง๋ฌ.
//์ด๋ฆ์ newUser๋ผ๊ณ ํด๋ผ.
User NewUser = new User();
//์ด์ ์ผ User๊ฐ ํ๋ช
๋ง๋ค์ด์ง ๊ฒ์.
//๋ง๋ค์ด์ง ๊ฐ์ฒด์ ๋ด์ฉ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋
//๊ฐ์ฒด์ ์ด๋ฆ.์ ์ฌ์ฉํ๋ค.
NewUser.Att = 1000;
NewUser.Fight();
}
}
}
๋ฉค๋ฒ ํจ์ ์์ ๋ด์ฉ์ด ์ค์ํ ๊ฒ์ด ์๋๋ผ
์ธ์ ์ ์ธํ๊ณ ์ ์ ์ธํ๋์ง๋ฅผ ์์์ผ ํ๋ค.
์์ ๋ฉค๋ฒ ๋ณ์(์์ฑ)๋ค์ ์ธ๋ถ์์ ์ ๊ทผํ์ง ๋ชปํ๋๊ฒ ์ผ๋ฐ์ ์ผ๋ก ์ข๋ค!๊ณ ํ์๋ค.
ํจ์๋ ๋ณดํต ํด๋์ค ์ธ๋ถ์์ ์ํต์ ์ํด์ ๋ง๋ ๋ค.
class User
{
private int Att;
private int Hp;
public void SetHp(int _Hp)
{
//์ด ์์์ ์กฐ๊ฑด๋ฌธ์ ์ ๊ฑธ๋ฉด
//HP๊ฐ 0์ด ๋๋ ์๊ฐ๋ง ์ฒดํฌํ ์ ์๊ณ
//HP๊ฐ ์ ๋ฐ์ด ๋๋ ์๊ฐ๋ง ์ฒดํฌํ๋ ๋ฑ ๋ค์ํ๊ฒ ๋ณํ๋ฅผ ์ค ์ ์๋ค.
Hp = _Hp; //์ฌ๊ธฐ์ ๋๋ฒ๊ทธ๋ฅผ ๊ฑธ๋ฉด ํธ๋ฆฌํ๋ค.
}
}
class User
{
private int Att = 10;
private int Hp = 100;
public void LvUp()
{
Att += 100;
Hp += 1000;
}
public void SetHp(int _Hp)
{
Hp = _Hp;
}
//ํจ์๋ ๋ณดํต ์ ์ธ๊ณผ
//๋ด์ฉ์ผ๋ก ๋๋๊ฒ ๋จ
public void GetHp()
{
Console.WriteLine(Hp);
}
//์ธ๋ถ์์ int ๊ฐ์ ๋ฃ์ด์ User์๊ฒ ์ ๋ฌํ๋ค
public void Damage1(int _Dmg)
{
Hp -= _Dmg;
}
public void Damage2(int _Dmg, int _SubDmg)
{
Hp -= _Dmg;
Hp -= _SubDmg;
}
}
namespace Example
{
class Program
{
static void Main(string[] args)
{
User newUser = new User();
newUser.SetHp(0);
newUser.LvUp();
newUser.Damage1(10);
newUser.Damage2(10,20);
newUser.GetHp();
}
}
}
<์์ค ์ฝ๋ ์ ๋ฌธ๊ณผ ์ถ๋ ฅ๊ฐ>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class User
{
private int Lv = 1;
private int Att = 10;
private int Hp = 100;
public void LvUp()
{
Att += 100;
Hp += 1000;
}
//ํ๋ ์ด์ด์ ๋ ๋ฒจ์ด ์ผ๋ง์ธ์ง ์๊ณ ์ถ๋ค.
//์ธ์๊ฐ์ด ์๋๊ณ
//๋ฆฌํด๊ฐ์ ์ฌ์ฉ
//๋ฆฌํด๊ฐ์ด๋ ๊ฐ์ฒด๊ฐ ์์ ์ ์ํ๋ฅผ ์ธ๋ถ์ ์๋ ค์ฃผ๋
//์ฉ๋๋ก ์ฌ์ฉํ๋ค
//์ธ๋ถ์ ํน์ ์ํ๋ฅผ ์๋ ค์ฃผ๋ ์๊ฐ ํจ์๊ฐ ๋๋๋ค.
//return์ด๋ผ๋ ๋ฌธ์ฅ์ ์ฌ์ฉํ๋ฉด
//์ผ๋ง๋ ๋ง์ ์ฝ๋๊ฐ retunr ์๋์ ์๋ ํจ์๋ ์ข
๋ฃ!
public int GetLv()
{
return Lv;
}
public void GetHp()
{
Console.WriteLine(Hp);
}
public void SetHp(int _Hp)
{
Hp = _Hp;
}
//์ธ๋ถ์์ int ๊ฐ์ ๋ฃ์ด์ User์๊ฒ ์ ๋ฌํ๋ค
public void Damage1(int _Dmg)
{
Hp -= _Dmg;
}
public void Damage2(int _Dmg, int _SubDmg)
{
Hp -= _Dmg;
Hp -= _SubDmg;
}
//๋ฆฌํด ๊ฐ์ ์์ ์ด ๋ฆฌํดํด์ฃผ๋ ค๋ ์๋ฃํ๊ณผ
//๋์ผํ ์๋ฃํ์ด์ด์ผ ํ๋ค
public int DamageToHpReturn(int _Dmg)
{
Hp -= _Dmg;
return Hp;
}
}
namespace Example
{
class Program
{
static void Main(string[] args)
{
User newUser = new User();
newUser.SetHp(0);
newUser.LvUp();
newUser.Damage1(10);
newUser.Damage2(10, 20);
newUser.GetHp();
Console.WriteLine(newUser.GetLv());
Console.WriteLine(newUser.DamageToHpReturn(50));
}
}
}
960
1
910
'C# > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
C# ๊ฐ๋ณ๋ฐฐ์ด (0) | 2022.01.22 |
---|---|
C#(5) : ๊ฐํ์์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ๋ฐ ์ฒ๋ฆฌ vs ๋ํผ๋ฐ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ๋ฐ ์ฒ๋ฆฌ (0) | 2022.01.22 |
C#(4) : ์ฐ์ ์ฐ์ฐ์์ ํจ์ (0) | 2022.01.21 |
C#(2) os๊ฐ C#์ฝ๋๋ฅผ ์ฝ๋ ์์, ide์ ํจ๊ปํ๋ ๊ธฐ์ด ๋๋ฒ๊น f10 (0) | 2022.01.21 |
C#(1) ํด๋์ค(์ค๊ณ๋) ๋จผ์ , ๊ทธ ๋ค์ ๊ฐ์ฒด | namespace (0) | 2022.01.21 |