2025.03.19 - [TIL(Today I Learned)] - [TIL-013] Dart로 콘솔 텍스트 게임 만들기-1 [TIL-013] Dart로 콘솔 텍스트 게임 만들기-1개요프로그램에서 비동기와 예외 처리는 매우 중요하다.그래서 비동기와 예외 처리를 익히고 익숙해지기 위해 콘솔 텍스트 게임을 만들어 보자. 기능캐릭터/몬스터가 턴을 교환하여 전투를 할skyhyunjinlee.tistory.com 문제 발생 마지막 남은 몬스터를 처치하면 터미널에 원일 모를 에러가 계속 출력이 되는 상황 발생 이유 추측에러에 `RangeError` 라는 단어가 있는 것을 보면 범위가 잘못 지정된 탓인 것 같다.범위 관련된 것은 `Random`클래스 밖에 없어서 아마 `Random`클래스 쪽이 문제인 것 같았다. 에..
개요프로그램에서 비동기와 예외 처리는 매우 중요하다.그래서 비동기와 예외 처리를 익히고 익숙해지기 위해 콘솔 텍스트 게임을 만들어 보자. 기능캐릭터/몬스터가 턴을 교환하여 전투를 할 수 있다.난수를 이용해 몬스터 리스트에서 하나를 랜덤하게 뽑을 수 있다.텍스트 파일을 읽어 데이터로 사용할 수 있다.예외 처리를 통해 프로그램의 비정상 종료를 막을 수 있다.비동기로 새로운 텍스트 파일을 만들고 게임의 결과를 입력할 수 있다.몬스터의 체력이 50% 이하일 때 한 번만 60%의 확률로 전투 도중에 도망 갈 수 있다. 문제 발생새로운 파일을 생성하기 위해서는 `dart:io`라이브러리에 있는 `File().writeAsString()`를 이용할 수 있다.그러나 컴파일 에러가 발생했다.void createData(..
Dart는 타입을 선언하는 것과 메서드의 반환 타입이 무엇인지 아는 것이 중요하다.근데 메서드의 반환 타입이 무엇인지 모르는 경우가 많다.물론, VSCode가 알려주지만 시그니처(메서드의 형태)가 도대체 어떤 의미인지까지는 잘 모른다.그래서 오늘은 공식 문서에 나오는 메서드의 시그니처를 읽는 방법을 공부했다. map 메서드`List`의 `length`만큼 반복문이 동작하는 메서드.콜백 함수에서 `List`의 각 요소를 읽어 올 수 있으며, return 되는 값을 모아 최종적으로 `Iterable`객체를 반환한다. 공식 문서에 나오는 코드를 분석해 보자.Iterable map( T toElement( E e ) ) Iterable`map`메서드가 최종적으로 반환할 타입을 말한다.var numbers = [..
2025.03.12 - [TIL(Today I Learned)] - [TIL-008] Dart 실전 문법 파헤치기 - 타입 변환 메서드 [TIL-008] Dart 실전 문법 파헤치기 - 타입 변환 메서드알고리즘이나 이전에 했던 콘솔 쇼핑몰처럼 코드를 작성할 때 타입을 변경해야 하는 경우가 생각보다 많다.예를 들어, 사용자의 입력 값을 가져오면 값이 1이지만 타입은 숫자가 아니라 문자로skyhyunjinlee.tistory.com 상황`List`의 리스트가 있다.요소의 타입은 `String`이지만 값은 숫자이다. 즉, `['1', '2', '3', '4', '5']`이다.리스트의 타입을 `List`로 반환하는 함수를 만들어보자. 문제 코드List convertFromStringtoNumber(List st..
비동기 프로그래밍(Asynchronous Programming)작업이 완료될 때까지 기다리지 않고, 미래의 특정 시점에 값을 반환한다.결과값이 나올 때까지 멈춰 있지 않고, 수행할 수 있는 다른 모든 작업을 찾아서 수행한다.다른 모든 작업이 끝나야만 수행한다.Dart에는 `Future`, `Stream` 클래스를 사용한다. Future ClassFuture number = Future.value(1);Future name = Future.value('mark');Future isOddNumber = Future.value(1.isOdd);`Future`를 사용하려면 타입을 정의할 때 `Future`로 정의하면 된다.하나의 작업에 대해 값이나 이벤트가 한 번 발생하는 단일 비동기 작업에 사용한다. Futu..
이번에도 알고리즘을 푸는데 처음 보는 연산자가 있었다.그래서 오늘은 처옴 보는 연산자인 Cascade 연산자, `..`에 대해 파헤쳐본다. Cascade 연산자객체를 한 번만 호출하고 여러 개의 메서드나 속성을 연속적으로 호출할 수 있게 해주는 연산자.즉, 객체를 여러 번 참조하지 않고 한 줄로 여러 작업을 수행할 수 있도록 도와주는 문법이다.`..`는 메서드나 속성을 호출하고 있는 객체를 반환한다. 사용법Cascade 연산자를 사용하지 않는 코드class Person { String name = ''; int age = 0; void setName(String name) { this.name = name; } void setAge(int age) { this.age = age; }..