diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..195955dc --- /dev/null +++ b/docs/README.md @@ -0,0 +1,22 @@ +# 숫자 야구 게임 기능 구현 미션 + +## 기능 구현 목록 + +### MVC 패턴으로 분류 + +- 게임 흐름 제어 (BaseballController.js) + - 확인 버튼 클릭 시 유효성 검사 및 판정 로직 실행 + - 재시작 버튼 클릭 시 모델 과 뷰 초기화 후, 새 게임 시작 + +- 게임 데이터 관리 (BaseballModel.js) + - 컴퓨터의 서로 다른 임의의 수 3개 생성 + - 사용자의 입력값과 컴퓨터의 숫자를 비교 후 스트라이크/볼 판정 + - 게임 재시작 시 새로운 정답 숫자 생성 후 데이터 초기화 + +- 유효성 검사 (isValid.js) + - 3자리 숫자가 아니거나, 중복된 숫자가 있거나 0이 포함된 경우 alert 메시지 띄움 + +- 사용자 인터페이스 (BaseballView.js) + - 사용자가 입력한 숫자에 대한 힌트를 화면에 출력 + - 정답을 맞췄을 경우 축하 메시지와 재시작 버튼 표시 + - 재시작 버튼 클릭 시 입력창과 결과창 초기화 diff --git a/src/controllers/BaseballController.js b/src/controllers/BaseballController.js new file mode 100644 index 00000000..41456f77 --- /dev/null +++ b/src/controllers/BaseballController.js @@ -0,0 +1,39 @@ +import BaseballModel from '../models/BaseballModel.js'; +import BaseballView from '../views/BaseballView.js'; +import { isValid } from '../models/isValid.js'; + +export default class BaseballControllor { + constructor(){ + this.model=new BaseballModel(); + this.view=new BaseballView(); + this.initEventListeners(); + } + initEventListeners(){ + // HTML 태그 안에 직접 이렇게 적어도 구현 가능 + this.restart.style.display = 'block'; + } + + restartUI(){ + this.result.innerHTML = ''; + this.restart.style.display = 'none'; + } +} \ No newline at end of file