最近有很多的同学问,能不能用Python做出一个小游戏来,而且更好要讲清楚每一段干嘛是用来干嘛的
那行,今天将来讲解一下用Python pygame做一个贪吃蛇的小游戏
据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python *** 的这个贪吃蛇小游戏是一个像素版的,虽然简陋,但还是可以玩起来的
import pygame import random import copy
pygame.init() clock = pygame.time.Clock() # 设置游戏时钟 pygame.display.set_caption("贪吃蛇-解答、源码、相关资料可私信我") # 初始化标题 screen = pygame.display.set_mode((500, 500)) # 初始化窗口 窗体的大小为 500 500
snake_list = [[10, 10]]
move_up = False move_down = False move_left = False move_right = True
x = random.randint(10, 490) y = random.randint(10, 490) food_point = [x, y]
running = True while running: # 游戏时钟 刷新频率 clock.tick(20)
screen.fill([255, 255, 255])
for x in range(0, 501, 10): pygame.draw.line(screen, (195, 197, 199), (x, 0), (x, 500), 1) pygame.draw.line(screen, (195, 197, 199), (0, x), (500, x), 1) food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0)
snake_rect = [] for pos in snake_list: # 1.7.1 绘制蛇的身子 snake_rect.append(pygame.draw.circle(screen, [255, 0, 0], pos, 5, 0))
pos = len(snake_list) - 1 while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1
if move_up: snake_list[pos][1] -= 10 if snake_list[pos][1] < 0: snake_list[pos][1] = 500
if move_down: snake_list[pos][1] += 10 if snake_list[pos][1] > 500: snake_list[pos][1] = 0
if move_left: snake_list[pos][0] -= 10 if snake_list[pos][0] < 0: snake_list[pos][0] = 500
if move_right: snake_list[pos][0] += 10 if snake_list[pos][0] > 500: snake_list[pos][0] = 0
for event in pygame.event.get(): # print(event) # 判断按下的按键 if event.type == pygame.KEYDOWN: # 上键 if event.key == pygame.K_UP: move_up = True move_down = False move_left = False move_right = False # 下键 if event.key == pygame.K_DOWN: move_up = False move_down = True move_left = False move_right = False # 左键 if event.key == pygame.K_LEFT: move_up = False move_down = False move_left = True move_right = False # 右键 if event.key == pygame.K_RIGHT: move_up = False move_down = False move_left = False move_right = True
pos = len(snake_list) - 1 while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1
if food_rect.collidepoint(pos): # 贪吃蛇吃掉食物 snake_list.append(food_point) # 重置食物位置 food_point = [random.randint(10, 490), random.randint(10, 490)] food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0) break
head_rect = snake_rect[0] count = len(snake_rect) while count > 1: if head_rect.colliderect(snake_rect[count - 1]): running = False count -= 1
pygame.display.update()
尽管苹果一直在警告侧载应用程序的危险性,并坚持对上架 App Store 的应用展开严格的审查。但由于 TestFlight 和 WebClips 这两项功能的存在,越来越多的恶意软件开发者正在积极利用这两大“官方漏洞”。比如欺诈者可忽悠 iPhone / iPad 用户侧带有恶意软件的应用程序,进...
早些时候,美国卫星通信服务提供商 Viasat 遭受了一轮网络攻击,结果导致中东欧地区的服务出现了中断。而由 SentinelLabs 研究人员 Juan Andres Guerrero-Saade 和 Max van Amerongen 最新发布的安全研究报告可知,这口锅应该扣在一款名为“酸雨”(...
乌克兰计算机应急响应小组(CERT-UA)在周二的一份安全公告中称,他们刚刚破坏了 Sandworm 想要攻陷一家该国能源供应商的企图。据说 Sandworm 是一个与俄罗斯军事情报部门有关联的黑客组织,期间试图利用臭名昭著的新版 Industroyer 恶意软件,来切断未具名的某能源供应商的变电站...
Hackernews编译,转载请注明出处: 一个企业网络间谍黑客组织在消失了7个月后重新浮出水面,今年它针对4家公司进行新入侵行动,其中包括俄罗斯最大的批发商店之一,同时对其工具集进行了战术性改进,以试图阻挠分析。 Group-IB 的伊万 · 皮萨列夫说: “在每一次攻击中,攻击者都展示了广泛的...
电动汽车(EV)革命来了。在过去的十年里,插电式混合动力电动车已经从16000辆增长到超过200万辆,汽车高管们预计到2030年,超过50%的美国汽车将是全电动的。不难看出,专家们为何做出如此乐观的预测。除了不断增长的电动汽车车队,今年早些时候签署的美国国会两党基础设施协议将包括75亿美元,以帮助规...
援引 BBC News 报道,伦敦警方已经逮捕了 7 名青年,怀疑他们和近期非常猖獗的黑客组织 Lapsus$ 有关。在一份提交给 The Verge 的声明中,伦敦市警方的探长迈克尔·奥沙利文表示:“伦敦市警方一直在与合作伙伴一起对一个黑客组织的成员进行调查。在调查中有 7 名年龄在 16-21...