자바스크립트 기초 문제(3) / while, if문 이용한 끝말잇기 게임

Soozynn·2021년 5월 6일
0
post-thumbnail

자바스크립트의 기초 개념을 코드로 익혀보기 위해서 제로초님의 웹 게임 만들며 배우는 자바스크립트편을 듣고 while문으로 끝말잇기 게임 코드 짜는 연습을 해보았다.

정말 아무것도 아닌 코드지만,,ㅎ
배운 개념을 생각하며 직접 코드를 짜보는 단계가 아예 안돼서 계속 제자리걸음중이다. 그래서 개념이 부족한건가 싶어서 자바스크립트 기초 개념을 계속 듣고 또 듣고,, 하다 코드를 직접 짜보는 연습을 하지 않는 이상 평생 모를거같다,,라는 생각이 들었다.😥

반응형웹이나, css까지는 하루하루 성장하는게 느껴졌는데 자바스크립트 공부를 시작한 시점부터 지금까지 시간은 흐르는데 계속 그 자리에 머물러있는것 같아서 불안하다
원래 다 이런건가? ㅜㅜ

내가 짜본 코드는 다음과 같다.

    let word = "끝말잇기"  
    while(true) {   
        let answer = prompt(word) 
        if(word[word.length -1] === answer[0]) {
            alert('딩동댕~!')
            word = answer }
    else {
	    alert('땡! 틀렸습니다 다시 입력해주세요.')}
    }
  

이걸 짜보는데까지 30~40분은 걸린거같다,,ㅋ

풀이)

let word = "끝말잇기" => 끝말잇기를 하기 위해선, 첫 단어를 제시해 주어야 하므로 변수 word에 "끝말잇기" 단어를 담았다.

let answer = prompt(word) => prompt (함수의 질문)에는 내가 처음 제시한 "끝말잇기" 단어인 word를 담고, 상대의 답변 (prompt(word)) 는 변수 answer에 담는다.

if문) => 제시되어 있는 단어의 끝 끝자와 상대가 답하는 단어의 첫 글자일치하는지 판별해야하므로 이를 생각하며 조건식을 만들었다.

word.length = "끝말잇기" 로 값은 4가 된다.

배열은 0번지 부터 수를 세기 때문에[word.length -1]의 값은 결국 word의 마지막 글자를 의미하게 된다.

if(word[word.length -1] === answer[0])
=> [주어진 글자의 수 -1] === [답변의 첫 글자] 판별

배열=[0, 1, 2, 3 ~''']
length= 1, 2, 3, ~'''

word[word의 글자 갯수 -1 한 값이] 상대의 첫번째 글자와 일치하는지 조건을 판별해야 하고,
일치할 시, 경고창으로 "딩동댕"을 출력하고, 아닐 시에는 else문을 통해 틀렸다는 경고창을 출력한다.


문제점)

입력한 답변이 실제로 존재하는 단어인지를 판별할 수 없고,
글자 수도 두글자 이상으로 정해져있지 않아서 끝에 글자와 같기만하면 정답이 되어버린다.
현재로써는 이게 최선이기에, 후에 자바스크립트를 좀 더 익히게 된다면 이 부분을 다시 수정하고 싶다.

0개의 댓글