目次
回复内容:
ホームページ バックエンド開発 Python チュートリアル 怎样从零开始用 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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

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 (中国語); 3. 1330-1616-1993 -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 を反転して、レイヤーブレンドモードをカラー覆い焼きに設定します。 5. 「フィルタ」-「その他」-「最小」をクリックします。 6. ポップアップ ダイアログ ボックスで、半径を 2 に設定し、[OK] をクリックします。 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 は最高の自動化ツールの 1 つです。 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: Photoshop を終了します。 7. Ctrl + Z: 元に戻します。 8. Ctrl + Y: やり直し。 9. Ctrl + X: 選択したコンテンツを切り取ります。 10. Ctrl + C: 選択したコンテンツをコピーします。

See all articles