A. 로또 번호 생성기
1. 프로젝트 개요 및 설계
a. 목표
프로그램 실행 시 마다 랜덤한 6가지 수를 추출하고, 수를 오름차순으로 정렬하는 것
b. 설계
무작위의 6개 로또 번호를 생성
개발 환경 : 프로그램은 C++ 언어를 사용해 개발
2. 프로그램 구현
a. 두 수를 스왑하는 코드 작성하기
◽◽◽ 스왑 기능
//스왑하는 기능
void Swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
b. 버블 소팅 기능 작성하기
◽◽◽ 버블 소팅
//버블 소팅기능 생성
void Sort(int* numbers, int count) {
for (int i = 0; i < count; i++) {
for (int j = 0; j < count - 1 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
Swap(numbers[j], numbers[j + 1]);
}
}
}
}
👉 버블 소팅 기능 자세히 공부하기
위 코드까지 잘 나오는지 출력해보기
c. 로또 값 랜덤 추출하기
1) 먼저 main()에 랜덤 시드를 생성하고
2) 랜덤값 6개를 추출하는 코드를 작성
◽◽◽ 랜덤값 6개를 추출
void ChooseLotto(int* numbers) {
int count = 0;
while (count != 6) { //6개를 찾음
//1~45
int randValue = 1 + rand() % 45;
//이미 찾은 값 예외처리
int i;
for (i = 0; i < count; i++) {
if (numbers[i] == randValue) {
break;
}
}
//이미 찾은값이 아니라면 저장
if (i == count) {
numbers[count] = randValue;
count++;
}
}
Sort(numbers, 6);
}
d. 최종 코드 및 결과
◽◽◽ 최종 코드
#include <iostream>
using namespace std;
//스왑하는 기능
void Swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
//버블 소팅기능 생성
void Sort(int* numbers, int count) {
for (int i = 0; i < count; i++) {
for (int j = 0; j < count - 1 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
Swap(numbers[j], numbers[j + 1]);
}
}
}
}
void ChooseLotto(int* numbers) {
int count = 0;
while (count != 6) { //6개를 찾음
//1~45
int randValue = 1 + rand() % 45;
//이미 찾은 값 예외처리
int i;
for (i = 0; i < count; i++) {
if (numbers[i] == randValue) {
break;
}
}
if (i == count) {
numbers[count] = randValue;
count++;
}
}
Sort(numbers, 6);
}
int main()
{
srand((unsigned)time(0));
int lotto[6];
ChooseLotto(lotto);
for (int i = 0; i < 6; i++) {
cout << lotto[i] << endl;
}
}
'프로젝트 > [인프런] 게임 프로그래머 입문 올인원' 카테고리의 다른 글
[게임 프로그래머 입문 올인원] 동적할당과 캐스팅 : 아이템 드랍 (36강 + 38강) (0) | 2023.09.14 |
---|---|
[게임 프로그래머 입문 올인원] 포인터와 배열 : 달팽이 문제 (25강) (2) | 2023.09.07 |
[게임 프로그래머 입문 올인원] 포인터와 배열 : 배열 실습 (19강) (0) | 2023.09.06 |
[게임 프로그래머 입문 올인원] 함수와 디버깅 : TextRPG (15강) (0) | 2023.09.06 |
[인프런] 게임 프로그래머 입문 올인원 목차 (0) | 2023.09.01 |