반응형
경일게임아카데미 프로그래밍반 28기 3일차 수업 (21. 04. 12)
배열이란?
같은 변수, 자료형의 연속적인 나열
#include <iostream>
using namesapce std;
void main()
{
int num1[5]; // sizeof(int) == 4
num1[0] = 1; // 1000 + 4 * 0
num1[1] = 2; // 1000 + 4 * 1
num1[2] = 3; // 1000 + 4 * 2
num1[3] = 4; // 1000 + 4 * 3
num1[4] = 5; // 1000 + 4 * 4
int num2[30];
for (int i = 0; i < 30; i++)
{
num2[i] = i + 1;
}
for (int i = 0; i < 30; i++)
{
cout << num2[i] << endl;
}
}
2차원 배열 선언은 다음과 같다
#include <iostream>
using namesapce std;
void main()
{
int number1[3][3];
number1[0][0];
number1[0][1];
number1[0][2];
number1[1][0];
number1[1][1];
number1[1][2];
number1[2][0];
number1[2][1];
number1[2][2];
}
숫자야구 구현를 구현해보자.
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
// 변수 선언부
srand(time(NULL));
int Computer_Ball[3], User_Ball[3];
int Count = 1, Strike = 0, Ball = 0;
// 컴퓨터 범위 설정 (중복 제거)
for (int i = 0; i < 3; i++)
{
Computer_Ball[i] = rand() % 9 + 1;
for (int j = 0; j < i; j++)
{
if (Computer_Ball[i] == Computer_Ball[j] && i != j)
{
i--;
}
}
}
cout << "컴퓨터의 숫자는 : ";
for (int i = 0; i < 3; i++)
{
cout << Computer_Ball[i] << ' ';
}
cout << "입니다. " << endl;
while (true)
{
// 카운트 출력
cout << Count << "번째 기회입니다 : ";
// 사용자 숫자 입력
for (int i = 0; i < 3; i++)
{
cin >> User_Ball[i];
}
for (int i = 0; i < 3; i++)
{
cout << User_Ball[i] << ' ';
}
// S, B 체크
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (Computer_Ball[i] == User_Ball[j])
{
if (i == j)
{
Strike++;
}
else
{
Ball++;
}
}
}
}
// 결과 출력
if (Strike || Ball)
{
cout << "스트라이크는 : " << Strike << " 볼은 : " << Ball << endl;
}
else
{
cout << "일치하는 것이 없습니다." << endl;
}
// 승리조건
if (Strike == 3)
{
cout << "승리 !" << endl;
break;
}
// 패배 조건
if (Count == 10)
{
cout << "아웃 !" << endl;
break;
}
Count++, Strike = 0, Ball = 0;
}
return 0;
}
두 개의 변수 내의 값을 Swap 하기 위해서는 아래와 같은 방법으로 진행해야 한다.
#include <iostream>
using namesapce std;
void main()
{
int a = 3;
int b = 7;
int c;
c = a;
a = b;
b = c;
}
카드와 같이 값을 섞는 셔플 알고리즘은 아래와 같은 방법으로 진행된다.
#include <iostream>
using namesapce std;
void main()
{
int number2[10];
for (int i = 0; i < 10; i++)
{
number2[i] = i + 1;
}
// 셔플
int dest, sour, temp;
for (int i = 0; i < 100; i++)
{
dest = rand() % 10;
sour = rand() % 10;
temp = number2[dest];
number2[dest] = number2[sour];
number2[sour] = temp;
}
for (int i = 0; i < 10; i++)
{
cout << number2[i] << endl;
}
}
구조체 == 객체라고 한다.
서로 다른 변수의 집합체
구조체 = struct
#include <iostream>
using namesapce std;
struct tagUnit
{
int hp, mp;
float speed, criPer;
bool isDead;
};
void main()
{
tagUnit corona;
corona.hp = 400000;
corona.mp = 0;
corona.criPer = 50.0f;
corona.speed = 32000.f;
corona.isDead = true;
tagUnit rabbit[3];
for (int i = 0; i < 3; i++)
{
rabbit[i].hp = rand() % 50 + 20;
}
}
반응형