반응형
목표
연산자의 대한 이해가 아직 부족하여 조금 더 스스로 만들어보았습니다.
->
연산자와 선택문, 반복문, 구분하여 연습을 하였습니다.
-- 단순 산술 연산(복합 할당 활용)식
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study01
{
class Program
{
static void Main(string[] args)
{
string unitName = "홍길동";
string monsterName = "고블린";
int unitMaxHp = 10;
int unitHp = unitMaxHp;
int monsterdamage = 5;
int monsterLevel = 1;
Console.WriteLine("{0}이 {1}을 공격({2}) 했습니다.", monsterName, unitName, monsterdamage);
unitHp -= monsterdamage;
float per = (float)unitHp / unitMaxHp * 100f;
Console.WriteLine("{0} hp : {1} / {2} ({3}%)", unitName, unitHp, unitMaxHp,per);
Console.WriteLine("{0}이 {1}을 공격({2}) 했습니다.", monsterName, unitName, monsterdamage);
unitHp -= monsterdamage;
float per2 = (float)unitHp / unitMaxHp * 100f;
Console.WriteLine("{0} hp : {1} / {2} ({3}%)", unitName, unitHp, unitMaxHp, per2);
if (unitHp <= 0)
{
Console.WriteLine("{0}님이 사망하였습니다.", unitName);
}
}
}
}

-- 증가/증감연산자를 추가하여 레벨업 구현
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study01
{
class Program
{
static void Main(string[] args)
{
string unitName = "홍길동";
string monsterName = "고블린";
int unitMaxHp = 10;
int unitHp = unitMaxHp;
int monsterdamage = 5;
int monsterLevel = 1;
Console.WriteLine("{0}이 {1}을 공격({2}) 했습니다.", monsterName, unitName, monsterdamage);
unitHp -= monsterdamage;
float per = (float)unitHp / unitMaxHp * 100f;
Console.WriteLine("{0} hp : {1} / {2} ({3}%)", unitName, unitHp, unitMaxHp,per);
Console.WriteLine("{0}이 {1}을 공격({2}) 했습니다.", monsterName, unitName, monsterdamage);
unitHp -= monsterdamage;
float per2 = (float)unitHp / unitMaxHp * 100f;
Console.WriteLine("{0} hp : {1} / {2} ({3}%)", unitName, unitHp, unitMaxHp, per2);
if (unitHp <= 0)
{
Console.WriteLine("{0}님이 사망하였습니다.", unitName);
}
Console.WriteLine("{0}님이 레벨업을 하였습니다.", monsterName,monsterLevel++);
Console.WriteLine("{0}님의 레벨이 {1}가 되었습니다.", monsterName, monsterLevel);
}
}
}

-- 비교 연산자 (if 문까지 추가함)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study01
{
class Program
{
static void Main(string[] args)
{
//엑스칼리버는 20%의 강화 성공 확률을 가지고 있다.
//강화 확률 : xx !
//강화 성공!
//흐미! 강화 실패닷~
//현재 무기 상태
string itemName = "엑스칼리버";
int itemReinforce = 1;
Random rand = new Random();
int num = rand.Next(0, 101);
Console.WriteLine("{0}는 20%의 강화 성공 확률을 가지고 있다.", itemName);
Console.WriteLine("강화 확률 : {0} !", num);
if (num >= 20)
{
Console.WriteLine("좋아! 강화 성공!",itemReinforce++);
Console.WriteLine("현재 무기 상태 : {0} +{1}", itemName, itemReinforce);
}
else
{
Console.WriteLine("흐미! 강화 실패닷!");
Console.WriteLine("현재 무기 상태 : {0} +{1}", itemName, itemReinforce);
}
}
}
}
강화 성공 시

강화 실패 시

--부울 논리 연산자를 활용 (if문과 nested if-else 문 추가적으로 활용)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study01
{
class Program
{
static void Main(string[] args)
{
//바보 동산은 IQ가 50 이하만 들어올 수 있습니다.
//친구 A (IQ 60)와 친구 B (IQ 40)가 들어가려한다.
//직원 : 저희 동산은 똑똑한 친구와 함께 들어 올 수 없어요!
//친구 A 가 자신의 머리를 때립니다!
//친구 A 의 IQ가 10 떨어졌습니다!
//직원 : 어서오세요! 바보동산에!
int stupidWorldLimit = 50;
int userAIQ = 60;
int userBIQ = 40;
int userAdamage = 10;
Console.WriteLine("바보 동산은 IQ가 {0} 이하만 들어 올 수 있습니다.", stupidWorldLimit);
Console.WriteLine("친구 A(IQ {0})와 친구 B(IQ {1})가 들어가려고 한다.", userAIQ, userBIQ);
if (userAIQ <= 50 && userBIQ <= 50)
{
Console.WriteLine("직원 : 어서오세요! 바보 동산에!");
}
else
{
Console.WriteLine("직원 : 똑똑한 사람은 들어올 수 없어요!");
Console.WriteLine("친구 A가 자신의 머리를 때립니다!");
userAIQ -= userAdamage;
Console.WriteLine("친구 A의 IQ가 {0} 떨어졌습니다.",userAdamage);
if (userAIQ <= 50 && userBIQ <= 50)
{
Console.WriteLine("직원 : 어서오세요! 바보 동산에!");
}
else
{
Console.WriteLine("직원 : 똑똑한 사람은 들어올 수 없어요!");
}
}
}
}
}

반응형
'C# > 수업과제' 카테고리의 다른 글
클래스 생성 및 맴버 호출 (0) | 2021.03.12 |
---|---|
매서드를 정의,호출 (0) | 2021.03.11 |
변수정의 및 할당 출력 연습3 (기타 게임들 _ 8~10개) (0) | 2021.03.09 |
변수정의 및 할당 출력 연습2 (마비노기영웅전_4~7개) (0) | 2021.03.09 |
변수정의 및 할당 출력 연습1 (발로란트_1~3개) (0) | 2021.03.08 |