CODING/스파르타 내일배움캠프 TIL

TIL 8일차_2024.12.20(금)

codingTrip 2024. 12. 20. 18:11

Spring 사전캠프 퀘스트 모음집

🧑🏻‍💻Java 응용하기

Lv3. 단어 맞추기 게임

출처 : 스파르타 내일배움캠프 사전캠프 퀘스트

import java.util.*;

public class WordPuzzleMaker {

    private String[] wordArray = {
                                        "airplane",
                                        "apple",
                                        "arm",
                                        "bakery",
                                        "banana",
                                        "bank",
                                        "bean",
                                        "belt",
                                        "bicycle",
                                        "biography",
                                        "blackboard",
                                        "boat",
                                        "bowl",
                                        "broccoli",
                                        "bus",
                                        "car",
                                        "carrot",
                                        "chair",
                                        "cherry",
                                        "cinema",
                                        "class",
                                        "classroom",
                                        "cloud",
                                        "coat",
                                        "cucumber",
                                        "desk",
                                        "dictionary",
                                        "dress",
                                        "ear",
                                        "eye",
                                        "fog",
                                        "foot",
                                        "fork",
                                        "fruits",
                                        "hail",
                                        "hand",
                                        "head",
                                        "helicopter",
                                        "hospital",
                                        "ice",
                                        "jacket",
                                        "kettle",
                                        "knife",
                                        "leg",
                                        "lettuce",
                                        "library",
                                        "magazine",
                                        "mango",
                                        "melon",
                                        "motorcycle",
                                        "mouth",
                                        "newspaper",
                                        "nose",
                                        "notebook",
                                        "novel",
                                        "onion",
                                        "orange",
                                        "peach",
                                        "pharmacy",
                                        "pineapple",
                                        "plate",
                                        "pot",
                                        "potato",
                                        "rain",
                                        "shirt",
                                        "shoe",
                                        "shop",
                                        "sink",
                                        "skateboard",
                                        "ski",
                                        "skirt",
                                        "sky",
                                        "snow",
                                        "sock",
                                        "spinach",
                                        "spoon",
                                        "stationary",
                                        "stomach",
                                        "strawberry",
                                        "student",
                                        "sun",
                                        "supermarket",
                                        "sweater",
                                        "teacher",
                                        "thunderstorm",
                                        "tomato",
                                        "trousers",
                                        "truck",
                                        "vegetables",
                                        "vehicles",
                                        "watermelon",
                                        "wind"
                                    };

    public String createRandomWord() {
        double random = Math.random();
        int num = (int) Math.round(random * (wordArray.length - 1));

        return wordArray[num];
    }

    public static void main(String[] args) {

        WordPuzzleMaker wordPuzzleMaker = new WordPuzzleMaker();
        String wordPuzzle = wordPuzzleMaker.createRandomWord();
        int num = 0;
        List<Character> wordList = new ArrayList<Character>();
//        List<Character> wordList2 = new ArrayList<Character>();

        System.out.println(wordPuzzle.length());
        System.out.println(wordPuzzle);
        while(num<wordPuzzle.length()){
            System.out.print("_ ");
            num++;
        }
        System.out.println();


        for(int i=9;i>0;i--) {
            System.out.println("현재 남은 기회 : " + i);
            System.out.println("A-Z 중 하나를 입력해주세요");

            Scanner scanner = new Scanner(System.in);
            String userChoice = scanner.next();
            char c = userChoice.charAt(0);

            if (!Character.isLetter(c)) {
                System.out.println("정답에 포함된 알파벳이 아닙니다 기회가 1 차감됩니다");
                System.out.println(c);
                continue;
            }
            else {
                if(wordList.contains(c)) {
                    System.out.println(wordList + "1");
                    System.out.println("이미 입력한 값입니다.");
                    continue;
                } else {
                    wordList.add(c);

                }
            }

        }

    }
}

 

사실... 다 풀지 못했다.

 

  1. 컴퓨터가 랜덤으로 영어단어를 선택합니다.
    1. 영어단어의 자리수를 알려줍니다.
    2. ex ) PICTURE = 7자리 ⇒ _ _ _ _ _ _ _
  2. 사용자는 A 부터 Z 까지의 알파벳 중에서 하나를 입력합니다.
    1. 입력값이 A-Z 사이의 알파벳이 아니라면 다시 입력을 받습니다
      • 힌트
      • Java 의 Charactor.isLetter() 을 활용해보세요
    2. 입력값이 한 글자가 아니라면 다시 입력을 받습니다
    3. 이미 입력했던 알파벳이라면 다시 입력을 받습니다.

지금까지 작성한 부분만 올렸다.

튜터님께 질문을 통해 contains라는 개념에 대해 새롭게 알 수 있었다.

 

사실... 이미 인터넷에 검색하면 다른 사람들의 정답이 나와있다.

하지만 나는 보지 않았다.

어떻게든 내가 스스로 차근차근 해보려고 한다.

본캠프에 들어가서 배워서라도 다시 도전해보리라...