国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python快速實現(xiàn)簡易貪吃蛇小游戲

這篇具有很好參考價值的文章主要介紹了python快速實現(xiàn)簡易貪吃蛇小游戲。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

貪吃蛇(也叫做貪食蛇)游戲是一款休閑益智類游戲,有PC和手機等多平臺版本。既簡單又耐玩。該游戲通過控制蛇頭方向吃蛋,從而使得蛇變得越來越長。?

貪吃蛇游戲最初為單機模式,后續(xù)又陸續(xù)推出團戰(zhàn)模式、賞金模式、挑戰(zhàn)模式等多種玩法。?

另外還有一種名為“貪吃蛇”鉆井測井技術,是運用旋轉導向系統(tǒng)、隨鉆測井系統(tǒng)等的油氣田定向鉆井、隨鉆測井技術,可完成海上“叢式井”和復雜油氣層的開采需求,大幅降低油氣田開發(fā)綜合成本。

依然是基于pygame庫,pip install pygame安裝即可

完整代碼如下:

# 導入庫
from tkinter import mainloop
import pygame
import time
import random
import sys


# 顯示評分功能
def show_score(choice, color, font, size):
	
	# 創(chuàng)建字體對象 score_font
	score_font = pygame.font.SysFont(font, size)
	
	# 創(chuàng)建顯示表面對象 core_surface
	score_surface = score_font.render('Score : ' + str(score), True, color)
	
	# 為文本表面對象創(chuàng)建一個矩形對象
	score_rect = score_surface.get_rect()
	
	# 顯示文字
	game_window.blit(score_surface, score_rect)

# 游戲結束功能
def game_over():
	
	# 創(chuàng)建字體對象 my_font
	my_font = pygame.font.SysFont('times new roman', 50)
	
	# 創(chuàng)建將在其上繪制文本的文本表面
	game_over_surface = my_font.render('Your Score is : ' + str(score), True, red)
	
	# 為文本表面對象創(chuàng)建一個矩形對象
	game_over_rect = game_over_surface.get_rect()
	
	# 設置文本位置
	game_over_rect.midtop = (window_x/2, window_y/4)
	
	# blit 將在屏幕上繪制文本
	game_window.blit(game_over_surface, game_over_rect)
	pygame.display.flip()
	
	# 2 秒后我們將退出程序
	time.sleep(1)

	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			pygame.quit()
			sys.exit()
		if event.type == pygame.MOUSEBUTTONDOWN:
			pygame.quit()
			sys.exit()
	# 停用 pygame 庫
	#pygame.quit()
	
	# 退出程序
	#quit()

if __name__ == '__main__':
	snake_speed = 10

	# 窗口大小
	window_x = 720
	window_y = 480

	# 定義顏色
	black = pygame.Color(0, 0, 0)
	white = pygame.Color(255, 255, 255)
	red = pygame.Color(255, 0, 0)
	green = pygame.Color(0, 255, 0)
	blue = pygame.Color(0, 0, 255)

	# 初始化pygame
	pygame.init()

	# 初始化游戲窗口
	pygame.display.set_caption('貪吃蛇小游戲')
	game_window = pygame.display.set_mode((window_x, window_y))
    
	# FPS(每秒幀數(shù))控制器
	fps = pygame.time.Clock()

	# 定義蛇默認位置
	snake_position = [100, 50]

	# 定義蛇體的前 4 個塊
	snake_body = [ [100, 50],
					[90, 50],
					[80, 50],
					[70, 50]
				]
	# 水果位置
	fruit_position = [random.randrange(1, (window_x//10)) * 10,
					random.randrange(1, (window_y//10)) * 10]
	fruit_spawn = True

	# 設置默認的蛇方向向右
	direction = 'RIGHT'
	change_to = direction

	# 初始分數(shù)
	score = 0
    

	# Main Function
	while True:
		# 處理關鍵事件
		for event in pygame.event.get():
			if event.type == pygame.KEYDOWN:
				if event.key == pygame.K_UP:
					change_to = 'UP'
				if event.key == pygame.K_DOWN:
					change_to = 'DOWN'
				if event.key == pygame.K_LEFT:
					change_to = 'LEFT'
				if event.key == pygame.K_RIGHT:
					change_to = 'RIGHT'

		# 如果同時按下兩個鍵
			# 我們不想讓蛇同時向兩個方向移動
		if change_to == 'UP' and direction != 'DOWN':
			direction = 'UP'
		if change_to == 'DOWN' and direction != 'UP':
			direction = 'DOWN'
		if change_to == 'LEFT' and direction != 'RIGHT':
			direction = 'LEFT'
		if change_to == 'RIGHT' and direction != 'LEFT':
			direction = 'RIGHT'

		# 移動蛇
		if direction == 'UP':
			snake_position[1] -= 10
		if direction == 'DOWN':
			snake_position[1] += 10
		if direction == 'LEFT':
			snake_position[0] -= 10
		if direction == 'RIGHT':
			snake_position[0] += 10

		# 蛇體生長機制
			# 如果水果和蛇發(fā)生碰撞,那么分數(shù)將增加 10
		snake_body.insert(0, list(snake_position))
		if snake_position[0] == fruit_position[0] and snake_position[1] == fruit_position[1]:
			score += 10
			fruit_spawn = False
		else:
			snake_body.pop()
		if score>=50:
			snake_speed=15
		if score>=60:
			snake_speed=20
		if score>=70:
			snake_speed=30

			
		if not fruit_spawn:
			fruit_position = [random.randrange(1, (window_x//10)) * 10,
							random.randrange(1, (window_y//10)) * 10]
			
		fruit_spawn = True
		game_window.fill(black)
		
		for pos in snake_body:
			pygame.draw.rect(game_window, green, pygame.Rect(
			pos[0], pos[1], 10, 10))
			
		pygame.draw.rect(game_window, white, pygame.Rect(
		fruit_position[0], fruit_position[1], 10, 10))

		# 游戲結束條件
		if snake_position[0] < 0 or snake_position[0] > window_x-10:
			game_over()
		if snake_position[1] < 0 or snake_position[1] > window_y-10:
			game_over()
		
		# 觸碰蛇身
		for block in snake_body[1:]:
			if snake_position[0] == block[0] and snake_position[1] == block[1]:
				game_over()
		
		# 連續(xù)顯示分數(shù)
		show_score(1, white, 'times new roman', 20)
		
		# 刷新游戲畫面
		pygame.display.update()

		# 每秒幀數(shù)/刷新率
		fps.tick(snake_speed)


		



對原代碼結構進行了進一步規(guī)范化,且原運行結果是死亡之后等待兩秒結束游戲自動退出游戲窗 ,改為游戲結束之后,手動點擊屏幕或者右上角X鍵退出游戲;并增加了移動變速,初始速度為10,當積分達到50則速度為15,積分60速度20,積分70速度30,積分80速度40,飛一般的感覺

運行效果如下,操作方式方向鍵上下左右即可:

python小游戲代碼,玩,java,開發(fā)語言,pygame,python,qt

?python小游戲代碼,玩,java,開發(fā)語言,pygame,python,qt

?python小游戲代碼,玩,java,開發(fā)語言,pygame,python,qt

?

主要參考:

手把手教你使用 Python 制作貪吃蛇游戲,才發(fā)現(xiàn)原來制作起來很簡單?_Python程序員小泉的博客-CSDN博客_python實現(xiàn)貪吃蛇文章來源地址http://www.zghlxwxcb.cn/news/detail-534876.html

到了這里,關于python快速實現(xiàn)簡易貪吃蛇小游戲的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 學生學python編程---實現(xiàn)貪吃蛇小游戲+源碼

    學生學python編程---實現(xiàn)貪吃蛇小游戲+源碼

    前言 這幾年人工智能技術大發(fā)展,Python因此幾乎成了第一位的語言。實際上,多年來,它不僅在軟件工程師中得到廣泛使用,也是各行業(yè)通用的專家語言,就是說,不管孩子以后做什么,都可能用得著。準備針對我自己上小學的孩子,每周抽出些時間,通過學習他們感興趣的

    2023年04月09日
    瀏覽(34)
  • 【貪吃蛇小游戲】寶塔面板快速搭建貪吃蛇小游戲Web網站 - 無需云服務器

    【貪吃蛇小游戲】寶塔面板快速搭建貪吃蛇小游戲Web網站 - 無需云服務器

    轉載自遠程內網穿透的文章:Linux使用寶塔面板搭建網站,并內網穿透實現(xiàn)公網訪問 寶塔面板作為簡單好用的服務器運維管理面板,它支持Linux/Windows系統(tǒng),我們可用它來一鍵配置LAMP/LNMP環(huán)境、網站、數(shù)據(jù)庫、FTP等,通過Web端輕松管理服務器。 以下教程,我們將演示使用寶塔

    2024年02月05日
    瀏覽(28)
  • Python編寫簡易猜數(shù)字小游戲(附完整代碼)

    Python編寫簡易猜數(shù)字小游戲(附完整代碼) 猜數(shù)字游戲是一款非常經典的小游戲,本文將介紹如何使用Python編寫一個簡易的猜數(shù)字游戲,并提供完整的源代碼。 首先,讓我們了解一下游戲規(guī)則。游戲開始時,程序會隨機生成一個1到100之間的數(shù)字,玩家需要通過輸入數(shù)字來猜

    2024年02月08日
    瀏覽(28)
  • python實現(xiàn)簡易數(shù)獨小游戲

    python實現(xiàn)簡易數(shù)獨小游戲

    起源 既然“數(shù)獨”有一個字是“數(shù)”,人們也往往會聯(lián)想到數(shù)學,那就不妨從大家都知道的數(shù)學家歐拉說起,但凡想了解數(shù)獨歷史的玩家在網絡、書籍中搜索時,共同會提到的就是歐拉的“拉丁方塊(Latin square)”。 拉丁方塊的規(guī)則:每一行(Row)、每一列(Column)均含1

    2024年02月05日
    瀏覽(18)
  • 基于Python pygame簡易版斗獸棋小游戲源代碼

    基于Python pygame簡易版斗獸棋小游戲源代碼

    基于Python pygame簡易版斗獸棋小游戲源代碼 游戲規(guī)則如下: 勝利條件: 1.吃掉對方全部棋子 2.走入對方獸穴(不可進入自己洞穴) 吃法: 1.象獅虎豹狼狗貓鼠象 2.同類棋子先行者吃掉對方 3.老鼠可以進河,老鼠在河里時,岸上的動物不能捕食他,他也不能捕食岸上的動物 4.獅虎在河中沒

    2023年04月09日
    瀏覽(101)
  • 實現(xiàn)用java做一個簡易版《羊了個羊》小游戲(附源代碼)

    實現(xiàn)用java做一個簡易版《羊了個羊》小游戲(附源代碼)

    該項目是跟著這個b站視頻一步一步寫出來的,初學java有些地方我看不是很明白,但是講解很仔細,大家可以看原視頻,我沒有添加背景音樂和背景圖片,做出來的效果也勉勉強強。 代碼已經上傳到github上了,大家可以去github上直接下載代碼,附上鏈接:點擊進入github源碼鏈接

    2024年02月04日
    瀏覽(220)
  • Python貪吃蛇小游戲

    Python貪吃蛇小游戲 若程序錯誤,請去終端下載random, turtle, freegames pip install random pip install turtle pip install freegames from random import randrange from turtle import * from freegames import square, vector food = vector(0, 0) snake = [vector(10, 0)] aim = vector(0, -10) def change(x, y): ??? \\\"\\\"\\\"Change snake direction.\\\"\\\"\\\" ???

    2024年02月03日
    瀏覽(25)
  • 寶塔面板快速搭建貪吃蛇小游戲web網站 - 無需云服務器,網站發(fā)布上線

    寶塔面板快速搭建貪吃蛇小游戲web網站 - 無需云服務器,網站發(fā)布上線

    轉載自遠程內網穿透的文章:Linux使用寶塔面板搭建網站,并內網穿透實現(xiàn)公網訪問 寶塔面板作為簡單好用的服務器運維管理面板,它支持Linux/Windows系統(tǒng),我們可用它來一鍵配置LAMP/LNMP環(huán)境、網站、數(shù)據(jù)庫、FTP等,通過Web端輕松管理服務器。 以下教程,我們將演示使用寶塔

    2024年02月05日
    瀏覽(37)
  • 【用python做一個貪吃蛇小游戲】

    引言: 貪吃蛇是一款經典的小游戲,它既簡單又有趣。在本文中,我們將使用Python編寫一個貪吃蛇小游戲,通過這個項目來學習如何利用Python的基礎知識和圖形界面庫來創(chuàng)建一個簡單的游戲。 介紹: 貪吃蛇游戲的目標是控制一條蛇在屏幕上移動并吃掉食物,每吃掉一塊食物

    2024年02月08日
    瀏覽(26)
  • python快速實現(xiàn)2048小游戲

    python快速實現(xiàn)2048小游戲

    《2048》是一款比較流行的數(shù)字游戲,最早于2014年3月20日發(fā)行。原版2048首先在GitHub上發(fā)布,原作者是Gabriele Cirulli,后被移植到各個平臺。這款游戲是基于《1024》和《小3傳奇》的玩法開發(fā)而成的新型數(shù)字游戲。 操作指南: 每次可以選擇上下左右其中一個方向去滑動,每滑動

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包