본문 바로가기
개발/Dart_Flutter

[dart] 가위 바위 보

by 리내(rinae) 2023. 11. 6.
import 'dart:convert';
import 'dart:io';
import 'dart:math';

void main() {
  /// 1. 유저에게 어떤 타입을 낼 것인지 물어보는 질의 칭

  print('가위, 바위, 보 중 하나를 정해서 입력해 주세요');
  final String userInput = stdin.readLineSync(encoding: utf8) ?? 'Error'; //잘 안쓰는 함수 : 콘솔창에서 데이터 받기

  /// 2. 컴퓨터가 낼 타입이 어떤 것인지 결정하는 함수

  const selectList = ['가위', '바위', '보'];
  final cpuInput = selectList[Random().nextInt(3)];
  print(cpuInput);

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

String getResult(String userInput, String cpuInput) {
  const cpuWin = 'CPU가 승리 하였습니다';
  const playWin = 'player가 승리 하였습니다.';
  const draw = '비겼습니다.';
  String result = draw;

  switch (userInput) {

    case '가위':
      if (cpuInput == '바위') {
        return cpuWin;
      }

      if (cpuInput == '보') {
        return playWin;
      }

    case '바위':
      if (cpuInput == '가위') {
        return playWin;
      }

      if (cpuInput == '보') {
        return cpuWin;
      }

    case '보':
      if (cpuInput == '가위') {
        return cpuWin;
      }

      if (cpuInput == '바위') {
        return playWin;
      }

      default:
        result = '옳바른 값을 입력해 주세요.';
  }

  return result;
}

'개발 > Dart_Flutter' 카테고리의 다른 글

비동기 프로그래밍  (0) 2023.11.06
flutter )) tree 삼종세트  (0) 2023.11.03
flutter )) UI 구성하는 기본 단위 Widget  (0) 2023.11.03
dart )) map() 고차함수 iterable  (0) 2023.11.02
dart )) 생성자 this 키워드  (0) 2023.11.01

댓글