Dart 369 게임

이서혁·2023년 11월 29일
0

Dart

목록 보기
4/6
post-thumbnail

Mission

4명의 플레이어 Player1, Player2, Player 3, Player 4 가 참가

플레이어는 차례대로 순서가 돌아가며

30의 배수는 "ahh" 출력,
3의 배수에는 "clap"을 출력하고
10의 배수는 "rool"을
나머지는 숫자를 출력

범위: 1 ~ 100 까지

clap, rool, ahh 의 총 개수 출력
플레이어당 clap을 얼마나 했는지 출력
가장 많은 clap을 한 Player를 출력

Example

Player 1: 1
Player 2: 2
Player 3: clap
Player 4: 4
Player 1: 5
Player 2: clap
Player 3: 7
Player 4: 8
Player 1: clap
Player 2: rool
.
.
.
Player 1: 97
Player 2: 98
Player 3: clap
Player 4: rool

clap 의 총 개수: 30
rool 의 총 개수: 7
ahh 의 총 개수: 3
Player 1: 8
Player 2: 6
Player 3: 9
Player 4: 7

가장 많은 clap을 출력한 플레이어: Player 3

List

List를 사용하여 Player를 나열하고
현재 플레이어 순서,
clap 개수, rool 개수, ahh 개수,
플레이어 당 clap 개수 선언

void main() {
  List<String> players = ['Player 1', 'Player 2', 'player 3', 'Player 4'];
    int currentPlayerIndex = 0;
    int clapCount = 0;
    int roolCount = 0;
    int ahhCount = 0;
    List<int> clapCountsByPlayer = [0, 0, 0, 0];

for, if else

for문(세미콜론과 인덱스 값을 이용하여 반복) 을 사용해 1부터 100까지 나열하고 1씩 증가
if else(조건이 맞을 경우 조건문 실행)문 을 사용해
30배수에 ahh 카운트,
3배수에 clap 카운트,
10배수에 rool 카운트
플레이어 당 clap 개수 카운트

for (int i = 1; i <= 100; i++) {
    String currentPlayer = players[currentPlayerIndex];
    if (i % 30 == 0) {
      print('$currentPlayer: ahh');
      ahhCount++;
    } else if (i % 3 == 0) {
      print('$currentPlayer: clap');
      clapCount++;
      clapCountsByPlayer[currentPlayerIndex]++;
    } else if (i % 10 == 0) {
      print('$currentPlayer: rool');
      roolCount++;
    } else {
      print('$currentPlayer:$i');
    }
    currentPlayerIndex = (currentPlayerIndex + 1) % players.length;
  }
  print('clap의 총 개수: $clapCount');
  print('rool의 총 개수: $roolCount');
  print('ahh의 총 개수: $ahhCount');
  print('플레이어 당 clap 개수: $clapCountsByPlayer');

가장 많은 clap을 카운트하고
clap을 가장 많이 출력한 플레이어 선언
for문을 사용하여 100번째 플레이어 까지 1씩 증가
플레이어 당 clap 개수 카운트 하고 출력

int maxClapCount = 0;
  String playerWithMaxClap = "";

  for (int i = 0; i < players.length; i++) {
    int count = clapCountsByPlayer[i];
    print('${players[i]}:$count');

if 조건문을 사용해
가장 많은 clap을 카운트하고
가장 많은 clap을 한 플레이어를 출력

    if (count > maxClapCount) {
      maxClapCount = count;
      playerWithMaxClap = players[i];
    }
  }
  print('가장 많은 clap을 출력한 플레이어: $playerWithMaxClap');

전체 코드

void main() {
  List<String> players = ['Player 1', 'Player 2', 'player 3', 'Player 4'];
  int currentPlayerIndex = 0;
  int clapCount = 0;
  int roolCount = 0;
  int ahhCount = 0;
  List<int> clapCountsByPlayer = [0, 0, 0, 0];

  for (int i = 1; i <= 100; i++) {
    String currentPlayer = players[currentPlayerIndex];
    if (i % 30 == 0) {
      print('$currentPlayer: ahh');
      ahhCount++;
    } else if (i % 3 == 0) {
      print('$currentPlayer: clap');
      clapCount++;
      clapCountsByPlayer[currentPlayerIndex]++;
    } else if (i % 10 == 0) {
      print('$currentPlayer: rool');
      roolCount++;
    } else {
      print('$currentPlayer:$i');
    }
    currentPlayerIndex = (currentPlayerIndex + 1) % players.length;
  }
  print('clap의 총 갯수: $clapCount');
  print('rool의 총 갯수: $roolCount');
  print('ahh의 총 갯수: $ahhCount');
  print('플레이어당 clap 갯수: $clapCountsByPlayer');

  int maxClapCount = 0;
  String playerWithMaxClap = "";

  for (int i = 0; i < players.length; i++) {
    int count = clapCountsByPlayer[i];
    print('${players[i]}:$count');

    if (count > maxClapCount) {
      maxClapCount = count;
      playerWithMaxClap = players[i];
    }
  }
  print('가장 많은 clap을 출력한 플레이어: $playerWithMaxClap');
}
profile
hommehyuk

0개의 댓글