개발 이야기/개발 도서

제로초 자바스크립트 입문 <끝말잇기 2>

sonoa 2024. 3. 18. 15:53
반응형
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>끝말잇기</title>
  </head>
  <body>
    <div><span id="order">1</span>번째 참가자</div>
    <div>제시어: <span id="word"></span></div>
    <input type="text" />
    <button>입력</button>
    <script></script>
  </body>
  <script>
    const number = Number(prompt('참가자는 몇 명인가요?'));
    const $input = document.querySelector('input'); // input 태그
    const $button = document.querySelector('button'); // button 태그
    const $word = document.querySelector('#word');
    const $order = document.querySelector('#order');
    let newWord; // 현재 단어
    let word; // 제시어
    const onInput = (e) => {
      newWord = e.target.value; // 입력한 단어를 현재 단어로 저장
      console.log(newWord);
    };
    const onClickBtn = () => {
      if (!word) {
        // 제시어가 비어 있거나 입력한 단어가 맞는 단어인가 ?
        if (!word || word.at(-1) === newWord[0]) {
          word = newWord; // 입력한 단어가 제시어가 됨
          $word.textContent = word;
          const order = Number($order.textContent);
          if (order + 1 > number) {
            $order.textContent = 1;
          } else {
            $order.textContent = order + 1;
          }
        } else {
          // 틀린 단어
          alert('틀린 단어입니다!');
          $input.value = ''; // 입력창을 비움
          $input.focus(); // 입력창으로 커서를 위치시킴
        }
      }
    };
    $input.addEventListener('input', onInput);
    $button.addEventListener('click', onClickBtn);
  </script>
</html>

 

정리 

  • 순서도 작성
    • 프로그래밍에서 가장 중요한 것은 코드를 작성하기 전에 "올바른 순서도를 그리는 것" 
    • 순서도를 한 번에 완성할 수 없고 코딩하면서 계속 수정해야 한다
    • 하지만 원칙을 지키면서 순서도를 설계한다면 수정하는 횟수와 절차를 최소화 할 수 있고, 결과적으로 코딩 속도도 빨라진다
      • 프로그램의 절차 수는 정해져 있어야 한다
      • 각 절차는 항상 같은 내용이어야 한다
      • 모든 가능성을 고려해야 한다
      • 예는 절차를 검증할 때 사용한다
    • 사용자의 이벤트 (버튼클릭, 입력창 글자 입력 등)가 필요한 곳에서 순서도를 끊어야 함을 잊지 마세요! 
  • 순서도 최적화 
구분 첫 번째 조건 두 번째 조건 결과
OR 관계 true true true
true false true
false true true
false false false
AND 관계 true true true
true false false
false true false
false false false

 

쿵쿵따 웹 게임 만들기 <과제>  

규칙

  • 입력 단어를 세글자로 고정
  • 세글자가 아니면 다시 입력
  • 처음에 참가자가 몇 명인지 선택할 때 사용자가 취소를 누르면 다음 코드 실행 되지 않음 
반응형