러닝센터 2강


==1강 총정리=====================================

#include <iostream>

using namespace std;


void main(){
//컴파일 :  소스코드를 기계어로 번역하는 작업.
//링크 : 여러개의 모듈을 하나로 연결하는 작업.
//컴파일 + 링크 => 실행파일.(어플, 게임 프로그램)

//변수 생성 : 변수(메모리),변수명(메모리주소)
//변수 => 읽기 / 쓰기
//자료형 변수명.(상수는 변하지 않는 수)
//기본 자료형(int,float,char,bool)
//커스텀 자료형 ( 클래스 ) => 기본적으로 만들수 없는 메모리 유형을 사용자가 정의해서 만드는 자료형

//정수형 변수
int hp; 
hp = 100;
//문자형 변수
char ch = 'A'; //""큰 따옴표는 사용하면 안된다 문자열 을 지칭하게 때문
//실수형 변수
float x = 10.1;

//산술 연산자 : - , + , *, / , %(나머지)
// 관계연산자 : ==(같다), != (같지않다), >, <, >=, <=
// 관계연산식 == 조건식
// 관계연산식 결과 무조건 반드시 기필고 bool 타입이다.
// 관계연산식 예 )체력이 0이하면 사망상태를 알려줘라.
bool result = (hp <= 0); // 사망상태


// 논리연산식 : 두개이상의 조건식(관계 연산식, 논리연산식)을 연결할때 사용하는 연산자.
// &&(and) 연결된 조건이 모두 참일경우  = true
// ||(or) 연결된 조건중 한개만 참일경우 = true


int swordLV = 80;
int shildLV = 50;
int armorLv = 70;
result;
result = (swordLV > 60) && (shildLV > 60) && (armorLv > 60);

// 직업이  A이면서 스킬레벨이 70이상 이거나 아이템 레벨이 80 이상이면
char job = 'A';
int skillLV = 80;
int item = 120;

result = ((job == 'A') && (skillLV > 80)) || (item = 80);
cout << result << endl;


cout << "Hello Unity!!" << endl;


}

-----------------------------------------------------------------------------------

러닝센터 2강.

- 과제 함수사용 가위바위보 게임 만들기.
- 과제 게시판 함수의 유형 찾아서 만들어보기 ( 10번 반복 )

- for문 구구단

 ==증가감 연산자=====================================

void main(){
// [증가감 연산자]
// - 변수의 값을 1만큼 감소하거나 증가할때 사용하는 연산자

// [종류]
// 1. ++변수 : 연산 전에 변수의 값을 1증가함(전위 증가 연산자)
// 2. 변수++ : 연산 후에 변수의 값을 1증가함(후위 증가 연산자)

// [특이사항]
// 1. 연산 후는 명령의 세미콜런 이후에 값을 읽었을때 부터를 의미함


// 1을 증가하는 산술 연산식
int level = 1;

cout << level++ << endl; // 값: 1 (연산 후에 변수의 값을 1증가함)
cout << level << endl;   // 값: 2
cout << ++level << endl; // 값: 3 (연산 전에 변수의 값을 1증가함)

// 1을 뻬는 산술 연산식
level = 5;
cout << level-- << endl; // 5
cout << level << endl;   // 4
cout << --level << endl; // 3

int hp = 30;
cout << "현재체력 : " << hp << endl;
hp += 30; // 30을 hp에 더해서 넣는다. / hp = hp + 30; 과 같은 /
cout << "30 충전된 체력 : " << hp << endl;
hp -= 30;// 30을 hp에 뺀다 / hp = hp - 30; 과 같은 /
cout << "30 방전된 체력 : " << hp << endl;
}


 == 제어문 ( if , else) ========================================


void main(){

//단일 if 문법 
// 문장 1;
// if ( 관계연산식 / 논리연산식 조합 => 조건식)
// {
//   // 조건식의 결과가 참일 경우에 실행될 코드
// }  
// 문장 2;


int hp = 100;
int damage = 0;

//   시드섞기
srand((unsigned int) time(NULL));

// 0~200 사이의 하나의 숫자를 데미지로 설정함
damage = rand() % 200 + 1;

// 플레이어의 체력의 데미지에 크기만큼 감소됨
/*
hp -= damage;
cout << "플레이어가 몬스터에게 " << damage << "만큼의 데미지를 입었습니다" << endl;
if (hp < damage){
cout << "데미지를 입고 죽었습니다." << endl;
}
else{
cout << "현재 체력은 " << hp <<"입니다." << endl;
}

// 두 조건은 상반관계가 아니므로  if else문으로 교체 할 수 없다.
if (hp <= 0){
cout << " 플레이어가 사망 하였습니다" << endl;
}

if (hp >= 0 && hp < 50){
cout << " 플레이어가 위험합니다." << endl;
}

// 플레이어의 공격 데미지를 랜덤하게 추출 하시오.
// 플레이어의 공격 데미지가 80~100 사이면 "크리티컬 데미지" 표시를 하고 
// 플레이어의 공격 데미지가 40~79 사이면 "빅 데미지" 표시를 하고 
// 플레이어의 공격 데미지가 20~39 사이면 "기본 데미지" 표시를 하고 
// 플레이어의 공격 데미지가 1~19 사이면 "미쓰 데미지" 표시를 하고 
// 플레이어의 공격 데미지를 맞은 몬스터의 체력도 같이 표시하고 몬스터의 기본체력은 50으로 설정 하시오
// 프로그램을 작성하시오
*/
int monHp = 60;
damage = rand() % 100 + 1;
if ((damage >= 80) && (damage <= 100)){
cout << " 플레이어가 " << damage << "공격 데미지로 [크리티컬 히트]가 발생 했습니다." << endl;
//cout << " 몬스터의 체력은 " << monHp - damage << " 입니다." << endl;
}
if ((damage >= 40) && (damage <= 79)){
cout << " 플레이어가 " << damage << "공격 데미지로 [빅 데미지 히트]가 발생 했습니다." << endl;
//cout << " 몬스터의 체력은 " << monHp - damage << " 입니다." << endl;
}
if ((damage >= 20) && (damage <= 39)){
cout << " 플레이어가 " << damage << "공격 데미지로 [기본 데미지 히트]가 발생 했습니다." << endl;
//cout << " 몬스터의 체력은 " << monHp - damage << " 입니다." << endl;
}
if ((damage >= 1) && (damage <= 19)){
cout << " 플레이어가 " << damage << "공격 데미지로 [미쓰 데미지 히트]가 발생 했습니다." << endl;
//cout << " 몬스터의 체력은 " << monHp - damage << " 입니다." << endl;
}
if (monHp < damage){
cout << "몬스터의 현재 체력은 0 입니다." << endl;
}
else{
cout << " 몬스터의 체력은 " << monHp - damage << " 입니다." << endl;
}
if (monHp > damage){
cout << " 몬스터는 생존한 상태 입니다." << endl;
}
else
{
cout << " 몬스터는 사망한 상태 입니다." << endl;
}
}

--선생님코드------------------------------------------------------------------------
  
void main()
{
    srand((unsigned int)time(NULL));
  
    // 플레이어의 공격 데미지를 랜덤하게 추출하시오. (1~100)
    int damage = rand() % 100 + 1;
    int monsterHp = 50;
  
    cout << "플레이어가 " << damage << " 데미지로 ";
    // 플레이어의 공격 데미지가 80~100 사이면 "Critical Hit!!" 표시를 하고
    if (damage >= 80 && damage <= 100) {
        cout << "Critical Hit";
    }
    if (damage >= 40 && damage <= 79) {
        cout << "Big Hit";
    }
    if (damage >= 20 && damage <= 39) {
        cout << "Normal Hit";
    }
    if (damage >= 1 && damage <= 19) {
        cout << "Miss Hit";
    }
    cout << " 가 발생했습니다." << endl;
  
    monsterHp -= damage; // monsterHp = monsterHp - damage;
  
    cout << "몬스터의 현재 채력은 " << monsterHp;
  
    // 아래 두 조건은 상반관계
    if (monsterHp <= 0) {
        cout << " 이며 사망한 상태입니다." << endl;
    }
    else { // if (monsterHp > 0) {
        cout << " 이며 아직 생존 상태입니다." << endl;
    }
}

역시 깔끔하다! 항상 코드를 줄일 수 있는 방법을 고민...
-----------------------------------------------------------------------------------------


int monHp = 60;
damage = rand() % 100 + 1;

if (damage >= 80){
cout << " 플레이어가 " << damage << "공격 데미지로 [크리티컬 히트]가 발생 했습니다." << endl;
}
else if (damage >= 40){
cout << " 플레이어가 " << damage << "공격 데미지로 [빅 데미지 히트]가 발생 했습니다." << endl;
}
else if(damage >= 20){
cout << " 플레이어가 " << damage << "공격 데미지로 [기본 데미지 히트]가 발생 했습니다." << endl;
}
else if(damage >= 1){
cout << " 플레이어가 " << damage << "공격 데미지로 [미쓰 데미지 히트]가 발생 했습니다." << endl;
}
if (monHp < damage){
cout << " 몬스터의 현재 체력은 0 입니다." << endl;
}
else{
cout << " 몬스터의 체력은 " << monHp - damage << " 입니다." << endl;
}
if (monHp > damage){
cout << " 몬스터는 생존한 상태 입니다." << endl;
}
else
{
cout << " 몬스터는 사망한 상태 입니다." << endl;
}

else if  는 상위값이 참이 아니라면 하위 값을 실행한다. 단 아래 이프문은 생략.


==가위바위보 게임==========================================
void main(){

//플레이어가 하나를 선택함 하나를 입력 받음
//가위 : 1 , 바위 : 2, 보 3

//컴퓨터가 가위바위보 중에 하나를 선택함
//플레이어와 컴퓨터간의 가위바위보를 판정함

// 승리한 유저의 이름을 표기함

// 결과
// 가위바위보 입력 >>> 1
// 플레이어가 가위를 냈습니다.
// 컴퓨터가 바위를 냈습니다.
// 플레이어는 패배 했습니다.

//시드섞기
srand((unsigned int) time(NULL));

int playerKBB;
int comKBB;
comKBB = rand() % 3 + 1;


cout << "플레이어(1:가위,2:바위,3:보) >>>";
cin >> playerKBB; // cin >> 입력받을 변수
if (playerKBB == 1){
cout << "플레이어가 [가위] 를 냈습니다." << endl;
}
else if (playerKBB == 2){
cout << "플레이어가 [바위] 를 냈습니다." << endl;
}
else{
cout << "플레이어가 [보] 를 냈습니다." << endl;
}

if (comKBB == 1){
cout << "컴퓨터가 [가위] 를 냈습니다" << endl;
}
else if (comKBB == 2){
cout << "컴퓨터가 [바위] 를 냈습니다" << endl; }
else {
cout << "컴퓨터가 [보] 를 냈습니다" << endl; }

if ((comKBB == 1) && (playerKBB == 1) || (comKBB == 2) && (playerKBB == 2) || (comKBB == 3) && (playerKBB == 3)){
cout << "컴퓨터와 플레이어가 비겼습니다" << endl;
}
else if ((comKBB == 1) && (playerKBB == 2) || (comKBB == 2) && (playerKBB == 3) || (comKBB == 3) && (playerKBB == 1)){
cout << "플레이어가 이겼습니다" << endl;
}
else{
cout << "컴퓨터가 이겼습니다" << endl;
}


}

***함수*********************************************************************************

if문 안의 if문은 && 조건이다.
연속적인 코드를 사용 할 때 => for문
비연속적인 코드를 사용 할  때  => 함수

!!! 함수 안에서 생성된 변수는 공유 할 수 없다.
!!! 함수는 호출과 정의가 있다.
!!! 정의 함수 만들기
!!! 호출 함수 호출;

void ShowKBBMessage(int playerKBB, string name){// 함수의 정의

cout << name.c_str();
if (playerKBB == 1){
cout << "가 [가위] 를 냈습니다." << endl;
}
else if (playerKBB == 2){
cout << "가 [바위] 를 냈습니다." << endl;
}
else{
cout << "가 [보] 를 냈습니다." << endl;
}
}

void main(){

//시드섞기
srand((unsigned int) time(NULL));

int playerKBB;
int comKBB;
comKBB = rand() % 3 + 1;


cout << "플레이어(1:가위,2:바위,3:보) >>>";
cin >> playerKBB; // cin >> 입력받을 변수

ShowKBBMessage(playerKBB,"컴퓨터"); // 호출
ShowKBBMessage(comKBB, "플레이어");



if ((comKBB == 1 && playerKBB == 1) || (comKBB == 2 && playerKBB == 2) || (comKBB == 3 && playerKBB == 3)){
cout << "컴퓨터와 플레이어가 비겼습니다" << endl;
}
else if ((comKBB == 1 && playerKBB == 2) || (comKBB == 2 && playerKBB == 3) || (comKBB == 3 && playerKBB == 1)){
cout << "[플레이어]가 이겼습니다" << endl;
}
else{
cout << "[컴퓨터]가 이겼습니다" << endl;
}

// 함수의 4가지 타입
// void 함수명(){ 중복코드 }
}

***************************************************************************************

댓글

이 블로그의 인기 게시물

날짜 시간 시간차 시간 계산 하기

코루틴에서 CallBack 함수 적용하기

C++ 언어 퍼센트 구하는 방법 / 기본 언어 퍼센트 구하는 방법