Dart & Flutter

[Dart] switch와 if문을 활용하여 가위바위보 게임 만들기

햇썽이 2024. 5. 20. 22:41

가위바위보 게임을 Dart코드를 통해서 만들어봤다.

1. 컴퓨터의 가위바위보는 랜덤함수를 이용하여 가위바위보를 결정

2. 플레이어의 경우 직접 Input을 넣어서 가위바위보를 지정

3. 1,2의 결과를 출력

4. 2번에서 가위,바위,보외 다른 값을 입력할 경우 예외처리

import 'dart:convert';
import 'dart:io';
import 'dart:math';

void main() {
  /// 1. 유저에게 가위 바위 보를 입력 받음 
  print('가위, 바위, 보 중 하나를 정해주세요');
  // final 상수 지정
  final String userInput = stdin.readLineSync(encoding: utf8) ?? 'Error';

  /// 2. 컴퓨터가 어떤것을 낼지 결정하는 함수
  const computerList = ['가위', '바위', '보'];
  final computerInput = computerList[Random().nextInt(3)];

  print(computerInput);

  /// 3. 유저의 타입과 컴퓨터 타입에 대한 결과를 계산할 함수
  final result = getResult(userInput, computerInput);
  print(result);
}

String getResult(String userInput, String computerInput) {

  const comWin = 'Computer가 승리';
  const playWin = 'Player가 승리';
  const draw = '비겼습니다.';
  
  String result = draw;

  switch (userInput) {
    case '가위':
      if (computerInput == '바위') {
        result = comWin;
      }

      if (computerInput == '보') {
        result = playWin;
      }
    case '바위':
      if (computerInput == '보') {
        result = comWin;
      }

      if (computerInput == '가위') {
        result = playWin;
      }
    case '보':
      if (computerInput == '가위') {
        result = comWin;
      }

      if (computerInput == '바위') {
        result = playWin;
      }
    default:
      result = '올바른 값을 입력해주세요';
  }

  return result;
}