전함!... 명령줄에서

2769 단어 pythonbeginners
프로그래밍 기술을 향상시키기 위해 수강하는 과정의 일부로 명령줄을 사용하여 플레이할 Battleship 게임을 코딩하기로 결정했습니다.

Github link to code: https://github.com/guachilimbo/battleship



전함이란 무엇입니까?


Battleship은 상대방의 모든 배를 침몰시키는 것이 목표인 2인용 보드 게임입니다. 매 턴마다 플레이어는 그리드 셀(예: "C7")을 "폭격"합니다. 보트가 셀을 점유하고 있으면 보트가 "히트"됩니다. 그렇지 않으면 "미스"가 됩니다.

게임 설정

내 게임을 위해 10x10 영숫자 그리드를 만들기로 결정했습니다. 각 플레이어는 길이가 다른 5개의 보트를 갖게 됩니다.
  • 캐리어 - 5셀
  • 전함 - 4셀
  • 순양함 - 3셀
  • 잠수함 - 3셀
  • 구축함 - 2셀

  • 게임은 CPU를 상대로 진행됩니다. 초기화 시 사용자는 보트가 차지할 초기 셀을 선택하고 보트를 수직 또는 수평으로 배치할지 여부를 묻는 메시지가 표시됩니다. 이 프로세스는 각 보트에 대해 반복됩니다.


    CPU 보드는 Python의 임의 라이브러리를 사용하여 설정됩니다.

    columns = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
    rows = list(range(10))
    def random_cell(self):
      return "".join([random.choice(Play.columns),str(random.choice(Play.rows))])
    


    게임하기
    설정과 유사한 논리를 사용하여 CPU는 폭파할 셀을 무작위로 선택합니다. 플레이어 그리드의 해당 셀에 보트가 있는 경우 셀이 "x"로 업데이트되어 보트가 충돌했음을 표시합니다. 그렇지 않으면 셀이 "~"로 업데이트되어 놓친 폭탄을 표시합니다.

    플레이어 로직은 동일하나 사용자가 원하는 셀을 입력해야 합니다. 코드는 이미 폭격된 셀이 선택된 경우 사용자에게 경고합니다.


    목록은 보트가 받은 적중 횟수를 추적합니다. 적중 횟수가 보트의 길이(즉, 생명 수)와 같을 때 그리드 아래에 표시되는 남은 보트의 수가 변경됩니다. 사용자가 얼마나 많은 보트가 남아 있는지 알 수 있습니다.

    최종 단계

    한쪽이 배를 모두 잃으면 게임이 종료됩니다. 사용자가 원하는 경우 코드가 종료되고 다시 시작하라는 메시지가 출력됩니다.

    향후 개선
  • 코드를 사용자 검증하여 사용자 경험을 쉽게 개선할 수 있습니다. 현재 특정 입력으로 인해 코드가 충돌합니다. 더 많은 것을 배우기 위해 이 프로젝트에서 벗어나고 싶었으므로 앞으로 개선할 것입니다.
  • 게임의 난이도가 너무 쉽습니다. 이것은 컴퓨터가 감소하는 100개의 셀에서 임의로 셀을 선택하기 때문입니다. 조금 더 배우면 난이도를 높이기 위해 다른 알고리즘을 구현하는 것이 재미있을 것입니다.
  • 좋은 웹페이지 즐겨찾기