ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 200926 - TIL
    TIL/2021 2020. 9. 27. 02:31

    iOS 

     

    가위바위보 게임을 하는 앱을 만들었다.

     

     

    처음 화면
    Alert으로 승패를 알려준다.

     

     

    	import Foundation
    
    	enum RockScissorsPaper: Int {
        	case rock = -1
        	case scissors = 0
        	case paper = 1
    	}

    케이스를 열거형으로 선언했다. 원시값을 Int로 지정했다.

     

     

     

     

        func makeStartingImage(slectedImage: UIImageView, imageName: String = "rock") {
            return slectedImage.image = UIImage(named: imageName) ?? nil
        }
        
        
        func makeImage(slectedImage: UIImageView, hand: RockScissorsPaper) {
            return slectedImage.image = UIImage(named: "\(hand)") ?? nil
        }

    처음 시작 이미지를 정하는 메서드와 열거형을 파라미터로 받아 이미지를 생성하는 메서드를 만들었다,

    두 함수를 하나의 함수로 만들고 싶었지만 실패했다.

     

     

     

     

     

        func presentAlert(message: String) {
            let makeAlert = UIAlertController(title: "결과", message: message, preferredStyle: .alert)
            let actionAlert = UIAlertAction(title: "확인", style: .default)
            makeAlert.addAction(actionAlert)
            
            present(makeAlert, animated: false)
        }

    저번부터 계속 만들어오던 Alert도 메서드로 구현했다.

     

     

     

     

            let leftNum = Int.random(in: -1 ... 1)
            let rightNum = Int.random(in: -1 ... 1)
            let myHand = RockScissorsPaper(rawValue: leftNum)
            let yourHand = RockScissorsPaper(rawValue: rightNum)
            
            guard let mine = myHand,let yours = yourHand else { return }
            makeImage(slectedImage: leftImageView, hand: mine)
            makeImage(slectedImage: rightImageView, hand: yours)

    열거형의 RawValue를 활용하면서 랜덤으로 이미지를 만들도록 했다.

     

     

     

     

     

            guard let myHandRawValue = myHand?.rawValue,
                  let yourHandRawValue = yourHand?.rawValue else { return }
            let result = myHandRawValue - yourHandRawValue
    
            switch result {
            case 0:
                presentAlert(message: "비김😅")
            case -1, 2:
                presentAlert(message: "승😀")
            default:
                presentAlert(message: "패😢")
            }

    원시값의 차를 이용해서 switch문으로 분기시켰다.

    case가 깔끔하게 나눠지지 않아서 아쉽지만 if를 사용했을 때보다 간결해졌다.

     

     

     

     

     

    Swift 문법

    새로운 개념을 공부하지 않고 지금까지 배웠던 부분들을 복습했다.

     

    728x90

    'TIL > 2021' 카테고리의 다른 글

    200930 - TIL  (0) 2020.10.01
    200928 - TIL  (0) 2020.09.29
    200925 - TIL  (0) 2020.09.26
    200923 - TIL  (0) 2020.09.24
    200921 - TIL  (0) 2020.09.22
Designed by Tistory.