251209 TIL - C++ 3일차

2025. 12. 9. 21:01언리얼 7기 본캠프

오늘은 C++ 1-3강을 보며 조건문, 반복문에 대해서 다시 익히고 개념을 확실히 했음. 특히 for문을 사용하는걸 더 익히며 for문의 유용성과 실사용법 또한 제대로 익히려고 노력했음

오늘의 도전x도전 과제를 해보고싶었지만 #으로 맵 만드는것 이상으로 진도를 나갈수가 없어서 포기... 아직 수학적 사고가 부족함을 느꼈음

오늘 작성한 코드들 첨부함

 

#include <iostream>
#include <string>
#include <windows.h>
#include <cstdlib> // exit(); 사용
using namespace std;

void gameOver() { // 오답시 호출 함수
	for (int i = 0; i < 5; i++) {
		cout << "\r경고! 경고! 경고! 경고! 경고! 경고! 경고! 경고! 경고! 경고!" << flush;
		Sleep(1000);
		cout << "\r                                                              \r" << flush;
		Sleep(1000);
	}
	cout << "\r경고! 경고! 경고! 경고! 경고! 경고! 경고! 경고! 경고! 경고!" << endl;
	Sleep(1000);
	cout << "오답 확인! 오답 확인!" << endl;
	Sleep(1000);
	cout << "5초 후 컴퓨터를 강제로 포맷합니다!" << endl;
	Sleep(1000);
	for (int i = 5; i > 0; i--) {
		cout << i << "..." << endl;
		Sleep(1000);
	}
	cout << "당신의 자료가 몽땅 날아갔습니다! 안녕!" << endl;
	Sleep(1000);
	exit(0);
}


int main() {
	string answer;

	cout << "경고! 당신의 컴퓨터는 해킹당했습니다!" << endl;
	Sleep(2000);
	cout << "지금부터 제가 내는 문제 3개를 맞추지 않으면 당신의 컴퓨터는 포맷될것입니다!" << endl;
	Sleep(2000);
	cout << "준비되셨나요? 갑니다!" << endl;
	Sleep(2000);
	cout << "문제 1 : 1+1은?" << endl;
	cin >> answer;
	if (answer != "2") { // 정답과 일치하지 않을 경우만 체크
		gameOver();
	}
	cout << "정답입니다! 너무 쉬웠나요?" << endl;
	Sleep(2000);
	cout << "다음은 좀 더 어려운걸로 갑니다!" << endl;
	Sleep(2000);
	cout << "문제 2 : 98352 * 53764는?" << endl;
	cin >> answer;
	if (answer != "5287796928") {
		gameOver();
	}
	cout << "정답입니다! 달아오르고 있나요?" << endl;
	Sleep(2000);
	cout << "이제 마지막 문제입니다! 준비되셨나요? 갑니다!" << endl;
	Sleep(2000);
	cout << "문제 3 : 지금 당신이 배우고있는 언어는? 영어로 작성! " << endl;
	cin >> answer;
	if (answer != "c++" && answer != "C++") { // 복수정답 처리
		gameOver();
	}
	cout << "세 문제를 다 맞추셨네요!" << endl;
	Sleep(2000);
	cout << "사실 포맷한다는건 장난이었습니다! 해킹도 농담이에요!" << endl;
	Sleep(2000);
	cout << "그럼 좋은 하루 되세요!" << endl;
	Sleep(2000);
	return 0;
}

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

#include <iostream>
#include <string>
#include <windows.h>
#include <cstdlib>
using namespace std;

void textWrite(string input, int delay) {
	for (int i = 0; i < input.length(); i++) {
		char c = input[i];
		if (i + 2 < input.length() && c == '.' && input[i + 1] == '.' && input[i + 2] == '.') { // 전체 길이가 현재 글자 위치 + 2보다 크고, 현재 글자+다음+다다음 글자가 전부 .일때
			cout << "." << flush;
			Sleep(delay);
			cout << "." << flush;
			Sleep(delay);
			cout << "." << endl; //줄넘김
			Sleep(delay);
			i += 2; // 2개 더 나왔으니 i += 2
		}
		else if (c == ' ') { // 공백일 시
			cout << c << flush;
			Sleep(delay * 2); // 입력한 딜레이 2배
		}
		else if (c < 0 && i + 2 < input.length()) { // 입력한 언어가 영어가 아닐 시(c의 크기가 음수일 시. 이 프로그램의 경우에는 한국어 입력을 전제로 하고있음)
			cout << input[i] << input[i + 1] << input[i + 2] << flush; // 3개를 동시에 출력(한국어는 utf-8 환경에서 3바이트)
			i += 2; // 2개 더 썼으니 i += 2
			Sleep(delay); // 3개를 한번에 씀으로서 딜레이를 3번 적용하지 않고 한번만 적용할 수 있음
		}
		else { // 그 외
			cout << c << flush;
			Sleep(delay); // 일반 딜레이
		}
	}
	exit(0);
}


int main() {
	int delay;
	string input;
	cout << "출력할 텍스트를 입력해주세요. ...를 입력하면 줄넘김이 됩니다.(한국어와 영어가 아닌 입력을 할 시 오류가 날 수 있습니다)" << endl;
	getline(cin, input);
	cout << "텍스트 글자간의 딜레이를 지정해주세요. 단위는 ms이며, 정수만 입력 가능합니다. 권장값은 50 ~ 100 입니다" << endl;
	cin >> delay;
	textWrite(input, delay);
	return 0;
}

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

#include <iostream>

using namespace std;

const int TILE_EMPTY = 0;   // 빈칸
const int TILE_PLAYER = 1;   // 플레이어
const int TILE_MON1 = 2;   // 몬스터 A
const int TILE_MON2 = 3;   // 몬스터 B
const int TILE_MON3 = 4;   // 몬스터 C
const int TILE_BOSS = 5;   // 보스

const char DISP_EMPTY = '-';
const char DISP_PLAYER = 'P';
const char DISP_MON1 = 'a';
const char DISP_MON2 = 'b';
const char DISP_MON3 = 'c';
const char DISP_BOSS = 'B';

// 시야 밖(#) 은 별도로 사용
const char DISP_OUTSIDE = '#';

const int WIDTH = 20;
const int HEIGHT = 10;

int map[WIDTH * HEIGHT] =
{
    // 0행
    0,0,0,0,0,  2,0,0,0,0,  0,0,0,0,0,  0,0,0,0,0,
    // 1행
    0,0,3,0,0,  0,0,0,0,0,  0,0,0,0,4,  0,0,0,0,0,
    // 2행
    0,0,0,0,0,  0,0,2,0,0,  0,0,0,0,0,  0,0,0,0,0,
    // 3행
    0,0,0,0,0,  0,0,0,0,3,  0,0,0,0,0,  0,0,0,0,0,
    // 4행
    0,0,0,0,0,  0,0,0,1,0,  0,0,0,0,0,  0,0,2,0,0,
    // 5행
    0,0,0,0,0,  4,0,0,0,0,  0,0,0,0,0,  0,0,0,0,0,
    // 6행
    0,3,0,0,0,  0,0,0,0,0,  0,0,0,2,0,  0,0,0,0,0,
    // 7행
    0,0,0,0,0,  0,0,4,0,0,  0,0,0,0,0,  0,3,0,0,0,
    // 8행
    0,0,0,0,0,  0,0,0,0,0,  0,2,0,0,0,  0,0,0,0,0,
    // 9행
    0,0,0,0,0,  0,0,0,0,0,  0,0,0,0,0,  0,0,0,5,0,
};

void mapping() {
    for (int i = 0; i < HEIGHT; i++) {
        for (int j = 0; j < WIDTH; j++) {
            cout << DISP_OUTSIDE;
        }
        cout << endl;
    }
}

int main() {
    mapping();
    return 0;
}
#include <iostream>
using namespace std;

int main() {
	int n;
	cout << "다이아크기 입력 : ";
	cin >> n;

	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n - i; j++) {
			cout << " ";
		}
		for (int k = 1; k < i * 2; k++) {
			cout << "*";
		}
		cout << endl;
	}
	for (int i = n - 1; i >= 1; i--) {
		for (int j = 1; j <= n - i; j++) {
			cout << " ";
		}
		for (int k = 1; k < i * 2; k++) {
			cout << "*";
		}
		cout << endl;
	}
	return 0;
}