목차
回复内容:
백엔드 개발 파이썬 튜토리얼 怎样从零开始用 Python 写一个贪吃蛇?

怎样从零开始用 Python 写一个贪吃蛇?

Jun 06, 2016 pm 04:24 PM
ps

PS: 感觉好像被当成伸手党了 ,题主我一开始也是有个想法的,只是感觉运行效率太渣,来学习学习各位的方法。
还有现在忙着高考,也没多少时间实践这个贪吃蛇程序了。 但还是感谢各位提出的思路。

==--------以下为原问题--------==

首先说明“从零开始”不是指零基础
首先说明“从零开始”不是指零基础
首先说明“从零开始”不是指零基础
是指从头写起。

1. 使用现有模块的话有什么模块推荐?

2. 不使用现有模块的话怎么自己从底层开始写?需要具备哪些知识?

回复内容:

主要分为3个部分:
  • 用一个线程控制游戏的逻辑(如何移动蛇、何时会输等)
  • 用GUI库把当前局面输出到屏幕上
  • 想办法把用户的输入传递到控制线程上

第一部分:贪吃蛇游戏逻辑
首先,如何存储游戏的局面呢?
怎样从零开始用 Python 写一个贪吃蛇?贪吃蛇的整个盘面是一个含有gy*gx个网格棋盘,其中每个网格可能有蛇的身体(图中黄色)食物(图中绿色)啥都没有(图中蓝色)三种状态。用Python描述就是这样:
<span class="n">gx</span><span class="p">,</span> <span class="n">gy</span> <span class="o">=</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">15</span> <span class="c">#棋盘大小</span>
<span class="n">EMPTY</span><span class="p">,</span> <span class="n">SNAKE</span><span class="p">,</span> <span class="n">FRUIT</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span> <span class="c">#网格状态</span>
<span class="n">g</span> <span class="o">=</span> <span class="p">[[</span><span class="n">EMPTY</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">gx</span><span class="p">)]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">gy</span><span class="p">)]</span> <span class="c">#棋盘</span>
로그인 후 복사
大概看了下,如果不调用包吧。你至少知道怎么搞gui。python主要的Gui是pyqt,tkinter,GKT,wxpython。 第一、第五个重点参考吧。你同时再知道一个随机数的生成方式。
至于调用包写的话,推荐pygame,random够了。一百行左右的代码量吧。 pygame
100来行就可以了

怎样从零开始用 Python 写一个贪吃蛇?

源码:
codetimer/Snake 贪吃蛇只需要有如下基本的 IO 功能就可以写了:
  1. 在指定坐标写/画一个块
  2. 不阻塞不回显地读键盘

Console 下面能写,GUI 也可以。甚至 Console 需要的功能还少些。


所以最简单就是用标准库 curses 写个 Console 的贪吃蛇。curses 入门可以看官方的 How to:

Curses Programming with Python

如果用 Windows,可能需要下载安装非官方的 curses 包:
lfd.uci.edu/~gohlke/pyt

而如果用 GUI,效果会好些,概念也要多些。我想 pygame 是很应景的东西,用起来比较方便,网站上有教程。

注意 IO 是操作系统提供的功能,由库包装一下系统功能来提供上面两个 IO 操作就已经算是从零开始了。如果你觉得用 curses 还不够“从零开始”,那么你就得针对不同操作系统来写了。例如对于 Windows,就是调用诸如 SetConsoleCursorPosition、WriteConsole 等 API 完成基本的输出,调用 SetConsoleMode、ReadConsole 之类函数处理输入。用 C 写贪吃蛇倒常有人这么干,Python 没见过这样的。 一、前言
看了提问者在另一个回答的评论
怎样从零开始用 Python 写一个贪吃蛇?
真的觉得提问者应该试试pygame。“工欲善其事,必先利其器。”个人认为,python与其他编程语言相比,亮点在于它有丰富的第三方库。比如用python做爬虫,原生库urllib2和第三方库requests相比,哪个效率更高?

二、推荐
pygame顾名思义,python和game相结合,专注于2D游戏开发。
pygame很容易入门。网上有一些不错的教程,在此推荐我的入门教程:
-Daydayblog-第1页

博客提供了16个章节:
怎样从零开始用 Python 写一个贪吃蛇?
没错,博客作者提供了如何使用pygame开发贪吃蛇的教程,作者程序运行界面如下:
怎样从零开始用 Python 写一个贪吃蛇?
三、贪吃蛇

贪吃蛇主要包括以下几个方面:

  • 物体表示:蛇和苹果如何存储和显示、蛇如何移动和吃苹果变长;
  • 字体显示:提示玩家该如何操作,显示玩家的分数;
  • 人机交互:使用键盘的方向键来控制蛇的移动;
  • 矩形绘图:绘制各种基本的图形来组成图像。

使用pygame开发贪吃蛇,您只需要学会:
  • pygame简介及安装
  • surface对象
  • 窗口显示
  • 绘制几何图形
  • event事件
  • 人机交互

蛇可通过python字典存储,
    snake=[{'x': startX , 'y': startY},
           {'x': startX - 1 * cellSize, 'y': startY},
           {'x': startX - 2 * cellSize, 'y': startY},
           {'x': startX - 3 * cellSize, 'y': startY}]
로그인 후 복사
不懂python,水一下,做游戏界面为什么用python
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

ps 일련번호 cs5 영구 무료 2020 ps 일련번호 cs5 영구 무료 2020 Jul 13, 2023 am 10:06 AM

PS 일련 번호 cs5 영구 무료 2020에는 다음이 포함됩니다. 1. 1330-1384-7388-4265-2355-8589(중국어) 2. 1330-1409-7892-5799-0412-7680(중국어) -8375-9492-6951(중국어), 4. 1330-1971-2669-5043-0398-7801(중국어) 등

ps 설치 시 레지스트리 값 오류 160을 쓸 수 없는 경우 수행할 작업 ps 설치 시 레지스트리 값 오류 160을 쓸 수 없는 경우 수행할 작업 Mar 22, 2023 pm 02:33 PM

ps 설치 시 레지스트리 값을 쓸 수 없는 경우 오류 160에 대한 해결 방법: 1. 컴퓨터에 2345 소프트웨어가 있는지 확인하고, 있으면 소프트웨어를 제거합니다. 2. "Win+R"을 누르고 "Regedit"를 입력하여 시스템 레지스트리를 엽니다. 를 누른 다음 "Photoshop.exe"를 찾아 Photoshop 항목을 삭제하세요.

PS 인터페이스 글꼴이 너무 작으면 어떻게 해야 합니까? PS 인터페이스 글꼴이 너무 작으면 어떻게 해야 합니까? Dec 01, 2022 am 11:31 AM

너무 작은 PS 인터페이스 글꼴 수정 방법: 1. PS를 열고 PS 상단 메뉴 표시줄에 있는 "편집" 버튼을 클릭하여 편집 메뉴를 확장합니다. 2. 확장된 편집 메뉴에서 "기본 설정" 버튼을 클릭합니다. 3. 인터페이스 설정에서 사용자 인터페이스 글꼴 크기를 "대형"으로 설정하고 UI 배율을 "200%"로 설정한 다음 설정을 저장한 다음 PS를 다시 시작하면 적용됩니다.

ps에서 선택한 영역을 삭제하는 방법 ps에서 선택한 영역을 삭제하는 방법 Aug 07, 2023 pm 01:46 PM

PS에서 선택한 영역을 삭제하는 단계: 1. 편집하려는 사진을 엽니다. 2. 적절한 도구를 사용하여 선택 영역을 만듭니다. 3. 다양한 방법을 사용하여 선택 영역의 콘텐츠를 삭제할 수 있습니다. 삭제" 키, "힐링 브러시 도구" 사용, "내용 인식 채우기" 사용, "스탬프 도구" 등 사용 4. 도구를 사용하여 눈에 띄는 흔적이나 결함을 수정하여 사진을 더욱 자연스럽게 보이게 합니다. 5 . 편집이 완료되면 메뉴바의 "파일" > "저장"을 클릭하여 편집 결과를 저장하세요.

PS에서 선화를 추출하는 과정 소개 PS에서 선화를 추출하는 과정 소개 Apr 01, 2024 pm 12:51 PM

1. 아래 그림과 같이 소프트웨어를 열고 재료 조각을 가져옵니다. 2. 그런 다음 ctrl+shift+u를 눌러 색상을 제거합니다. 3. 그런 다음 Ctrl+J를 눌러 레이어를 복사합니다. 4. 그런 다음 Ctrl+I를 반대로 한 다음 레이어 혼합 모드를 Color Dodge로 설정합니다. 5. 필터--기타--최소를 클릭합니다. 6. 팝업 대화 상자에서 반경을 2로 설정하고 확인을 클릭합니다. 7. 드디어 추출된 라인 드래프트를 볼 수 있습니다.

PS 복사 레이어 단축키 PS 복사 레이어 단축키 Feb 23, 2024 pm 02:34 PM

PS 복사 레이어 단축키를 보면 PS 사용 시 레이어를 복사하고 싶을 때 [Ctrl+J] 단축키를 사용하면 빠르게 복사할 수 있다는 것을 알 수 있습니다. 레이어 복사 단축키에 대한 소개를 통해 구체적인 작업 방법을 알려드릴 수 있으니, 자세한 내용은 아래에서 확인하시기 바랍니다. PS 복사 레이어 바로가기 키 답변: [Ctrl+J] 구체적인 방법: 1. PS에서 이미지를 열고 복사해야 하는 레이어를 선택합니다. 2. 키보드의 [Ctrl+J]를 동시에 누르면 레이어 복사가 완료됩니다. 기타 복사 방법: 1. 이미지를 연 후 해당 레이어를 길게 누른 후 [새 레이어] 아이콘을 아래로 이동하세요. 2. 아이콘으로 이동한 후 손을 떼세요. 3. 레이어 복사가 완료되었습니다.

PowerShell을 사용하여 작업을 자동화하는 방법 PowerShell을 사용하여 작업을 자동화하는 방법 Feb 20, 2024 pm 01:51 PM

IT 관리자이거나 기술 전문가라면 자동화의 중요성을 인식해야 합니다. 특히 Windows 사용자의 경우 Microsoft PowerShell은 최고의 자동화 도구 중 하나입니다. Microsoft는 타사 응용 프로그램을 설치할 필요 없이 자동화 요구 사항에 맞는 다양한 도구를 제공합니다. 이 가이드에서는 PowerShell을 활용하여 작업을 자동화하는 방법을 자세히 설명합니다. PowerShell 스크립트란 무엇입니까? PowerShell을 사용한 경험이 있다면 명령을 사용하여 운영 체제를 구성했을 수 있습니다. 스크립트는 .ps1 파일에 있는 이러한 명령의 모음입니다. .ps1 파일에는 기본 Get-Help와 같이 PowerShell에서 실행되는 스크립트가 포함되어 있습니다.

ps 단축키의 전체 목록 ps 단축키의 전체 목록 Mar 11, 2024 pm 04:31 PM

1. Ctrl + N: 새 문서를 만듭니다. 2. Ctrl + O: 파일을 엽니다. 3. Ctrl + S: 현재 파일을 저장합니다. 4. Ctrl + Shift + S: 다른 이름으로 저장. 5. Ctrl + W: 현재 문서를 닫습니다. 6. Ctrl + Q: 포토샵을 종료합니다. 7. Ctrl + Z: 실행 취소. 8. Ctrl + Y: 다시 실행. 9. Ctrl + X: 선택한 내용을 잘라냅니다. 10. Ctrl + C: 선택한 콘텐츠를 복사합니다.

See all articles