// 문제 1번.
//int numA, numB, Result; // 입력 받을 두 수. 결과값을 저장
//cout << "숫자를 입력하세요 : " << endl;
//while (1){
// cin >> numA >> numB;
// if (numA < 0 || numB < 0){
// cout << "재입력 해라 : " << endl;
// continue;
// }
// else{
// Result = (numA > numB) ? numA - numB : numB - numA;
// cout << "결과값은 : " << Result << endl;
// break;
// }
//}
// 문제 2번
//int numA; // 스킬 선택 문자
//int enemyHP = 200;
//while (enemyHP > 0){ // 적 HP가 양수 일때까지만 반복
// cout << "0~2 스킬 골라라";
// cin >> numA;
// while (numA <= 0 || numA >= 3){ // 스킬 숫자가 0~2가 아니면 재입력
// cout << "재입력하시오 : ";
// cin >> numA;
// }
// switch (numA){
// case 0:
// cout << "50짜리 낙타 침 공격~!" << endl;
// enemyHP -= 50;
// cout << "남은 적의 피통은 " << enemyHP << "입니다." << endl;
// break;
// case 1:
// cout << "25짜리 낙타 콧바람 공격~!" << endl;
// enemyHP -= 25;
// cout << "남은 적의 피통은 " << enemyHP << "입니다." << endl;
// break;
// case 2:
// cout << "100짜리 낙타 땀 공격~!" << endl;
// enemyHP -= 100;
// cout << "남은 적의 피통은 " << enemyHP << "입니다." << endl;
// break;
// }
//}
//cout << "You Win~!" << endl;
// 랜덤~~~~
// 난수(Random Number) 란? 무작위로 만들어지는 알 수 없는 값이다.
// 패를 무작위로 섞기 위해, 적의 움직임을 미리 알 수 없도록 하기 위해 난수가 필요하다.
// rand 함수를 호출하면 0부터 32767중의 임의의 정수 하나가 리턴된다.
// rand 함수는 일정한 규칙에 따라 난수를 생성하는데 규칙이 항상 같기 때문에
// 난수가 생성되는 수선도 항상 같을 수 밖에 없다.
// 난수 생성 루틴의 규칙에 변화를 줄수 있는 srand() 라는 함수가 필요하다.
// srand()는 난수 발생기에 난수를 발생시키는 시작점(seed)를 제공하며
// 난수 발생기는 이 시작점을 기준으로 하여 난수를 발생 시킨다.
// 난수 발생기가 실해될 기점의 시간은 예측 할 수 없기 때문에 시간 값을
// 시작점으로 사용한다면 완전한 난수를 만들 수 있다.
// time 함수는 현재 시간을 나타내는 정수값을 리턴하는데
// 이 값을 시작점으로 사용하면 프로그램이 실핼될 때마다 완전한 난수를 만들수 있다.
srand(time(NULL));
// 1~10까지의 랜덤 값!!
int r = rand();
int damage = (r % 10) + 1;
cout << "rand() : " << r << endl;
cout << "데미지 : " << damage << endl;
// 랜덤값에 따라 출력 설정 가능
if (damage == 10){
cout << "맥뎀이다~!!" << endl;
}
else{
cout << "모기가 물었나?" << endl;
}
for (int i = 0; i < 10; i++){
printf("%d ", rand());
}
cout << endl;
// 배열 선언
int num[10];
int dest, sour, temp;
// dest 배열 숫자
// sour 배열 숫자
// 초기화
for (int i = 0; i < 10; i++){
num[i] = i;
}
// 출력
for (int i = 0; i < 10; i++){
cout << num[i] << endl;
}
cout << "===============================" << endl;
// 카드게임 셔플
// 섞는다~!!!!~!~!~!~!~~!
for (int i = 0; i < 10; i++){
dest = rand() % 10;
sour = rand() % 10;
cout << "i 의 값 : " << i << endl;
cout << "---------------------------------" << endl;
cout << "dest : " << dest << endl;
cout << "sour : " << sour << endl;
cout << "=================================" << endl;
temp = num[dest];
num[dest] = num[sour];
num[sour] = temp;
}
// 재출력
for (int i = 0; i < 10; i++){
cout << num[i] << endl;
}
// 공격력 랜덤 데미지(적을 랜덤 데미지로 피해를 줘보자.)
int att, enemyHP = 1000;
while (enemyHP > 0){
// 공격력 출력
cout << "==========================================" << endl;
int dam = (rand() % 200) + 100; // 민뎀 : 200 / 맥뎀 : 300
cout << "공격력 : " << dam << endl;
// 적 피 깎임
enemyHP -= dam;
cout << "피해 : " << dam << endl;
// 남은 체력 표시
if (enemyHP <= 0) enemyHP = 0;
cout << "남은 체력 : " << enemyHP << endl;
cout << "==========================================" << endl;
}
long dd1;
long long dd2;
cout << "dd1 : " << sizeof(dd1) << endl;
cout << "dd2 : " << sizeof(dd2) << endl;
return 0;
'프로그래밍 정리 > GameStudy' 카테고리의 다른 글
[GameStudy - c++] printf, scanf 서식 지정자, 특수문자, 트라이그래프 시퀀스 (0) | 2015.07.01 |
---|