python贪吃蛇代码_python 贪吃蛇

python贪吃蛇代码_python 贪吃蛇importpygamefrompygame.localsimport*fromsysimportexitfrompygame.colorimportTHECOLORSimportrandomcellsize=20width=640height=480cellw=int(width/cellsize)cellh=int(height/ce…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

import pygame
from pygame.locals import *
from sys import exit
from pygame.color import THECOLORS
import random
import sys
cellsize = 20
width = 640
height = 480
cellw = int(width/cellsize)
cellh = int(height/cellsize)
speed = 15
right = 'right'
left = 'left'
up = 'up'
down = 'down'
rctwidth = 0
rctwidth2 = 1
color = 0,255,0
color3 = 0,250,0
direction = right
ap = { 'x': 0, 'y': 0}
color1 = 199, 21, 133
count = 3

def main():
    global speed, speedCLOCK,ap,count, screen
    pygame.init()
    count = 3
    speedCLOCK = pygame.time.Clock()
    pygame.display.set_caption("Hello, World!")
    screen = pygame.display.set_mode((width, height))
    screen.fill((0, 0, 0))
    pygame.display.flip()
    while True:
        for event in pygame.event.get():
            keys = pygame.key.get_pressed()
            if keys[K_BACKSPACE]:
                pygame.quit()
                sys.exit()
        ap = randomplace()
        snakeoriginalbody()
        gameover()
        print(randomplace())
        return

def snakeoriginalbody():
    k = 10
    startx = random.randint( 5, cellw - 6)
    starty = random.randint( 5, cellh - 6)
    snake = [ { 'x': startx, 'y': starty},
              { 'x': startx - 1, 'y': starty },
              { 'x': startx - 2, 'y': starty }]
    while True:
        movdirection( snake)
        drawsnake(snake)
        pygame.display.update()
        if snake[0]['x'] < 0 or snake[0]['x'] == cellw :
            return
        if snake[0]['y'] < 0 or snake[0]['y'] ==cellh :
            return
        k = count-1
        while k >1 :
            if snake[0]['x'] == snake[k]['x'] and snake[0]['y'] == snake[k]['y']:
                return
            k -= 1

def movdirection( snake):
    global direction,ap,count
    keys = pygame.key.get_pressed()
    if keys[K_RIGHT]:
        direction = right
    if keys[K_LEFT]:
        direction = left
    if keys[K_UP]:
        direction = up
    if keys[K_DOWN]:
        direction = down
    if keys[K_BACKSPACE]:
        pygame.quit()
        sys.exit()
    if direction == right :
        newsnkehead = { 'x': snake[0]['x'] + 1, 'y': snake[0]['y']}
    if direction == left :
        newsnkehead = { 'x': snake[0]['x'] - 1, 'y': snake[0]['y']}
    if direction == up :
        newsnkehead = { 'x': snake[0]['x'], 'y': snake[0]['y'] - 1}
    if direction == down :
        newsnkehead = { 'x': snake[0]['x'], 'y': snake[0]['y'] + 1}
    snake.insert(0, newsnkehead)
    if snake[0]['x'] == ap['x'] and snake[0]['y'] == ap['y']:
        ap = randomplace()
        count +=1
        return
    else:
        snake.pop(count)

def drawsnake(snake):
    global screen
    screen = pygame.display.set_mode((width, height))
    for coord in snake:
            pos = coord['x'] * cellsize, coord['y'] * cellsize, cellsize, cellsize
            pygame.draw.rect(screen, color, pos, rctwidth)
            pygame.draw.rect(screen, color3, pos, rctwidth2)
            pos = ap['x'] * cellsize, ap['y'] * cellsize,cellsize,cellsize
            pygame.draw.rect(screen, color1, pos, rctwidth)  
            over = pygame.font.SysFont('arial', 60)
            textImage = over.render("socre %.d" % (count - 3), True, color)
            screen.blit(textImage, (450, 60))
    over = pygame.font.SysFont('arial', 60)
    textImage = over.render("socre %.d" % (count - 3), True, color)
    screen.blit(textImage, (450, 60))
    speedCLOCK.tick(speed)
    pygame.display.flip()

def randomplace():
    return{ 'x': random.randint( 0, cellw - 1), 'y': random.randint( 0, cellh - 1)}
def gameover():
    screen = pygame.display.set_mode((width, height))
    over = pygame.font.SysFont('arial', 60)
    over2 = pygame.font.SysFont('arial',30)
    textImage = over.render("game over", True, color)
    screen.blit(textImage, (200, 200))
    textImage2 = over2.render("press L-CTRL to restar", True, color)
    screen.blit(textImage2, (200, 300))
    pygame.display.update()
    while True:
        for event in pygame.event.get():
            keys = pygame.key.get_pressed()
            if  keys[K_BACKSPACE]:
                pygame.quit()
                sys.exit()
            if  keys[K_LCTRL]:
                main()
main()

自学python 第一次尝试编程贪吃蛇,尚有不足之处!还要继续学习!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169544.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu外接显示器无信号_ubuntu笔记本外接显示器

    ubuntu外接显示器无信号_ubuntu笔记本外接显示器Overview 主机配置 启用远程控制 安装软件和支持 其它 注意事项 Reference 主机配置系统:Ubuntu18.04 显卡:Intel集成显卡启用远程控制首先要确保开机能够自动启动远程控制。Ubuntu18自带远程桌面控制服务软件;这里不具体写步骤,自行上网搜索。确保上述远程桌面控制能够开机自启动!!!确保上述远程桌面控制能够开机自启动!!!确保上述远程桌面控制能够开机自启动!!!Ubuntu18自带的远程桌面控制

    2022年8月21日
  • Linux 安装tomcat 部署war包项目

    Linux 安装tomcat 部署war包项目准备工作:jdk-8u161-linux-x64.tar.gz链接:https://pan.baidu.com/s/1zQGL_cfN5jFWshZkAJOkNw密码:0u7dapache-tomcat-9.0.20.zip链接:https://pan.baidu.com/s/1Nf_qdmUVlQ0Cz8BOoQg2rA密码:bh9f以及你的war包…

    2022年6月11日
  • 酒店管理系统程序设计[通俗易懂]

    酒店管理系统程序设计[通俗易懂]酒店管理系统程序设计随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。市场经济的发展,消费者消费意识的提高,酒店行业的竞争越来越激烈。为了提高办事效率,增加、保证酒店的销售额,树立酒店的良好形象,运用科学的管理方法非常必要。客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。我力求开发一个界面友好,功能强大,使

    2022年9月2日
  • Dronekit代码学习(三)控制无人机前后左右升降俯仰

    Dronekit代码学习(三)控制无人机前后左右升降俯仰Dronekit代码学习(三)控制无人机前后左右升降俯仰控制无人机前后左右升降俯仰代码如下:起飞5m后,右5m,前方5m,升2m,返航,关闭连接升降是反的#-*-coding:utf-8-*-”’—————————————————————————控制无人机前后左右升降俯仰…

    2022年8月15日
  • SQLException: #22001你知道这个错误码吗

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!文章目录java.sql.SQLException: #22001结论问题排查解决自己的一点小思考java.sql.SQLException: #22001java.sql.SQLException: #22001 at com.mysql.jdbc.SQLError.createSQLException(SQ…

    2022年2月28日
  • PCA9685–16路 PWM模块舵机驱动板–STM32 IIC接口模块[通俗易懂]

    PCA9685–16路 PWM模块舵机驱动板–STM32 IIC接口模块[通俗易懂]目录一、概述和硬件1、概述2、硬件1、电压2、i2c地址3、使能脚二、寄存器功能 MODE1寄存器外面调用的接口  PCA9685是一款基于IIC总线通信的12位精度16通道PWM波输出的芯片,该芯片最初由NXP推出时主要面向LED开关调光,16路12位PWM信号发生器,可用于控制舵机、led、电机等设备,i2c通信,节省主机资源。就是想控制好几…

    2022年11月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号