Java에서 간단한 게임을 만들려고합니다. 여러 플레이어를 허용하는 서버를 코딩하고 싶습니다. 다음은 게임의 메타입니다 :공유 리소스가있는 멀티 스레딩 서버
플레이어는 서버를 연결하여 게임을하고 숫자를 나타냅니다. 각 플레이어는 하나의 게임만을 플레이합니다. 이 게임은 4 명이 연결되면 시작되거나 해결됩니다. 모든 선수 수의 합이 21보다 크면 모두 잃고, 그렇지 않으면 모두 승리합니다. 게임이 끝난 후에 각 플레이어는 승리했는지 또는 잃어 버렸는 지 경고해야합니다.
승패 패를위한 알고리즘이나 여러 클라이언트를 받아 들일 수 있습니다. 내 의심은 스레드 (또는 실행 가능한 개체) 및/또는 공유 리소스 란 무엇이어야합니다. 몇 줄의 가이드 라인만으로 구현할 수 있습니다.
당신은 무엇을 시도 했습니까? 정확히 무엇이 당신이 기대했던대로 작동하지 않았습니까? – Philipp
나는 동시성이 작동하는 방식과 약간 혼동 스럽다. 게임을 플레이어 목록이있는 실행 가능한 개체로 만들고 4 명의 플레이어가있을 때 시작/생성되도록하는 등 코드 및 수정 방법으로이 작업을 수행 할 수 있습니다. 게임이 해결되면 각 클라이언트에게 결과가 인쇄됩니다. 하지만 진정으로 원하는 것은 각 클라이언트가 숫자를 입력 한 후에 차단 된 상태 (기다림)이고 모든 플레이어가 숫자를 입력하면 계속해서 결과를 인쇄하도록하는 스레드라는 것입니다. – Duozhasht
가능한 경우 멀티 스레딩을 피해야합니다. 여러 스레드로 인해 교착 상태가 발생하고 경쟁 조건이 발생하여 버그를 재현 할 수 없게됩니다. Java는 한 스레드에서 많은 수의 클라이언트를 처리하는 [New-IO] (http://tutorials.jenkov.com/java-nio/index.html)를 제공합니다. – Philipp