어서 오세요
네 이전 과제의 데모 솔루션을 제공하고자
합니다 추측과 숫자 형식 게임을 구현하는 것이었죠
코드블록을 불러오고 현재 프로젝트를
닫고 새 걸 생성하죠
이번 프로젝트는 숫자 맞히기 게임이에요
아콘솔 응용 프로그램이죠
숫자를 맞힐 거예요
이 프로젝트를 시작하기 전에 변수를 선언할
거예요
전 항상 상단에 변수를 선언하는 걸 좋아해요
하지만 난수 생성기도 사용할 거예요
그래서 몇 개가 포함됐는지 확인하려고요
스틀리브는 이미 디폴트로 들어갔어요
이제 할 일은 my time을 추가하는 거에요. 이건 무작위 숫자 생성기거든요
이건 데란섬 번호 발전기 좌석이에요
이 프로그램에서 필요한 또 다른 변수는 난수를
저장하는 거예요
네 그냥 랜덤 넘버라고 할게요 실제 라이브러리에서 가져올
때까지 0으로 초기화하겠습니다
초기화를 선언하세요
네 사용자의 추측을 저장할 변수를 생성하고 0으로
초기화하겠습니다
네 그리고 또 다른 변수를 생성할 건데요 즉,
현재 횟수를 나타내는 것입니다 즉, 최대 횟수라고
해야겠죠 최대 횟수라고 해야겠죠 최대 횟수 그리고 5로 초기화하겠습니다 5번만
추측할 수 있으니까요
시간변동도 만들어야 해요 난수 생성기로 사용할
수 있도록요
타임 T라고 할게요
네 네 입력을 요청하기 전에 가장 먼저 할 일은 난수를
생성하는 겁니다
네 사용자에게 입력을 요청한 후에 이걸 할 수도 있겠지만
처음 하는 게 더 쉬워요
네 그럼 난수 발생기를 시작할게요 여기에 주석을
달겠습니다
좋은 의미의 이름을 쓰고 들여쓰기를 꼭 하세요
제가 강의에서 말한 스랑드 기능을 쓸 거예요
씨앗으로 전달하면 돼요
서명 안 했다고 하고 t변수라고 쓸게요
get time is afunction가 현재 시간을 갖죠
T자로 지나가서 싹을 틔운 다음 끝내는 거죠
좋아요 이제 무작위 번호 생성기를 가져와야 해요 무작위 숫자를
가져오라고 할 거예요
랜드 함수에서 반환된 것에 대해 변수를
할당할 거예요
네 랜덤 넘버라고 하죠 로컬 변수와 같은 거죠 그리고 할당
연산자를 사용합니다 랜드라고 하죠 함수를 호출하는 거죠
이런 건 몰라도 되지만 21을 넣을 거예요
그럼 제 랜덤 인구가 0에서 20 사이일 거예요
네 이제 화면에 메시지를 출력해서 사용자가 상황을
알 수 있게 할게요
저는 프린트 앱을 할 건데 이건 그냥 맞히기 게임이에요
네 그런 다음 0부터 20 사이의
숫자를 다시 선택했다고 알려줍니다 알려주는 거죠
그리고 0과 20은 대사로 마무리해야 해요
게임에서 뭘 원하는지 말했으니 루핑을 시작할게요
제 숫자가 5가 될 때까지 반복할 거예요
네 그래서 제가 하고 싶은 건 여기서 제 추측을 지우고
싶지만 초기화하고 싶진 않아요
루프저스티스로 초기화해서 할 수 있다는 걸 보여드릴게요
저기서 초기화했다면 for 루프의 첫 번째 세미콜론 전에 비어있게
할 수 있어요
예를 들어 이런 걸 할 수 있죠 여기서 초기화해요
그런 다음 for 루프에서 세미콜론을 넣을게요 초기화를
할 필요는 없으니까요
왜냐하면 기억하세요 for 루프에서
세미콜론 전에 가장 먼저 있는 건 루프 컨트롤 변수의 초기화예요
이미 잇소라고 초기화했죠 할 필요는
없지만 하고 싶지 않아요
위쪽은 선언하고 아래쪽은 초기화할
거예요
최대한 많이 맞힌 사람이 5명이라고 할게요
루프 컨트롤 변수죠 초기화할 거예요
답을 최대한 많이 맞히면 듈룹에서 뛰어내릴
거예요
여기선 다른 식으로 쓴 것 같아요
루프가 5에서 0으로 갈 수 있도록 작성할 거예요
제 최대 숫자는 5예요
이 변수에 토레이라고 이름 붙이는 게 좋겠어요
이름을 바꿔서 추측해 보죠
추측 점수는 5점부터 시작할 거예요
이걸 뒤로 돌릴 거예요
점수가 0이 되면 루프 밖으로 나가죠
루프 종료 조건에서 추측 개수가 0보다
크다고 할게요
어떻게 하는지 보세요
더 이상 추측할 게 없으면 뛰어내릴 거예요
0이 넘으면 루프 안에 머물러야 해요
네 그리고 for 루프에서 두 번째 기후콜론 이후 마지막으로
제공하고 싶은 것은 루프 컨트롤 변수의 수정이에요
그래서 아미누스 숫자는 몇 개 빼려고 해요
이 반복문에서 아셔야 할 것은 제가 시작했다는
거죠 거의 뒤로 가고 있어요
5에서 시작해서 0으로 갈 거예요
구동축에서 제공하는 모든 예는 0에서 시작해서 올라가죠
하지만 둘 다 할 수 있어요
여기서 5번 반복해야 해요
이제 아메사지를 전시해서 몇 번의 기회가
남았는지 알려주고 싶어요
네 printf라고 입력하고 사실 여기 tnary 운용자를 포함할
거예요 사용한 적이 없으니까요
네 그렇군요 이렇게 할 필요는 없지만 이렇게 할 거예요
제4 연산자를 어떻게 쓰는지 보여드릴게요
이제 %d를 출력해서 %를 남길 거예요
%d는 추측 횟수를 양극화하고 TR%s는
바뀔 거예요
트라이어도 되고 트라이어도 돼요
몇 개의 추측이 남았는지에 따라 표시된
것을 바꿀게요
손님이 1명일 경우에요
계획을 세우고 싶지 않아요 왼쪽이 하나인데 이건 말이 안 돼요
한 번만 프린트해 주세요
여기에서는 보통 연산자를 사용하겠습니다. 좀 더 정확하게는 조건부
연산자를 사용할게요.
네 이렇게 할 거예요 점수가 1과 같으면 점수가 y와 같으면
IES로 설정해요
%s가 하는 일을 출력할 거예요 여기 반환된
게 뭐든 간에요
이렇게 y와 IES를 반환하고 올바른 정보를 표시하죠
네 그냥 멋지게 하려고 한 거예요 단말기 사용법을
보여드리고 올바른 정보를 프린트하세요
마지막에 도전 횟수를 출력한 다음에 맞히라고
할 거예요
네 그래서 정보를 입력하고
printf를 입력합니다 추측을 입력하면 라인 피드가 나오죠
네 추측을 입력하고 Scanf를 이용해 그 추측을 읽을 거예요 키보드로 읽을
수 있어요
네 이건 정수니까 %d를 입력하고 추측 변수에
넣을 거예요
ampersand를 써야 해요
이제 확인해야 해요
제 추측이 맞는지 확인해야 해요
다른 출구 상황이에요
if문을 사용할 거예요
만약 손님이 제 난수와 같다면 어떻게 해야 할까요?
먼저 출력해서 잘 맞혔다고 말해주고
싶어요
그럼 출력할게요 축하해요, 맞히셨네요
정확히 맞히려면 또 뭘 해야 할까요?
루프를 벗어나고 싶어요
루프를 어떻게 빠져나올까요?
브레이크 걸게요
그 점프 루프에서 벗어날 수 있어요
만약 등호가 아니라면 soI는 else if를 추가하죠
등호가 아니라면 토마케를 확인해서 번호를 확인해야죠
네 앞서 말했듯이 유효성 검사를 위해 중첩된 루프를 사용할 수 있어요
다시 들어갈 수 있도록요 그럴 필요 없어요 그냥 f문을
가지세요
숫자의 유효성을 검사하고 싶어요
데란섬 수와 같지 않다면 0에서
20 사이여야 해요
네 추측이 0보다 작거나 논리 연산자나
2 평행 막대를 사용하거나 추측이 20보다 크면 잘못된
추측을 확인하는 거죠
네 네 만약 케이스라면 괄호를 사용하지 않겠습니다 여기에 한 개의
구문이 있기 때문입니다 괄호는 한 개의 구문이라면 선택입니다
무효한 추측을 입력하면 printf만 하면 돼요
숫자를 출력할게요 0에서 20 사이라고 했죠?
여기서 일어나는 일은 아무것도 아니에요
그냥 프린트해서 다음
반복으로 갈 거예요
남은 시간이 얼마인지 알려주고 추측을
할 거예요
네 네 이제 여러분이 유효한 숫자를 원하지 않는다면
추측이 아닌 유효한 숫자를 입력하면 중첩 루프가 되죠
하지만 25라고 입력해도 여전히 추측으로 인정되죠
0에서 20 사이로 설정할게요
유효한 numberbut를 입력했는데 그게 틀렸다면 else
절이 되겠죠
네 그냥 잘못 걸었다고 하고 액수가 더 큰지
적은지 말해 줄 거예요
여기서 생체조종기를 쓸 수도 있지만 안 쓸 거예요
여기에 if를 추가할게요
무작위가 더 큰 손님이라면 뭘 싣겠어요?
%d를 출력하고 싶어요 %d가 추측하는 거죠
퍼센트 s가 첫 번째 단어예요
랜덤이 크면 제 숫자도 크고요
제 숫자는 그것보다 커요 백분위도
사용 안 하고 라인 피드만 있죠
만약 랜덤 숫자가 추측보다 적으면 더 낮다고 말해주고 싶어요
그래서 똑같이 복사하고 파스팅할 수 있죠
숫자가 틀렸다고 할 수도 있죠 제 숫자는 그것보다 작아요
이 2개의 else if를 실제로 처리하실 수 있어요
다른 if를 가질 수도 있고
여기에 조건문을 만들 수도 있어요
네 4행 연산자도 있지만 2행 연산자를 쓸게요 ifs를 써서 그것보다
적다고 하죠
그럼 끝이죠 루프를 끝낼 거예요
네 루프 밖으로 나갔는데 제대로 못 맞혔거나
시도 횟수를 초과하면 다섯 번 시도했는데
못 맞혔다고 할 거예요 그럼 숫자를 알려 줘야죠
네 사용자에게 마지막 결과물을 보내서 게임에서 이기지 못했다고 알려주고 숫자가
무엇인지 알려줍니다
다섯 번 시도했는데 실패했고 숫자는 무작위였어요
이해가 되세요?
많은 걸 하고 있어요
if문과 elsestatement를 루프에 사용하고 숫자 게임을
구현하고 있어요
마지막은 주요 함수에서 뒤집히는 거예요
네 그럼 컴파일해 보죠 이 훈련 내내
뭘 해야 할까요?
작은 규모로 시험 운전을 했어야죠
네 먼저 일을 시작하셨어야죠 임의로 계산한
다음 테스트하고 컴파일하고 테스트하세요
그럼 루프를 시작해요
네 네 추측 개수만 최대 5번으로 루프가 실행되도록 하세요 그런 다음 작동시키고
테스트하세요
그런 다음 사용자에게 응답하는 정보를 물어 작동시키고
테스트하세요
그리고 퇴장 시기와 비교합니다 상대의 추측이 맞으면 테스트를 하고 if문을 작성하세요
테스트, 저라면 그렇게 실행할 겁니다
이걸 만들어서 컴파일되는지 보죠
실수 안 했길 바라요
빌드라고 할게요
오류가 있네요 번호가 잘못됐어요
임의의 숫자가 되어야 합니다 임의는 변수의 이름이기
때문이죠
이번엔 에러0이 2개예요
a%dex펙트가 일치하는 int가 있어요.
강령의 숫자를 말하는 건지 추측하는 건지 까먹었어요
여기랑 테그스 그리고 또 한 명요
네 그 추측이 틀렸다는 걸 알려주고 싶어요 그 추측이 틀렸다는 걸요 이럴
필요는 없지만 작은 성의 표시예요
당신이 경고를 고치길 원하니 그걸 짓자고요
경고문은 0, 오류는 0이어야 해요
이걸 실행할 때 테스트해야 해요
다양한 테스트 케이스를 실행해야 해요
여러 개의 테스트 케이스를 실행해야 합니다 하나만 테스트하는 것은
좋지 않기 때문이죠
이렇게 쓰여 있어요 이건 맞히기 게임이에요 제가
0부터 20 사이의 숫자를 골랐으니 맞혀 보세요 5번 남았습니다
16개를 넣을 거예요
16은 틀렸고 잠은 그보다 적어요
8로 해 볼게요
8도 안 돼요
4개를 만들 거예요
4는 틀렸어요 내 숫자가 더 커요
실수했네요 먼저 읽지 않았어요
8보다 크군요
12번으로 해보죠
두 번밖에 안 남았어요
12로 시작하는 것 같아요
축하한다고 쓰여 있네요
하지만 실패를 시험하고 싶기도 하죠
네 몇 가지를 테스트해야 하는데 제가 테스트해
볼게요 제 추측대로 0을 입력할게요
0은 틀렸어요
계속 0을 입력했는데 5번은 틀렸나 봐요
다섯 번 시도했는데 실패했대요
당신이 말한 숫자는 3이었어요
잘 작동하네요
유효하지 않은 숫자를 입력하면 어떻게 되는지 확인해 보죠
45를 입력하면요
0과 20이라고 했잖아요
이건 또 다른 시험 사례고 시도한 거로 칠게요
해당 계정이 atry이길 원치 않으면 중첩 루프를 가질 수 있죠
그게 다인 것 같아요
모든 사례를 검사했어요
선생님 예상이 적중했던 사례를 전부 검사했어요
추측에 실패한 사례를 검사해 봤는데요
당신이 유효하지 않은 번호를 입력한 사건도 검사했어요
아마도 다른 테스트는 그것보다 크거나 작다고 나오는지 확인하는 것뿐일 거예요 첫 번째
테스트에서 했던 것 같은데 실제로
그것보다 작거나 크다고 나오죠
한번 해 보죠
그래서 이번엔 20을 입력하면 보다 적게 좋다고 나오죠
이제 10번을 입력할게요 제가 맞혔어요
빠른가 봐요
하지만 같은 출력에서 보다 적은 수의 객체를 볼 수 있죠
네 다시 해보세요 랜덤 숫자가 작동합니다 프로그램을 실행할
때마다 다른 숫자를 생성하니까요
20은 틀렸어요
이제 19번으로 해보죠
1번으로 해보죠 그것보다 더 강력해요
그래서 크기와 작음을 볼 수 있죠
잘 작동하는 것 같아요
괜찮아 보이는데요
알아채셨어야 해요 프로그램에 작은 버그가 있었어요
널 시험한 거야
네 실행했을 때∙∙∙ 여기 브레이크가 있으니까요 여전히 제가 실패했다는
걸 프린트할 겁니다 성공했을 때도요
이전 출력에서 제대로 된 숫자를
보셨을 거예요
프린트까지 했어요, 축하해요
하지만 틀리게 인쇄하는 건 옳지 않은 것 같아요
그 문제를 해결하려면 돌파구를 찾지 말고
수익을 내야 해요
이제 그게 반환되면 여러분이 이겨도
39번째 줄에서 출력되지 않죠
실패했다고 프린트되지 않아요
마지막 테스트입니다 마지막 테스트예요 아까 알아챘어야
했는데 빌드하고 정확하게 추측하면 오류가 표시되지 않아요
실행을 저장할 수 있고 실행을 할 때 5개의 추측이 있어요.
10개요, 그것보다 적죠
6이라고 했는데 제가 맞혔어요
저기 축하한다고 쓰여 있는 게 보이시죠
실패했다는 추가 결과가 안 나왔네요
30번째 줄에서 반환되는지 확인하세요 그래야 프로그램이
제대로 실행되니까요
원하면 if문을 추가할 수도 있어요 그럼 프린트
안 되죠 printf는 여기에서 휴식을 가질 수 있고 printf에서
얼마나 많은 추측을 했는지 확인할 수 있습니다 또한 결정해야 합니다 5점 미만이면
축하드립니다
하지만 버그가 있네요 테스트할 때 보셨듯이
반환되면 고칠 수 있을 거예요
멋진 프로그램이죠
네 이번 강의로 루핑과 의사 결정문 문제 해결에
대해 많이 배우셨으면 좋겠네요
네 네 코드를 작성하기 전에 이걸 디자인했으면
좋겠네요 늘 중요하죠
도움이 됐으면 좋겠네요
소스 코드를 제공할 테니 비교해서 분석해 보세요
고마워요