Silverback9

#야생으로

Creative Coding 독학 제248일 2024년11월30일(토)

오늘은~^^*

어제 newChar()함수를 살펴 보지 않아서…그것을 먼저 살펴 보면 어떨까 합니다^^*

class DNA {
  constructor(num) {
    this.genes = [];  // genetic sequence를 담는 배열입니다.
    this.fitness = 0; //적합도 입니다.
    for (let i = 0; i < num; i++) {
      this.genes[i] = newChar(); // 문자 Char를 무작위로 pick하여 this.genes의 i번째 구성요소로 저장합니다.  
    }
  }

어제 newChar() 함수의 내용을 들여다 보지 않았던 것 같아요…

function newChar() {
  let c = floor(random(63, 122)); 
  //63에서 122 사이 무작위 실수의 정수 부분만을 변수 c에 저장합니다.  
  if (c === 63) c = 32;
  // 만약 c가 63이면 c에 32를 저장하고
  if (c === 64) c = 46;
  // 만약 c가 64이면 c에 46을 저장합니다. 

  return String.fromCharCode(c);
}

return String.fromCharCode()는 어떤 역할을 하고 있는 것일까요? 변수 c값을 ASCII 아스키 코드값 – UTF-16 코드값으로 받아들여 그 값에 해당하는 character 문자를 string 문자열 형태로 반환하는 것 같아요.

아스키 코드에 대해 전체적으로 가볍게 한 번 훑어 볼까요~^^*

이 ASCII 아스키 코드는 영어 알파벳을 표현하는데 최적화된 코드인 것 같습니다. 전 세계 다양한 문자체계를 표현할 수 있도록 확장된 코드가 유니코드 UTF인 것 같아요~^^* UTF16은 16진법을 기반으로 하고 있고요~^^*

그럼 우리 이제 newChar()를 다시 한 번 살펴 볼까요?^^*

function newChar() {
  let c = floor(random(63, 122)); 
  //63에서 122 사이 무작위 실수의 정수 부분만을 변수 c에 저장합니다.  
  if (c === 63) c = 32;
  // 만약 c가 63이면 c에 32를 저장하고
  if (c === 64) c = 46;
  // 만약 c가 64이면 c에 46을 저장합니다. 

  return String.fromCharCode(c);
}

ACSII 코드 63은 “?”이네요. 이것을 ASCII 코드 32인 ” “으로 바꾸어 저장하게 되는 것이네요.

ASCII 코드 64는 “@”이네요. 이것을 ASCII 코드 46인”.”으로 바꾸어 저장하게 되네요.

그래서, ” “과 “.”과 “A ———————–z”까지의 문자 중 하나를 return하게 되겠네요.

그러면 DNA()가 그 문자를 return받아 this.genes[i]에 저장하게 되구요.

class DNA {
  constructor(num) {
    this.genes = [];  // genetic sequence를 담는 배열입니다.
    this.fitness = 0; //적합도 입니다.
    for (let i = 0; i < num; i++) {
      this.genes[i] = newChar(); // 문자 Char를 무작위로 pick하여 this.genes의 i번째 구성요소로 저장합니다.  
    }
  }

오늘 저와 함께 ASCII 아스키 코드와 UTF-16 유니코드 16진법에 대해 살펴봐 주셔서 감사합니다~^^*

0과 1의 세계에 사는 컴퓨터가 인간의 언어를 표현할 수 있는 비밀을 우리가 오늘 들여다 본 것 같아요!

컴퓨터의 비밀의 정원을 저와 함께 거닐어 주셔서 감사합니다~^^*

오늘 String.fromCharCode()라는 짧은 문구가 안내해 준 컴퓨터의 깊은 비밀의 정원을 거닌 우리가 우리도 모르게 쌓게 된 어떤 학습 경험이 있을 것 같아요^^*

멋진 한 작품 속에 담기는 짧은 한 장면을 위해 넘어지고 미끌어지고 또 넘어지지만,

그 과정이 단단한 실력과 근성을 키워 주는 것 처럼요~^^*

내일은 어제 공부하기로 한 내용을 공부해 보기로 할까요~~^^*

오늘도

점심 맛있게 드시고요!

만나는 이들과 멋진 기쁨을 나누는

멋진 하루 보내시고요!

우리 내일 또 만나요~^^*

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

댓글 남기기