Silverback9

#야생으로

Creative Coding 독학 제322일 2025년02월12일(수)

오늘은 태초의 vehicle 부족의 자연스러운 생애를 지켜보는 날이예요~^^* 마음에 두툼하고 폭신한 스펀지를 두르고요…

차분하면서도 신선한 악기의 소리로 아침의 몸의 흐름을 만들어 보고 계셔요~^^* 공부 정리해서 돌아올게요~^^* 쓩우웅~^^*

네~^^* 모든 생명체는 세상 속에 탄생하여 삶을 시작하고 죽음을 통해 생애를 마무리하게 되지요…우리의 태초의 vehicle 부족도 그러하였을 것 같아요.

태어난 이후 시간이 지나감에 따라 건강 상태를 조금씩 계속 나빠지는데, 몸에 좋은 음식을 먹으며 건강 상태를 좋게 만들 수 있고 혹여 위험한 독약을 먹으면 건강 상태가 많이 나빠지는 변화가 있어요.

그래서 어느 순간, 건강 상태가 0보다 작게 되면, 죽음을 맞이하게 되는 우리의 태초의 vehivle 부족.

네…그렇습니다…우리는 이제 죽음을 표현할 함수를 만들 때가 된 것 같습니다. 우리 심장 호~.

건강 상태가 0보다 작으면 죽음이 시간이 왔다고 판단하여, 배열 vehicles[]에서 vehicles[i]를 삭제하고 배열을 재정렬하겠습니다.

그러면 우린…..

그렇죠! 함수 splice()를 쓰면 되겠네요!

먼저 죽음 상태를 판단하여 알려주는 class Vehicle의 내장 함수 dead()를 만들어 보겠습니다.

Class Vehicle {
   .
   .
   . 
  dead() {
    return (this.health < 0);
  }
  //vehicle의 health 값이 0보다 작은 경우에 진리값 "true 참"을 반환합니다. 
  //vehicle의 health 값이 0 이상인 경우에 진리값 "false 거짓"을 반환합니다.
   .
   .
   .
}  

이제 메인 함수 draw()에서 함수 dead()를 호출하여 return 받은 값이 “true 참”이면 vehicles[i]을 배열 vehicles[]에서 삭제하겠습니다.

draw() {
   
  for( i = vehicles.length -1; i >= 0; i--) {
    vehicles[i].behaviors(food, poison);
    vehicles[i].update();
    vehicles[i].display();
  
    if (vehicles[i].dead()) {
       vehicles.splice(i, 1);
    }
  }
//만약 vehicles[i].dead()가 "true 참"을 반환한다면, 
//vehicles[i]를 시작으로 1개의 구성요소를 배열 vehicles[]에서 삭제하고 뒤에 있는 구성요소들을 한 칸씩 앞으로 당깁니다. 
//즉, vehicles[i]를 vehicles[]에서 삭제하고 나머지 뒷부분 구성요소들을 한 칸씩 당겨 배치하여 배열 vehicles[]를 재정렬합니다.
//배열의 뒷부분이 매번 당겨지다보니, for 반복구문의 시작점을 배열의 맨 끝으로 하겠습니다. 배열의 맨 끝부분에서 한 칸씩 앞으로 진행하며 작업문들을 실행하면 순조롭게 될 것 같습니다~^^*.  
}   

그럼 이제 태초의 vehicle 부족의 삶과 죽음을 관찰해 볼까요~^^* vehicle이 좀 천천히 움직여서 변화를 좀더 쉽게 관찰할 수 있도록 해보겠습니다. 심장에 폭신한 스펀지 두르고 지켜 보도록 할게요. 심장 호~

네~. 독약을 먹으면서 몸이 점점 빨갛게 되다가 완전히 빨갛게 되면 사라지는 vehicle이 눈에 보이시지요…

네~^^* 오늘 저와 함께 태초의 vehicle 부족의 삶과 죽음을 시각적으로 표현해 주셔서 감사합니다~^^*

내일은 우리, 태초의 vehicle 부족의 서식처를 좀더 풍성하게 하여, vehicle들의 수명을 좀더 늘여 보도록 할까요~^^*

네~^^* 좋아요~^^* 고마워요~^^*

오늘도 편안하면서도 보람찬 하루 보내시고요~^^*

따뜻하게 코~^^* 주무셔요~^^*

네~^^* 꿈은 이루어 집니다~^^*

댓글 남기기