게임은 사람들이 즐길 수 있는 엔터테인먼트의 한 형태입니다. 모든 종류의 게임은 온라인, 모바일 장치, 데스크톱 컴퓨터 등에서 사용할 수 있습니다. 지금은 그런 도전적인 게임 중 하나를 만들 때가 아닙니다.
Python을 사용하여 CLI tic-tac-toe 게임을 만들 것입니다. Python을 사용하여 간단한 Tic Tac Toe 게임을 빌드해 보겠습니다. 게임 논리를 만들고 코드를 구성하는 방법을 배우는 데 도움이 됩니다.
틱 - 전술 - 발가락
코딩을 시작하기 전에 빨리 게임을 요약하고 개발 계획에 대해 논의해야겠다고 생각했습니다.
먼저 X가 항상 주도권을 잡고 먼저 움직여 사용자에게 행동할 기회를 준다는 가정을 설정합니다.
콘솔에서 1에서 9 사이의 숫자가 입력됩니다. 각 숫자가 다른 숫자에 해당하는 그리드에서(왼쪽 위는 1, 오른쪽 아래는 9)
컴퓨터는 사용자가 이동하면 자동으로 결정하고 이동합니다. 나는 여러 가지 다양한 루틴을 호출하는 하나의 기본 게임 루프를 사용할 것입니다.
어떤 기능이 완료되는지는 이 텍스트 기반 수업의 각 헤더에 표시될 것입니다.
보드 디자인
앞에서 설명한 것처럼 그리드 레이아웃을 사용하여 보드를 묘사할 것입니다. 이를 위해 Python에서 board라는 이름의 목록을 만들고 10개의 빈 값으로 시작합니다.
사용자는 1에서 9이 아니라 0에서 8까지만 입력할 수 있기 때문에 10가 아닌 9개의 빈 값이 있습니다. 따라서 단순화하기 위해 목록의 첫 번째 항목에 "빈 텍스트" 값을 지정합니다.
이런 식으로 목록의 항목을 인덱싱하기 위해 1-9 대신 0-8를 사용할 수 있습니다.
삽입문자()
Letter와 Pos는 이 기능을 위한 두 개의 입력이 될 것입니다. 요청한 위치에 요청한 편지만 넣습니다.
spaceIsFree(pos)
간단히 말해서, 이 방법은 지정된 영역이 비어 있는지 알려줍니다. 따라서 거기에는 이미 편지가 없습니다. 유일한 인수인 Pos는 1에서 9 사이의 정수입니다.
프린트보드(보드)
보드는 이 메소드에 대한 인수로 전송되어 콘솔에 표시됩니다.
isWinner()
현재 게시판을 기반으로 이 기능은 제공된 편지가 당첨되었는지 알려줍니다. le 및 board(문자)의 두 가지 매개변수가 있습니다.
"X" 또는 "O"여야 합니다. 보드의 각 잠재적 당첨 라인에 지정된 문자가 있는지 확인하기만 하면 됩니다.
본관()
게임을 시작하고 싶을 때 이 메서드를 호출합니다. 그것은 우리 프로그램의 많은 기능 중 하나를 호출하고 프로그램이 어떻게 실행되어야 하는지 지시합니다.
isBoardFull()
보드가 입력으로 제공되면 이 메서드는 보드가 가득 차면 단순히 True를 반환하고 그렇지 않으면 False를 반환합니다.
플레이어 이동()
이 방법에서는 사용자에게 이동을 요청하고 유효성을 검사합니다. 이동이 합법적인 경우 해당 편지가 게시판에 추가됩니다. 그렇지 않은 경우 사용자의 피드백을 계속 요청할 것입니다.
CompMove() – AI
이제 AI가 시작됩니다. 컴퓨터의 움직임은 이 기능에 의해 제어됩니다. 위원회는 이사회를 평가하고 최선의 선택을 할 것입니다.
다음은 이를 수행하는 데 사용할 알고리즘 목록입니다.
- 현재 단계를 완료할 수 없으면 다음 단계로 이동합니다.
- 가능하면 이기는 움직임을 취하십시오.
- 플레이어가 잠재적으로 승리할 수 있는 움직임이 있는 경우 다음 턴에 해당 위치로 이동합니다.
- 모서리를 선택하고 돌립니다. 여러 옵션이 있는 경우 무작위로 선택합니다.
- 중간에 자신을 배치하십시오.
- 모서리 중 하나를 고려하십시오. 여러 옵션이 있는 경우 무작위로 선택합니다.
- 움직일 방법이 없으면 게임은 무승부로 끝납니다.
무작위() 선택
잠재적 위치 목록이 주어지면 이 함수는 수행할 작업을 무작위로 선택합니다.
게임의 시작
이제 모든 작업이 완료되었으므로 게임을 시작할 수 있습니다. 게임을 한 번만 실행하고 싶다면 main을 호출하기만 하면 됩니다.
그러나 우리 상황에서는 사용자가 더 이상 플레이하고 싶지 않다고 결정할 때까지 게임이 계속 실행되기를 원하므로 메인 라인에 작은 while 루프를 추가할 것입니다.
완전한 코드
다음은 이제 완성된 게임의 전체 코드입니다.
산출
결론
만세!
당신이 완전히 처음부터 만든 게임. 우리가 정기적으로 하는 게임이 아닙니다. 그러나 논리 작성과 코드의 명확한 구조 유지에 도움이 됩니다.
행복한 코딩!
댓글을 남겨주세요.