첫번째 단어가 자바
이면 자바는 word에 들어 있고
두번째 단어가 바보
이면 바보는 newWord에 들어 있겠죠.
이걸 올바른지 아닌지 판단하려면 if를 써서 해야합니다.
첫 제시어의 끝 글자, 두번째 제시어의 첫 글자가 같으면 올바르고
그렇지 않다면 올바르지 않은 겁니다.
첫 제시어가 word니까 word[word.length - 1]이 === newWord[0]과 같은가? 를 비교하면 됩니다.
그러면 마지막 단어 word와 newWord[0] 첫번째 단어를 비교하겠죠.
그리고 입력단어가 제시어가 되고... 이거는 첫 제시어랑 똑같죠.
위의 코드와 내용이 같으니 복사해서 넣어줍니다.
코드가 중복되는 건 좋지 않습니다.
일단 지금은 순서도대로 코딩하도록 하겠습니다.
이제 2번째 참가자가 나와야 하는데 n번째를 추가해보도록 하겠습니다.
이거는 다음 사람한테 순서를 넘긴다
부분입니다.
순서도는 구체화하면 이렇게 짜여져야 합니다.
처음 순서도에서 계속 바뀌어 가고 있는데 사실 생각보다 구체적으로 짜야할 때가 많습니다.
그래서 순서도도 구체적으로 바뀌는 경우가 많습니다.
본인이 몇번째인지 알아야 순서를 넘길 수 있습니다.
문제는 3번이 1번에 넘길 때인데 이럴땐 어떻게 할까요?
지금 현재의 번호랑 전체 참가자 수랑 같으면 다음 사람이 1번이 되는 거죠.
크면 1로 / 아니면 내 순서 +1로 갑니다. 코드를 적으면
정말 길고 눈 아프지만 설명을 다 적었습니다.
if (!word) {
// 비어있다 영역
word = newWord; // 입력단어가 제시어
$word.textContent = word; // 제시어를 텍스트로 가져와야 해서 textContent, word를 연결
$input.value = ''; // 입력 후 2번째 순서 다시 입력할 때 clear를 ''로 비워놓기
const order = Number($order.textContent); // order의 변수를 저장합니다.
if (order + 1 > Number) { // 현재 순서인 1을 더한 값이 number보다 큰 경우
$order.textContent = 1; // number보다 크면 1로 돌아가고
} else {
$order.textContent = order + 1; // 크지 않은 경우 다음 순서를 현재순서 +1 해줍니다.
};
} else {
// 비어있지 않다 영역
if (word[word.length - 1] === newWord[0]) { // 첫 제시어의 끝단어와 다음 제시어의 첫번째 단어가 같은가? 비교합니다.
word = newWord; // 입력단어가 제시어가 됩니다. 데이터를 바꾸었으니 화면출력도 바꿔야합니다.
$word.textContent = word; // 제시어를 텍스트로 가져와야 해서 textContent, word를 연결
$input.value = ''; // 입력 후 2번째 순서 다시 입력할 때 clear를 ''로 비워 놓기
} else { // 올바르지 않은 경우
};
};
};
여기서 순서도를 다시 봐야 합니다.
제시어가 비어있는가?에서 들어가는 예가 있고
입력한 단어가 올바른가에서 들어가는 예가 있고
입력된 단어 제시어 입력이 2가지가 있습니다.
그래서 하나 더 복사해서 붙여넣어야 합니다.
const order = Number($order.textContent);
if (order + 1 > number) {
$order.textContent = 1;
} else {
$order.textContent = order + 1;
};
이 내용을
첫 제시어의 마지막 단어와 두번째 제시어 첫번째 단어 비교 영역 아래에 붙여넣기 해줍니다.
세글자 이상의 단어를 저장하고 있는 word라는 변수가 있을 때 뒤에서 세번째 글자를 가져오는 r 코드는?
word[word.length - 2];
마지막 글자 d는
word[word.length - 1];
입니다.
첫번째 글자 w는
word[word.length - 4];