아요 개발 일기

[iOS] 구구단 게임을 만들어보자! 본문

iOS/뚝딱뚝딱 🛠️

[iOS] 구구단 게임을 만들어보자!

소진이 2023. 1. 6. 17:32

안녕하세요~~@.@

오늘은 구구단 게임을 만들어보겠습니다!!!! 

모든 언어에서 기초 시작할때는 구구단 게임을 항상 만드는 것 같아요 ㅋㅋㅋㅋㅋㅋ

시작해보겠습니다 !!


먼저 실행 동영상을 살펴볼까요~~~

 

자 이제 만들러 가보겠습니다!!

 

 


랜덤 숫자를 출력해주는 label 

먼저, 랜덤 숫자를 출력할 label 두개와 게임 값을 받을 TextField 한개를 @IBOutlet에 연결해줬어요!! 

 

이제 랜덤 숫자를 label에 넘겨 줄 함수를 만들어주겠습니당

Int 구조체에 정의되어있는 random 함수를 불러와서 1부터 9까지 랜덤 값을 받아줬습니다!

 


음 보니까 아래 코드 부분이 return 즉 반환값을 String으로 변환해주고 있죠??

String(Int.random(in: 1...9))

 

왜 String으로 바꿔서 보낼까요?!!!

제가 그냥 Int로 반환값을 넘기면 어떻게 될까 궁금해서 바꿔봤어요ㅋㅋㅋㅋㅋㅋ

그랬더니 아래와 같은 오류가 뜹니다!

 

Cannot assign value of type 'Int' to type 'String?'
--> 'String?' 유형에 'Int' 유형의 값을 할당할 수 없습니다.

 

label의 text 값은 String 유형밖에 못 받아서 Int 값을 할당할 수 없는거였어요!!ㅎㅎ


 

사용자가 입력한 값과 정답 비교

자 이제 정답인지 아닌지 Alert를 띄어주려면 사용자에게 입력 받은 값이랑 정답 값이랑 비교를 해주는 부분이 있어야겠죠??

 

 

이렇게 버튼과 액션을 연결해준 후에, answer에는 랜덤 값을 계산해서 넣어주고 result에는 사용자가 입력한 값을 받아줬습니다!

if문으로 비교 해주고 정답일때는 resultOK()함수를 호출해주고, 아니면 resultMiss()를 호출해주도록 했어요!!

 

 

Alert 띄우기와 정답일 때와 오답일 때 처리 구문

그럼 resultOK()와 resultMiss() 함수를 만들러 갑시다!

AlertController를 가져와서 팝업?창을 띄워주는 것과 정답을 적는 곳인 TextFeld를 ""로 초기화 해주는 부분은 OK와 Miss 함수에 공통으로 선언되어있고,

Ok 함수에는 새로운 문제를 사용자에게 줘야하므로 추가로 label을 다시 선언해줍니다!! 

 

그럼 완성!!

 


마치며

alert 사용하는것과 함수를 만들어 간단하게 호출하여 사용하는 것에 익숙해 지고 있다!! 

더 열심히해서 MVVM 적용도 잘하고싶어요!!

솔직히 지금 당장에는 무언가를 만들어낸다는게 자신이 없었는데, 이번에 구구단 게임을 구현하면서 자신감이 많이 붙은 것 같다!

뭐든 겁먹고 안하게 되면 그 상태로 멈춰있을 뿐인 것 같다! 화이팅