GithubHelp home page GithubHelp logo

hwookim / java-chess Goto Github PK

View Code? Open in Web Editor NEW

This project forked from woowacourse/java-chess

0.0 0.0 0.0 1.26 MB

체스 게임 구현을 위한 저장소

Java 90.75% HTML 6.09% CSS 1.71% JavaScript 1.45%

java-chess's Introduction

java-chess

체스 게임 구현을 위한 저장소

기능 요구사항

  • 콘솔 UI에서 체스 게임을 할 수 있는 기능을 구현한다.
  • 체스판에서 말의 위치 값은 가로 위치는 왼쪽부터 a ~ h이고, 세로는 아래부터 위로 1 ~ 8로 구현한다.
  • 체스판에서 각 진영은 검은색(대문자)과 흰색(소문자) 편으로 구분한다.
  • move source위치 target위치을 실행해 이동한다.
  • 한쪽의 King이 잡혔을 때 게임을 종료해야 한다.
  • "status" 명령을 입력하면 각 진영의 점수를 출력하고 어느 진영이 이겼는지 결과를 볼 수 있어야 한다.
  • 웹 환경에서도 체스 게임을 실행할 수 있도록 구현한다.

점수 계산 규칙

  • 체스 프로그램에서 현재까지 남아 있는 말에 따라 점수를 계산할 수 있어야 한다.
  • 각 말의 점수는 queen은 9점, rook은 5점, bishop은 3점, knight는 2.5점이다.
  • pawn의 기본 점수는 1점이다. 하지만 같은 세로줄에 같은 색의 폰이 있는 경우 1점이 아닌 0.5점을 준다.
  • king은 잡히는 경우 경기가 끝나기 때문에 점수가 없다.
> 체스 게임을 시작합니다.
> 게임 시작 : start
> 게임 종료 : end
> 게임 이동 : move source위치 target위치 - 예. move b2 b3
start
RNBQKBNR
PPPPPPPP
........
........
........
........
pppppppp
rnbqkbnr

move b2 b3
RNBQKBNR
PPPPPPPP
........
........
........
.p......
p.pppppp
rnbqkbnr

구현해야할 기능 목록

  • 메인 메뉴 출력
    • start or end 입력 / web: 게임방 번호 입력
  • 기본 체스판 출력
    • 체스판 생성
  • move (from to) or status 입력 / web: 이동 칸 클릭
    • move 입력 시 입력 형식 검사
      • 기물 이동
        • 출발지 기물 존재 여부 검사
        • 이동 가능여부 검사
          • 이동 경로 중 장애물 검사
            • 이동 경로 생성
          • 목적지에 아군 여부 검사
          • 목적지가 선택 기물의 이동 가능 범위인지 검사
            • 기물별 이동 범위 생성
      • 킹 사망 시 게임 종료
    • status 입력 시 점수 출력 / web: 종료하기 버튼 클릭
      • 각 진영 별 점수 계산
        • 세로줄 내 폰 복수 존재 시 점수 계산
      • 계산된 점수로 승패 판결

java-chess's People

Contributors

hwookim avatar pobiconan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.