오름캠프 이틀차! 369게임을 만들어보았다.
처음 코딩을 하는길은 막막하고 앞이 하나도 보이지 않는 정글을 가는것 같았고, 내 길을 내가 만들진 못했지만 누군가 뚫어 놓은 길을 직접 걸어보며 길을 익히는 시간은 되었다고 생각한다.
이제 365 게임에서 제시된 문제와 기초적인 문법들을 알아보고 제시된 문제를 분석해 보자
문제
4명의 플레이어가 369게임을 한다.
- 플레이어는 돌아가며 숫자를 출력하고, 30의 배수에는 'ahh'를, 3의 배수에는 'clap'을, 10의 배수에는 'rool'을 출력한다.
범위 1 에서 100 까지
- clap, rool, ahh의 총 갯수 출력
- 플레이어 당 clap 횟수 출력
- 가장많은 clap을 한 플레이어 출력
기초 문법
for 문
- 예시
for (int i = 0; i < 100; i++) { print(i); } `` (i가 0에서 시작하여 99까지 반복하며) {매 반복마다 'i'를 출력한다}
if문
if( )이면 { }해라 else if( )이면 { }해라 else 이면 {}해라
- 예시
if (number > 0) { print("positive"); } else if (number < 0) { print("negative"); } else { print("zero"); } }
문법 분석
List<String> players = ['Player1', 'player2', 'player3', 'player4']; // 플레이어 4명 지정
int currentPlayerIndex = 0; //현재 플레이어 순서
int clapCount = 0; //총 clap 갯수
int roolCount = 0; //총 rool 갯수
int ahhCount = 0; //총 ahh 갯수
List<int>clapCounts = [0,0,0,0]; 각 clap 갯수
for(int i =1; i<=100;i++){
// for 구문: 1부터 100까지 i는 1씩 증가하는 동안,
String currentPlayer=players[currentPlayerIndex];
//리스트 'Players'에서 currentPlayerIndex'를 순서로 갖는 요소 를 변수 'currentPlayer'로 선언
if(i%30==0){
print('$currentPlayer:ahh');
ahhCount ++;}
//만약 i를 30으로 나눈 나머지가 0이면, 'currentPlayer 변수 : ahh ' 출력하고
'ahhCount'에 1을 더해라
else if(i%3==0){
print('$currentPlayer:clap');
clapCount ++;
clapCounts[currentPlayerIndex]++;
//만약 i를 3으로 나눈 나머지가 0이면, 'currentPlayer 변수 : clap ' 출력하고
//'clapCount'에 1을 더해라 clapCounts[currentPlayerIndex] : ('currenPlayerIndex'를 순서로 갖는'clapCounts'의 요소)에 1을 더해라
}else if(i%10==0){
print('$currentPlayer:rool');
roolCount++;
}else{print('$currentPlayer:$i');}
//만약 i를 10으로 나눈 나머지가 0이면, 'currentPlayer 변수 : i변수 ' 출력하고
//'roolCount'에 1을 더해라
currentPlayerIndex=(currentPlayerIndex+1)%players.length;
} // currentPlayerIndex 에 (currentPlayer +1)를 players의 요소 갯수로 나눈 나머지를 대입해라
print(clapCount); //'clapCount'를 출력해라
print(roolCount); // 'roolCount'를 출력해라
print(ahhCount); // 'ahhCount'를 출력해라
* int maxClapCount = 0;
String maxClapPlayer = '';
for(int i=0; i<players.length;i++){
int count = clapCounts[i];
print('${players[i]}: $count');
if(count>maxClapCount){
maxClapCount = count;
maxClapPlayer=players[i];
}
}print('\n 가장 많은 clap을 출력한 플레이어: $maxClapPlayer');
}