이번주에는 다트 프로그램 기본 문법을 가지고 나서 전반적인 문제를 풀어보았고
전반적으로 강의를 들었을때는 전반적으로 다 이해가 된다고 생각이 된다고 생각을 했는데 큰 차이라는 것을 많이 느낄 수 있었습니다..
직접 코팅을 치지 않고 눈으로만 보고 연습을 하지 않았다 보니까 막상 빈 다트 창을 보면 생각이 멈춰버리는 문제를 많이 느낄 수 있었습니다..
아무튼 오늘 풀어본 문제는
로또 추첨기 입니다
로또 번호 당첨번호 9, 19, 29, 35, 37, 38 번을 기준으로
랜덤 숫자 6개를 만들어서 당첨 번호와 비교 해줍니다
이런 문제 인데 당첨 번호 를 9, 19, 29, 35, 37, 38 번 으로 설정 하고
겹치지 않는 무작위 숫자 6개를 만들어줘서 당첨 번호와 비교 해주는 프로그램입니다.
몇시간동안 열심히 해매다가 힘들게 프로그램을 만들게 되었고 여기까지 오는데 정말 힘들었습니다.
import 'dart:math';
void main() {
print('도전 문제');
List<int> winnerNumber = [9, 19, 29, 35, 37, 38]; //당첨번호
print('당첨 번호 $winnerNumber');
var random = Random(); //랜덤값 불러오기
//int result = random.nextInt(45) + 1;
List<int> myNumber = []; //랜덤값을 저장할 리스트
/*for (int i = 0; i < 6; i++) {
var random = Random();
int result = random.nextInt(45) + 1;
myNumber.add(result);
}*/
while (myNumber.length < 6) { //마이넘버의 글자수가 6개가 될때 까지
int result = random.nextInt(45) + 1; //랜덤수를 만들어주고 1~45
if (!myNumber.contains(result)) { //마이넘버의 같은값이 없을때
myNumber.add(result); //마이넘버 리스트에 랜덤수 추가
}
}
print('발급한 로또 번호 $myNumber');
int matchcount = 0; //맞춘 값을 저장할 변수 선언
List<int> matchNumber = []; //맞춘 랜덤값을 저장할 리스트 선언
for (int winnum in winnerNumber) { //맞춘 값을 저장하기 위해 리스트에서 하나씩 가져와서
for (int mynum in myNumber) { //랜덤 값을 저장하고 리스트에서 하나씩 가져와서
if (winnum == mynum) { //만약 값끼리 값이 같을때
matchcount++; //맞은 값을 카운트 1업
matchNumber.add(mynum); //맞은 값을 리스트에 넣어주고
}
}
}
print('맞춘 번호 : $matchNumber');
print('맞춘 갯수 : $matchcount');
if (matchcount >= 5) { //만약 5개 맞았다면
print('당첨여부 : 1등');
} else if (matchcount == 4) { //만약 4개 맞았다면
print('당첨여부 : 2등');
} else if (matchcount == 3) { //만약 3개 맞았다면
print('당첨여부 : 3등');
} else { //2개 이하로 맞았다면
print('당첨 여부 : 당첨 실패!');
}
myNumber.clear(); //기존 발급한 로또 번호 초기화
print('현재 발급한 로또 번호 : $myNumber');
}
코드를 조금더 짧게 만들수 있었지만 생각보다 저에게는 엄청 어려웠습니다..
하면서 여러가지 생각을 할 스 있는 기회가 되었고 생각보다 많이 부족하다는 것을 알수 있었고 주말에도 코딩공부를 조금 해볼 생각입니다.
반응형
'창업 > 앱 개발 코딩' 카테고리의 다른 글
| 플러터 입문 (0) | 2025.10.14 |
|---|---|
| 프로그램 예제 연습 (0) | 2025.10.13 |
| Dart 기본 문법 2 (0) | 2025.09.24 |
| Dart 기본 문법 (0) | 2025.09.22 |
| dart 문법 정리1 (0) | 2025.09.16 |
댓글