프로젝트/[인프런] 게임 프로그래머 입문 올인원

[게임 프로그래머 입문 올인원] 포인터와 배열 : 로또 번호 생성기 (24강)

순정법사 2023.09.07

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]);
			}
		}
	}
}

 

👉 버블 소팅 기능 자세히 공부하기

 

[정렬 알고리즘] 버블 소팅

A. 정렬 알고리즘 1. 버블 소팅 a. 버블 소팅이란? 🌟 서로 인접한 두 원소를 비교하며 리스트나 배열의 요소들을 정렬하는 방법 컴퓨터 과학 및 프로그래밍에서 사용되는 정렬 알고리즘 중 하나

monamu.tistory.com

 

위 코드까지 잘 나오는지 출력해보기

 

잘 정렬되어 나온다!

 

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;
	}
}

 

잘 된당!!

 

 

 


출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%9E%85%EB%AC%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-rookiss#curriculum

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -

어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프

www.inflearn.com