본문 바로가기

분류 전체보기

(236)
C++ 배우기 9(함수) 저번에 코딩했던 Low High Seven 게임에 함수를 사용한다면 좀 더 효율젹인 코드로 바꿀 수 있다. 따라서 이번에는 함수를 배우도록 하겠다. 함수(function) 일반적인 수학의 함수와 비슷한 느낌으로 생각할 수 있다. 위 사진과 같이, f(x)함수에 a라는 값이 입력되면 f(a)의 값이 반환되는 것이다. 이는 프로그래밍의 함수에서도 똑같은 역할을 해준다. 우선 함수의 선언 방법부터 알아보자. 반환형은 우리가 앞서 배웠던 자료형 중 하나를 말한다. 위의 예시에서는 int를 넣었으므로 반환되는 값이 무조건 정수라는 것을 알 수 있다. 콜네임은 변수 이름 짓듯이 하면 되는데, 일반적인 변수들과 헷갈리지 않도록 잘 구분짓는게 좋다. 그래서 보통 함수 이름의 앞글자는 대문자로 표시하기도 한다. 매개변수..
슬라이드 게임 함수를 사용해서 좀 더 효율적으로 바꿀 수 있을 것 같은데... 감이 안 잡힌다...ㅠㅠ #include #include #include using namespace std; int temp; int numb[25]; void SHUFFLE() { for (int i = 0; i < 100; i++) { int num1 = rand() % 25; int num2 = rand() % 25; if (numb[num1] == 0) { temp = numb[24]; numb[24] = numb[num1]; numb[num1] = temp; } else if (numb[num2] == 0) { temp = numb[24]; numb[24] = numb[num2]; numb[num2] = temp; } else {..
C++ 배우기 8(ASCII코드, 문자열, 구조체) 문자형(char) 이번에는 자료형 중 하나인 문자형 char에 대해서 알아보겠다. 앞서 배웠듯이 문자형 char의 크기는 1byte = 8bit 정도이다. char a; //선언 a = 'A'; //정의 cout
C++ 배우기 8(enum, Switch) ENUM enum ABC { a, b, c }; enumerate의 줄임말로, 열거형이라고 하며, 이것도 자료형이라고 할 수 있다. 정수만 취급하는 특징을 가지고 있다. 선언 방식은 기존의 변수 선언방식과 비슷하다고 보면 된다.(type callname 형식) 위와 같이 안에 각각 변수를 만들었다. 값을 넣어주지 않아도 앞에서부터 차례대로 0, 1, 2, 3 순의 정수가 들어가게 된다. 위 사진과 같이 중간에 특정값을 대입하면, 처음 a, b에는 0, 1이 들어가다 c, d는 15, 16 순으로 정수가 들어간다. 즉, 중간에 특정값을 대입하면 그 뒤로는 특정값의 증감한 값들이 차례대로 들어간다. 이러한 성질을 잘 기억하고 나중에 사용할 때 유의하면 되겠다. Switch switch(특정값) { case ..
Low High Seven 게임 기존의 월남뽕 게임에서 조금 변환한 느낌인데, 다른 점이라면 11, 12, 13 출력 시 J, Q, K로 나온다는 점이다. 숫자를 문자로 바꿔서 출력시켜야하는 부분에서 정말 많은 고민이 있었다...ㅠㅠ #include #include //setw를 사용하기 위해 선언 #include using namespace std; int main() { srand(time(NULL)); int deck[52]; int money = 10000, betting, count = 0, input; //카드 덱 만들기 for (int i = 0; i < 4; i++) { for (int j = 0; j < 13; j++) { deck[i * 13 + j] = j + 1; } } restart: //재시작 시, 코드의 시작..
C++ 배우기 7(지시자break / continue, 형변환) 지시자 break / continue 반복문에서 특정한 명령을 지시하는 역할을 한다. 그중에서 break와 continue를 알아보자. break는 말 그대로 부신다는 뜻으로, 현재 위치한 반복문을 더 이상 반복하지 않고 바로 탈출하도록 해준다. 위와 같이 for 반복문 안에서 특정 조건에 만족할 때에 break가 걸리도록 하였다. 처음 i = 0 일 때에 한번 반복되고 증감되어 i = 1이 되면 조건에 만족하여 break로 탈출한다. continue는 바로 밑에 있는 코드들을 모두 건너뛰고 다시 처음부터 반복하도록 해준다. 위와 같이 for 반복문 안에 사용할 수 있다. break는 그 즉시 반복문이 종료되지만, continue는 한번 건너뛰고 다시 반복시킨다는 점이 둘의 중요한 차이점이라고 할 수 있..
월남뽕 게임 살면서 처음으로 월남뽕이라는 게임을 알게 되었다... 원래는 화투로 하는 게임이지만, 트럼프 카드를 사용하여하는 게임으로 코드를 만들어봤다. 처음에 너무 어렵게 생각해서인지 만드는데 좀 오래 걸리긴 했다....ㅎㅎ;; 빌드하고 실행해보면서 느낀 점인데, 이기는 횟수보다 지는 횟수가 더 많은 것 같다. 이래서 도박은 돈만 잃는 짓이라는 걸까??... #include #include using namespace std; int main() { srand(time(NULL)); int card[52]; //카드덱 int money = 50000, coin; //소지금, 배팅금 int index = 0; //배열 index값 조절용 변수 int low, high;//카드 2장 중 크고 작은 것 구분할 변수 cout
C++ 배우기 6(이중for문, 스왑, 셔플) 이중 for 문 for(int i = 0; i < 5; i++) { for(int j = 0; j < 5; j++) { } } 앞서 이중 for문을 사용하여 로또번호 자동 생성기를 좀 더 효율적으로 코딩할 수 있었다. 이중 for문이란, 말 그대로 for문 안에 for문을 넣어 이중으로 사용한다는 뜻이다. 그리고 이중 for문하면 떠오르는 바로 그것, '별 찍기'이다. 마침 오늘 숙제 중 하나가 별 찍기여서 조금 어려웠었다...ㅎㅎ;; 셔플 알고리즘 앞서 우리는 랜덤 한 값을 넣기 위해서 랜덤함수를 사용했었다. 하지만 랜덤함수에는 중복된 값이 가끔 나올때가 있었는데, 이 셔플 알고리즘을 사용하면 중복되는 값 없이, 랜덤한 값을 나타낼 수 있다. 우선 셔플은 우리가 알던 카드를 섞는 그런 행위를 일컫는 말..