Skip to content

Jinoko01/number-baseball

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚾️ 온라인 숫자 야구 플랫폼

우아한테크코스 8기 프리코스 과정 오픈미션 프로젝트

배포 링크: https://number-baseball.com/

💻 프로젝트 소개

개요

온라인 숫자 야구 플랫폼은 1대1로 숫자 야구 게임을 진행합니다. 게임을 시작하면 각자 중복되지 않은 4개의 숫자를 지정하고, 순서를 돌아가며 상대방의 숫자를 예측합니다. 예측한 숫자를 제출하면 숫자 야구 게임 규칙에 따라, 예측 결과를 알려주고, 먼저 상대방의 번호를 맞추는 플레이어가 승리합니다.

숫자 야구 게임 규칙

  • Ball: 제시한 숫자가 값은 일치하지만, 위치는 일치하지 않는 경우
    • 예시: 4 5 2를 제출했을 때 숨겨진 숫자가 3 2 4라면 2 Ball을 반환
  • Strike: 제시한 숫자가 값과 위치 모두 일치하는 경우
    • 예시: 4 5 2를 제출했을 때 숨겨진 숫자가 4 1 2라면 2 Strike을 반환
  • Out: 제시한 세 숫자가 숨겨진 숫자에 전혀 포함되지 않는 경우
    • 예시: 4 5 2를 제출했을 때 숨겨진 숫자가 7 8 9라면 3 Out을 반환

시스템 구조도

image

📄 주요 기능

회원 인증

image
  • Github Oauth와 JWT를 사용한 회원 인증

게임방 관리

image image image
  • 방 생성: 방 만들기 버튼을 통해 방 제목을 입력한 후 생성
  • 방 조회: 생성된 방 목록을 페이지네이션 방식으로 조회
  • 방 입장: 생성된 방에 입장하면 게임방 페이지로 이동하고 유저 정보를 즉시 업데이트
  • 방 퇴장: 퇴장 시 메인 페이지로 이동하고 유저 정보를 즉시 업데이트
  • 방 삭제: 게임방 내 모든 인원이 퇴장할 경우, 자동으로 방 삭제
image
  • 전체 채팅: '/home' 페이지에 접속 중인 사용자들과 전체 채팅을 할 수 있음

게임 진행

image image image image
  • 숫자 지정: 게임 시작 시 각자 중복되지 않은 4개의 숫자를 지정
  • 숫자 예측: 순서를 돌아가며, 상대방의 숫자를 예측하여 제출
  • 예측 결과: 숫자 야구 게임 규칙에 따라 예측 결과를 알려주고, 먼저 상대방의 번호를 맞추는 플레이어가 승리
  • 게임 종료: 게임이 종료되면 게임 결과를 저장

📚 기술 스택

Frontend

  • 언어: TypeScript
  • 프레임워크: Next.js v16
  • 스타일링: Tailwind css v4
  • 패키지 매니저: pnpm

Backend

  • 언어: TypeScript
  • 프레임워크: Nest.js v11
  • ORM: TypeORM
  • 데이터베이스: PostgreSQL
  • 패키지 매니저: pnpm

📁 폴더 구조

number-baseball
├── apps
│   ├── backend
│   │   └── src
|   |        ├── common
|   |        ├── config
|   |        ├── constants
|   |        ├── migrations
|   |        ├── modules
|   |        |    ├── auth
|   |        |    ├── chat
|   |        |    ├── entities
|   |        |    ├── room
|   |        |    └── users
|   |        ├── app.module.ts
|   |        └── main.ts
│   └── frontend
│       ├── app
│       ├── lib
│       ├── public
│       ├── next.config.ts
│       ├── package.json
│       ├── postcss.config.mjs
│       └── tsconfig.json
├── packages
|   ├── ui
│   └── utils
├── package.json
├── pnpm-lock.yaml
└── pnpm-workspace.yaml

About

온라인 숫자 야구 대결 플랫폼입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published