게임 알고리즘
고블린이 홍길동에게 피해(1)을 받았습니다.
101won
2024. 8. 12. 18:09
- APP (문제, 출력부)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Media;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace HelloWorld
{
public class App
{
//생성자
public App()
{
Player player = new Player("홍길동", 10, 1);
//홍길동이 생성되었습니다.
//체력: 10/10
//공격력:1
player.Move(1, 3);
////홍길동님이 1,3 이동하였습니다.
Monster monster = new Monster("고블린", 10, 2);
////고블린이 생성되었습니다.
////체력: 10/10
////공격력: 2
player.Attack(monster);
////고블린이 홍길동에게 피해(1)을 받았습니다. 남은 체력: 9/10
}
}
}
- Player
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace HelloWorld
{
internal class Player
{
//맴버 변수
public string Name;
public int MaxHp;
public int Damage;
//생성자
public Player(string Name, int MaxHp, int Damage)
{
this.Name = Name;
this.MaxHp = MaxHp;
this.Damage = Damage;
//홍길동이 생성되었습니다.
Console.WriteLine($"{Name}이 생성되었습니다.");
//체력: 10/10
Console.WriteLine($"체력 : {MaxHp}/{MaxHp}");
//공격력:1
Console.WriteLine($"공격력 : {Damage}");
Console.WriteLine();
}
public void Move(int x, int y)
{
////홍길동님이 1,3 이동하였습니다.
Console.WriteLine($"{Name}님이 {x}, {y}으로 이동하였습니다.");
Console.WriteLine();
}
public void Attack(Monster Monster)
{
////고블린이 홍길동에게 피해(1)을 받았습니다. 남은 체력: 9/10
Console.WriteLine($"{Monster.MMonster}이 {Name}에게 피해({Damage})을 받았습니다. 남은 체력{Monster.MMaxHp-Damage}/{MaxHp}");
}
}
}
- this를 사용해 해당 매서드가 종료되어도 사용한 변수가 남아 있도록 함. >> Attack매서드에서 사용
- Monster 클래스에서 this를 사용해 저장한 이름{Monster.MMonster}, 체력{Monster.MMaxHp-...} 값을 .(닷 연산자)로 호출
- Monster
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
internal class Monster
{
public string MMonster;
public int MMaxHp;
public int MDamage;
//생성자
public Monster(string MMonster, int MMaxHp, int MDamage)
{
this.MMonster = MMonster;
this.MMaxHp = MMaxHp;
this.MDamage = MDamage;
////고블린이 생성되었습니다.
Console.WriteLine($"{MMonster}이 생성되었습니다.");
//체력: 10/10
Console.WriteLine($"체력 : {MMaxHp}/{MMaxHp}");
////공격력: 2
Console.WriteLine($"공격력 : {MDamage}");
Console.WriteLine();
}
}
}
- this를 사용해 해당 매서드가 종료되어도 사용한 변수가 남아 있도록 함. >> Attack매서드에서 사용
- 출력
? 서로 다른 클래스에 각기 선언한 변수는 이름이 같아도 상관없다!
하지만~ 햇갈리니까 따로 만드는게 나을 것 같다.