成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > python實現(xiàn)雙人貪吃蛇小游戲

python實現(xiàn)雙人貪吃蛇小游戲

熱門標簽:旅游廁所地圖標注怎么弄 南昌地圖標注 電梯新時達系統(tǒng)外呼顯示e 宿州電話機器人哪家好 成都呼叫中心外呼系統(tǒng)哪家強 地圖標注與注銷 百應電話機器人總部 無錫智能外呼系統(tǒng)好用嗎 西青語音電銷機器人哪家好

小編今天要給大家分享的是雙人貪吃蛇,大家可以和自己的兄弟,姐妹,爸爸,媽媽等一起玩喲!我先介紹一下游戲:

運行游戲,進入初始界面,按下空格鍵。

玩家(1):w,a,s,d

玩家(2):↑,←,↓,→

玩家要爭奪7個實物,直到吃完為止

游戲結束。

下面是小編寫的代碼:

import math
import random
import pygame
from pygame.locals import *
 
running = False
playing = False
screen = None
timer = None
snk1 = None
snk2 = None
foods = None
remainFoods = 7
radiusFood = 8
 
'''
鏈表節(jié)點
'''
class Node:
    def __init__(self, data, prev = None, next = None):
        self.data = data
        self.prev = prev
        self.next = next
 
    def insert_front(self, node):
        if self.prev:
            node.prev = self.prev
            self.prev.next = node
            self.prev = node
            node.next = self
        else:
            self.prev = node
            node.next = self
        return node
 
    def insert_back(self, node):
        if self.next:
            node.next = self.next
            self.next.prev = node
            self.next = node
            node.prev = self
        else:
            self.next = node
            node.prev = self
        return node
    
    def remove(self):
        if self.next:
            self.next.prev = self.prev
        if self.prev:
            self.prev.next = self.next
 
'''
蛇
'''
class Snack:
 
    def __init__(self, surface, color, start_pos, end_pos, face):
        self.color = color
        self.surface = surface
        self.head = Node(start_pos)
        self.tail = Node(end_pos)
        self.head.insert_back(self.tail)
        self.length = self.distanceBetween(start_pos, end_pos)
        self.face = face
        self.speed = 120
        self.eat = 0
        self.grow = 0
        self.mapAngle = [
            [0, math.pi * 3 / 2, math.pi / 2],
            [0, math.pi * 7 / 4, math.pi / 4],
            [math.pi, math.pi * 5 / 4, math.pi * 3 / 4]
        ]
 
    '''坐標取整'''
    def intPos(self, pos):
        return (int(pos[0]), int(pos[1]))
 
    '''坐標轉(zhuǎn)角度'''
    def pos2Angle(self, pos):
        return self.mapAngle[pos[0]][pos[1]]
 
    '''極坐標位移'''
    def polarPos(self, pos, angle, dis):
        xx = pos[0] + dis * math.cos(angle)
        yy = pos[1] + dis * math.sin(angle)
        return (xx, yy)
 
    '''計算兩點間距離'''
    def distanceBetween(self, pos1, pos2):
        dx = pos2[0] - pos1[0]
        dy = pos2[1] - pos1[1]
        return math.sqrt(dx*dx + dy*dy)
    
    '''計算兩點間角度'''
    def angleBetween(self, pos1, pos2):
        dx = pos2[0] - pos1[0]
        dy = pos2[1] - pos1[1]
        return math.atan2(dy, dx)
 
    '''改變面向'''
    def changeFace(self, newFace):
        if newFace[0] == 0 and newFace[1] == 0:
            return
        if newFace == self.face:
            return
        xx = self.face[0] + newFace[0]
        yy = self.face[1] + newFace[1]
        if xx == 0 and yy == 0:
            return
        self.face = newFace
        self.head = self.head.insert_front(Node(self.head.data))
 
    '''吃到食物'''
    def eatFood(self, grow):
        self.grow = grow
        self.eat += 1
 
    '''繪制蛇身'''
    def draw(self):
        node = self.head
        pygame.draw.circle(self.surface, self.color, self.intPos(node.data), 6, 6)
        while node:
            n2 = node.next 
            if not n2:
                break
            pygame.draw.line(self.surface, self.color, self.intPos(node.data), self.intPos(n2.data), 6)
            node = node.next
    
    '''每幀移動'''
    def walk(self, delta):
        dis = self.speed * delta / 1000
        self.head.data = self.polarPos(self.head.data, self.pos2Angle(self.face), dis)
        if self.grow >= dis:
            self.grow -= dis
        else:
            dis -= self.grow
            self.grow = 0
            self.cutTail(dis)
    
    '''收縮尾巴'''
    def cutTail(self, length):
        node = self.tail
        while length > 0:
            n2 = node.prev
            dis = self.distanceBetween(n2.data, node.data)
            angle = self.angleBetween(node.data, n2.data)
            if dis > length:
                node.data = self.polarPos(node.data, angle, length)
                length = 0
            else:
                self.tail = node.prev
                node.remove()
                length -= dis
 
            node = node.prev
 
'''屏幕指定位置繪制文字'''
def printText(surface, str, pos, size = 24, color = (255, 255, 255)):
    global screen
    font = pygame.font.SysFont("microsoftyaheimicrosoftyaheiui", size)
    text = font.render(str, True, color)
    w = text.get_width()
    h = text.get_height()
    surface.blit(text, (pos[0] - w / 2, pos[1] - h / 2))
 
'''添加食物'''
def addFood():
    global screen, snk1, snk2, foods, remainFoods
    if remainFoods = 0:
        return
    w = screen.get_width()
    h = screen.get_height()
    while True:
        posX = random.randint(5, w - 5)
        posY = random.randint(5, h - 5)
        color = tuple(screen.get_at((posX, posY)))
        if color != snk1.color and color != snk2.color:
            break
    remainFoods -= 1
    if not foods:
        foods = Node((posX, posY))
    else:
        foods = foods.insert_front(Node((posX, posY)))
 
'''刪除食物'''
def removeFood(node):
    global foods
    if node == foods:
        foods = foods.next
    else:
        node.remove()
 
'''檢測吃到食物'''
def checkEatFood():
    global foods, radiusFood, snk1, snk2
    node = foods
    while node:
        if snk1.distanceBetween(snk1.head.data, node.data)  (radiusFood + 4):
            snk1.eatFood(50)
            removeFood(node)
            addFood()
            break
        elif snk2.distanceBetween(snk2.head.data, node.data)  (radiusFood + 4):
            snk2.eatFood(50)
            removeFood(node)
            addFood()
            break
        else:
            node = node.next
 
'''游戲初始界面'''
def logo():
    global screen, remainFoods
    w = screen.get_width()
    h = screen.get_height()
    printText(screen, "Snack V1.0", (w / 2, h / 3), 48)
    printText(screen, "任意鍵繼續(xù)", (w / 2, h / 2), 24, (55, 255, 55))
    printText(screen, str(remainFoods) + "個食物,搶完即止", (w / 2, h * 2 / 3), 32)
    
def quit():
    pygame.font.quit()
 
'''檢測游戲結束'''
def checkGameOver():
    global remainFoods, snk1, snk2, foods, playing, screen
    if remainFoods == 0 and foods == None:
        playing = False
        screen.fill((0,0,0))
        w = screen.get_width()
        h = screen.get_height()
        if snk1.eat > snk2.eat:
            printText(screen, "玩家1 勝利", (w / 2, h / 2), 48)
        elif snk1.eat  snk2.eat:
            printText(screen, "玩家2 勝利", (w / 2, h / 2), 48)
        else:
            printText(screen, "平局", (w / 2, h / 2), 48)
 
'''鍵盤按鍵轉(zhuǎn)換成面向角度'''
def cmd():
    global snk1, snk2
    keys = pygame.key.get_pressed()
    x1 = x2 = y1 = y2 = 0
    if keys[pygame.K_RIGHT]:
        x2+=1
    if keys[pygame.K_LEFT]:
        x2-=1
    if keys[pygame.K_UP]:
        y2+=1
    if keys[pygame.K_DOWN]:
        y2-=1
    if keys[pygame.K_d]:
        x1+=1
    if keys[pygame.K_a]:
        x1-=1
    if keys[pygame.K_w]:
        y1+=1
    if keys[pygame.K_s]:
        y1-=1
    snk1.changeFace((x1, y1))
    snk2.changeFace((x2, y2))
 
'''游戲每幀更新'''
def play(delta):
    global playing, snk1, snk2
    if not playing:
        return
    cmd()
    snk1.walk(delta)
    snk2.walk(delta)
    checkEatFood()
    checkGameOver()
 
'''繪制'''
def draw():
    global snk1, snk2, playing, screen, radiusFood, remainFoods
    if not playing:
        return
    screen.fill((0,0,0))
    snk1.draw()
    snk2.draw()
    node = foods
    while node:
        color = (255, 255, 255)
        if remainFoods == 0:
            color = (255, 0, 0)
        pygame.draw.circle(screen, color, node.data, radiusFood, radiusFood // 2 + 1)
        node = node.next
 
def start(width = 800, height = 600, fps = 60):
    global running, screen, timer, playing, snk1, snk2
    pygame.init()
    pygame.font.init()
    font = pygame.font.SysFont("microsoftyaheimicrosoftyaheiui", 20)
    pygame.display.set_caption("Snack V1.0")
    screen = pygame.display.set_mode((width, height))
    
    logo()
    snk1 = Snack(screen, (0, 150, 200), (100, 100), (0, 100), (1, 0))
    snk2 = Snack(screen, (255, 100, 0), (width * 5 // 6, height // 2), (width * 5 // 6 + 100, height // 2), (-1, 0))
    for i in range(3):
        addFood()
 
    timer = pygame.time.Clock()
    running = True
    while running:
        delta = timer.tick(fps)
        play(delta)
        draw()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE and playing == False:
                    screen.fill((0,0,0))
                    playing = True
 
        pygame.display.flip()
 
    
if __name__ == "__main__":
    start()
    quit()

以上就是雙人貪吃蛇的代碼啦!

教大家pygame的安裝方式

在終端輸入

pip install pyame,然后回車鍵進行安裝

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python貪吃蛇小游戲?qū)嵗窒?/li>
  • python貪吃蛇游戲代碼
  • Python寫的貪吃蛇游戲例子
  • 使用Python寫一個貪吃蛇游戲?qū)嵗a
  • Python 實現(xiàn) 貪吃蛇大作戰(zhàn) 代碼分享
  • Python貪吃蛇游戲編寫代碼
  • 利用python實現(xiàn)簡易版的貪吃蛇游戲(面向python小白)
  • 教你一步步利用python實現(xiàn)貪吃蛇游戲
  • python實現(xiàn)貪吃蛇游戲
  • Python實現(xiàn)貪吃蛇小游戲(單人模式)

標簽:七臺河 許昌 西安 辛集 贛州 雅安 濰坊 渭南

巨人網(wǎng)絡通訊聲明:本文標題《python實現(xiàn)雙人貪吃蛇小游戲》,本文關鍵詞  python,實現(xiàn),雙人,貪吃,蛇,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現(xiàn)雙人貪吃蛇小游戲》相關的同類信息!
  • 本頁收集關于python實現(xiàn)雙人貪吃蛇小游戲的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    ㊣最新国产の精品bt7086| 国产裸体美女永久免费无遮挡| 波多野结衣精品| 亚洲欧美一区二区久久| 国产麻豆精品久久一二三| 国产欧美一区二区精品忘忧草| 丝袜美腿亚洲综合| 亚洲精品国产精品久久清纯直播| www.av视频在线观看| 免费看成年视频网页| 亚洲 自拍 另类小说综合图区| 国产一区久久精品| 成人激情视频在线播放| a级在线免费观看| 中文字幕亚洲综合久久筱田步美| 一级性生活免费视频| 91免费国产网站| 亚洲av永久无码精品| 亚州精品天堂中文字幕| 91嫩草国产在线观看| 精品一区二区三区高清免费不卡| 国产美女久久久| 欧美特级限制片免费在线观看| 男女啊啊啊视频| 成人免费观看在线网址| 男女性高潮免费网站| 欧美在线小视频| 欧美激情videoshd| 秋霞av国产精品一区| 色爱综合网欧美| 国产精品一区专区| 久久久久麻豆v国产| 在线日本制服中文欧美| 免费在线黄色网| 欧美精品做受xxx性少妇| 91日韩视频| 一区免费观看视频| 日韩精品伦理第一区| 久久综合久久八八| 成人精品一区二区三区电影黑人| 欧美国产亚洲精品久久久8v| 国产美女免费视频| 午夜av一区二区三区| 99热国产在线中文| 日韩av一级片| 青青草原av在线| 这里只有精品丝袜| 久久精品国产一区二区三| 午夜cr在线观看高清在线视频完整版| h视频久久久| 日本亚洲一区二区| 一起草av在线| 国产经典一区| 91美女片黄在线观看游戏| 成人免费视频app| 向日葵污视频在线观看| 六九午夜精品视频| 亚洲精品影视在线观看| 亚洲系列在线观看| 久久天堂av综合合色蜜桃网| 日韩精品中文字幕视频在线| 亚洲第一区中文99精品| 国产亚洲精品免费| 日韩欧美在线免费| 国产精品国产三级国产| 日本一级淫片色费放| 亚洲一区二区免费| 亚洲在线免费播放| 九九久久久久午夜精选| 日本a视频在线观看| 91免费版在线观看| 亚洲精品乱码久久久久久动漫| 男人的天堂视频在线| 国产三级三级看三级| 国产精品久久久久久久久久辛辛| 欧美在线影院| 红桃成人av在线播放| 麻豆成人久久精品二区三区红| 久久av无码精品人妻系列试探| 国产精品27p| 午夜视频在线免费观看| 亚洲 欧美 日韩 在线| www.se五月| 北岛玲一区二区| 丝袜美腿成人在线| 国产精品久久三| 国产99久久久久久免费看农村| 国产福利91精品一区二区三区| 国产成人精品久久久| 阿v免费在线观看| 欧美卡一卡二| 成人性生活视频| 亚洲美女少妇撒尿| 一区二区三区欧美| 成人av资源网址| 亚洲jjzzjjzz在线观看| 国产精品激情av电影在线观看| 免费看黄在线看| 久久久美女视频| av在线中文| 欧美日韩一区成人| 色先锋av资源| a级网站在线观看| 亚洲视频777| 亚洲第一免费网站| 国产精选第一页| 日韩精品影院| 另类图片国产| 色吊丝av中文字幕| 久久最新视频| 99免费观看视频| 国内成+人亚洲+欧美+综合在线| 99re免费99re在线视频手机版| 久久久久久久久爱| 欧美巨大xxxx做受沙滩| 欧美一区二区三区视频免费| 伊人精彩视频| 日韩国产在线一区| 中文字幕乱码亚洲无线精品一区| 五月香视频在线观看| 久久久噜噜噜久久中文字幕色伊伊| 国产美女极度色诱视频www| 久久精品人人做人人爽人人| 国产aⅴ综合色| 欧美高清hd18日本| 精品国产乱码久久久久久浪潮| www黄在线观看| 精品少妇一区二区三区视频免付费| 成人一区二区在线观看| 国产综合福利在线| 波多野结衣亚洲| 国产激情视频网站| 污版视频在线观看| 国际av在线| 岳张嘴把我的精子吞下去| 午夜视频一区在线观看| 亚洲综合色自拍一区| 免费成人高清视频| 国产成人黄色片| 欧美极品aaaaabbbbb| 亚洲男女毛片无遮挡| 免费网站看黄yyy222| 色网站免费观看| 精品一区二区三区av| 久久天堂影院| 性折磨bdsm欧美激情另类| 99久久婷婷国产综合精品电影√| 人人干人人看| 国产精品久久九九| 蓝色福利精品导航| 中出在线观看| 亚洲综合在线中文字幕| 一区二区三区四区视频在线观看| 久久久久久久欧美精品| 国产欧美日韩精品丝袜高跟鞋| 日韩国产在线一区| 色尼玛亚洲综合影院| 自拍视频第一页| baoyu135国产精品免费| 日韩av在线免费播放| 在线观看精品视频| 天天干天天干天天操| 欧美视频观看一区| 日韩激情视频网站| 国产偷国产偷亚洲清高网站| 亚洲美女网站| 最新天堂资源在线资源| 色偷偷亚洲女人天堂观看欧| 秋霞蜜臀av久久电影网免费| 精品极品在线| 日韩欧美一区二区三区久久| 成人午夜av影视| 六月丁香久久丫| 亚洲精品午夜av福利久久蜜桃| 三级黄色录像视频| 久热re这里精品视频在线6| 亚洲成年人影院| 手机看片福利永久国产日韩| av7777777| 国产精品久久午夜| av在线收看| 色偷偷88欧美精品久久久| 亚洲综合小说| 成人国产免费电影| 日韩成人伦理电影在线观看| 亚洲欧美日韩一区二区| 黄色免费视频在线观看| 欧美人成在线| 在线观看理论片| 性娇小13――14欧美| 热草久综合在线| 久久97久久97精品免视看| 亚洲精品二区| 欧美撒尿777hd撒尿| 欧美日韩**字幕一区| 美女18一级毛片一品久道久久综合| 亚洲欧洲日韩av| 免费福利在线视频| 日本女人高潮视频| 色哟哟在线观看一区二区三区| 成人综合激情网| 国产精品欧美激情在线观看| 偷窥国产亚洲免费视频| 亚洲欧洲免费无码| 欧美一区深夜视频| 91av在线不卡| 欧美精品一区二区久久| 成年网站在线视频网站| 99热自拍偷拍| 国产综合色精品一区二区三区| 老司机精品久久| 福利视频1000| 日本边添边摸边做边爱的第三级| 激情成人综合网| 亚洲成年人影院在线| 日本在线视频观看| jizzjizzjizzjizz日本老师| 日韩黄色影片| 中文视频在线观看| 亚洲夜夜综合| 国产ts人妖调教重口男| 成人动漫视频在线| av大全在线免费看| 亚洲综合色区另类av| 久久精品小视频| 青青草草视频| 日韩欧美国产中文字幕| 99久久精品费精品国产一区二区| 影音先锋欧美精品| 成人一级片免费看| 黄色在线视频观看网站| 日本在线视频www鲁啊鲁| 国产理论在线观看| 一区二区三区日韩精品| 日韩不卡在线播放| 网曝91综合精品门事件在线| 精品国产乱码久久| 性色av一区二区咪爱| 午夜精品一区二区三区四区| 免费看成年人视频在线观看| 黄页网站在线观看| 99re久久最新地址获取| 天天爽夜夜爽夜夜爽精品视频| 韩国精品主播一区二区在线观看| 波多野结衣日韩| 日韩一级黄色av| 欧美二区在线观看| 日韩黄在线观看| av网站免费在线观看| 9191国产视频| 男人添女荫道口图片| 日本成人不卡| 国产精品久久色| gogogogo高清视频在线| 国产中文精品久高清在线不| 公肉吊粗大爽色翁浪妇视频| 精品人妻无码一区二区三区| 国产爆乳无码一区二区麻豆| 爱搞国产精品| 亚洲国产免费看| 肥婆老bbb肥婆bbbbb| 欧美特黄级在线| 国产精品99久久99久久久| 夜夜操天天操亚洲| 一区二区三区在线资源| 欧美精品乱码视频一二专区| 国产亚洲高清视频| 国产精品一二三四五区| 最新中文字幕在线观看| 成人精品毛片| 日韩的一区二区| 午夜精品一区二区三区四区| 欧美人与禽猛交乱配| 美女国内精品自产拍在线播放| 俄罗斯av网站| 乱人伦中文视频在线| 欧美最猛黑人xxxx黑人猛交3p| 亚洲中文字幕久久精品无码喷水| 午夜精品无码一区二区三区| 亚洲人午夜精品免费| 欧美深性狂猛ⅹxxx深喉| 国产色综合一区| 欧美日韩三级一区| 欧美日韩一区综合| 国产激情美女久久久久久吹潮| 日日骚av一区二区| 国产成人精品国内自产拍免费看| 亚洲一区二区精品| 精品欧美不卡一区二区在线观看| 日韩精品一区二区三区老鸭窝| 亚洲欧美怡红院| 欧美日韩一区二区免费在线观看| 欧美性生活影院| 欧美中文字幕视频在线观看| 精品国产乱码一区二区三| 久久精品一本| 国精产品一区一区三区有限在线| 在线免费看黄视频| 香蕉久久视频| 严阵以待中文社区| 99视频高清| 国产91中文| 手机av免费在线观看| 国产一级做a爱免费视频| 污污污www精品国产网站| 日本福利片在线| 潘金莲一级淫片aaaaa| 欧美性感美女一区二区| 日本午夜人人精品| 国产中文字幕免费| 黄页网站在线播放| 中文字幕天堂在线| 五月天亚洲综合小说网| 日日噜噜夜夜狠狠久久丁香五月| 国产精品久久久久久久免费大片| 日本精品免费一区二区三区| 午夜激情在线| 高清毛片aaaaaaaaa片| 亚洲一区二区三区在线视频| 狠狠人妻久久久久久综合蜜桃| 日本爱爱小视频| 亚洲美女激情视频| 亚洲tv在线观看| 日韩中文在线| 亚洲精品视频导航| 偷拍盗摄高潮叫床对白清晰| 日韩性xxxx爱| 天堂在线中文在线|