11월 11일 공부일지
오늘 공부에 투자한 순수한 시간: 3시간
학습한 개념
: 콘솔프로그램 만들기 2번째
0. 콘솔프로그램 컨셉 잡기
멘토님께서 RPG 스타일의 게임을 예시로 보여주셨는데
제가 게임을 잘 안해서 모르는 분야라서 제가 알만한 분야로 잡았습니다.
다마고치
1.게임 규칙 만들기
수치 : 배고픔, 행복, 피로
행동 : 밥주기, 놀아주기, 재우기
15턴을 버티는 게 기본조건
놀아주기 하면 배고픔이 가장 많이 오름
재우기도 배고픔이 조금 오르고, 밥만 주고 자는 걸 반복하면 행복이 떨어짐
결국 세가지 행동을 균형있게 써야 버틸 수 있음.
게임오버조건 : 배고픔10, 행복0, 피로10 중 하나라도 도달하면 끝.
끝났을 때 행복 수치에 따라 엔딩이 달라짐.
2.행동을 함수로 만들기
개념 : 밥주기 처럼 펫의 상태를 바꾸는 동작은 함수로 묶기
함수안에서 객체의 값을 바꾸면 원래 객체가 바뀐다.
pet.hunger = pet.hunger - 3;
이 긴줄을 아래처럼 줄이는것
pet.hunger -= 3;
function feed() { pet.hunger -= 3;
밥주기함수는 pet.hunger 지금 값에서 -3한다.
값을 늘릴땐 +=, 줄일때는 -=
3.상태를 보여주는 함수 만들기
function showStatus() {
console.log( "[" + pet.name + "] 배고픔 " + pet.hunger + " | 행복 " + pet.happiness + " | 피로 " + pet.tiredness ); }
여기서 +하기는 붙여서 쓴다는 의미
4. 상태값이 음수 또는 10을 넘지않게 하기
function fixStats() {
if (pet.tiredness < 0) {
pet.tiredness = 0;
}
if (pet.tiredness > 10) {
pet.tiredness = 10; }
각각 hunger, hppiness 만들기
그리고 행동함수에 fixStats(); 넣기
5. 키보드로 입력받기
사용자가 이름을 설정할 수 있게 이름받기
const readline = require("readline");
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
맨 윗줄에 입력하기
rl.question("펫 이름을 지어 주세요: ", (answer) => {
pet.name = answer; (사용자가 입력한 글자를 pet이름칸에 넣어라 뜻
showStatus(); 상태를 보여달라
rl.close();
});
(사용자가 입력한 글자를 pet이름칸에 넣어라 뜻
상태를 보여달라
(answer) => {} 는 화살표 함수라고함
arrow function 그래서 사실상 function(answer) 과 같음
answer을 받으면 {}안에 실행해
\n 줄바꾸기
AI 대화 내역 링크:
(링크 생성 방법)
클로드:https://claude.ai/share/7c1d5f5a-20e0-4116-9a28-860ed321f63b
오늘 잘한 점: 용어는 어느정도 반복된다 생각되고, 앞에서 애매하게 알았던 부분들도 아아아 하면서 공부하고있습니다.
오늘 부족했던 점: RPG가 좀더 어려운버전일 것 같긴했는데 초보에겐 이것도 쉽진 않았습니다 ㅠ_ㅠ 점메추가 더 쉬웠던것 같아요.. 아직 구조잡는게 좀 어려웠다..시간이 좀 걸렸다
오늘 총평: 코드를 되돌아보면짧아보이는데 ㅠ_ㅠ 어제처럼 빈칸으로 클로드가주고 제가 정답을 맞추거나 모르면 클로드가 힌트를 주면서 진행하고있고, 아에 모르겠으면 설명해달라고 하고있습니다. 기초단계 입력해보고, 저에게 필요한 함수라던지 내용으로 변경하며 콘솔 확인하며 진행하니 시간이 걸리는것 같습니다.그런데 아직까지 구조는 좀 어려운것 같습니다
여기에 파일을 드롭하세요
