python简单小游戏代码200行(python入门小游戏代码20行)

http://www.itjxue.com  2023-02-01 05:11  来源:未知  点击次数: 

求大神编一个python 200-300行的小游戏(比如贪食蛇 俄罗斯方块 剪刀石头布一类的)求速度 真的 就4天

skier_images = ["skier_down.png", "skier_right1.png", "skier_right2.png",

"skier_left2.png", "skier_left1.png"]

# class for the skier sprite

class SkierClass(pygame.sprite.Sprite):

def __init__(self):

pygame.sprite.Sprite.__init__(self)

self.image = pygame.image.load("skier_down.png")

self.rect = self.image.get_rect()

self.rect.center = [320, 100]

self.angle = 0

def turn(self, direction):

# load new image and change speed when the skier turns

self.angle = self.angle + direction

if self.angle -2: self.angle = -2

if self.angle 2: self.angle = 2

center = self.rect.center

self.image = pygame.image.load(skier_images[self.angle])

self.rect = self.image.get_rect()

self.rect.center = center

speed = [self.angle, 6 - abs(self.angle) * 2]

return speed

def move(self, speed):

# move the skier right and left

self.rect.centerx = self.rect.centerx + speed[0]

if self.rect.centerx 20: self.rect.centerx = 20

if self.rect.centerx 620: self.rect.centerx = 620

# class for obstacle sprites (trees and flags)

class ObstacleClass(pygame.sprite.Sprite):

def __init__(self, image_file, location, type):

pygame.sprite.Sprite.__init__(self) #call Sprite initializer

self.image_file = image_file

self.image = pygame.image.load(image_file)

self.location = location

self.rect = self.image.get_rect()

self.rect.center = location

self.type = type

self.passed = False

def scroll(self, terrainPos):

self.rect.centery = self.location[1] - terrainPos

# create one "screen" of terrain: 640 x 640

# use "blocks" of 64 x 64 pixels, so objects aren't too close together

def create_map(start, end):

obstacles = pygame.sprite.Group()

locations = []

gates = pygame.sprite.Group()

for i in range(10): # 10 obstacles per screen

row = random.randint(start, end)

col = random.randint(0, 9)

location = [col * 64 + 20, row * 64 + 20] #center x, y for obstacle

if not (location in locations): # prevent 2 obstacles in the same place

locations.append(location)

type = random.choice(["tree", "flag"])

if type == "tree": img = "skier_tree.png"

elif type == "flag": img = "skier_flag.png"

obstacle = ObstacleClass(img, location, type)

obstacles.add(obstacle)

return obstacles

# redraw the screen, including all sprites

def animate():

screen.fill([255, 255, 255])

pygame.display.update(obstacles.draw(screen))

screen.blit(skier.image, skier.rect)

screen.blit(score_text, [10, 10])

pygame.display.flip()

def updateObstacleGroup(map0, map1):

obstacles = pygame.sprite.Group()

for ob in map0: obstacles.add(ob)

for ob in map1: obstacles.add(ob)

return obstacles

# initialize everything

pygame.init()

screen = pygame.display.set_mode([640,640])

clock = pygame.time.Clock()

skier = SkierClass()

speed = [0, 6]

map_position = 0

points = 0

map0 = create_map(20, 29)

map1 = create_map(10, 19)

activeMap = 0

# group for all obstacles to do collision detection

obstacles = updateObstacleGroup(map0, map1)

# font object for score

font = pygame.font.Font(None, 50)

# main Pygame event loop

while True:

clock.tick(30)

for event in pygame.event.get():

if event.type == pygame.QUIT: sys.exit()

if event.type == pygame.KEYDOWN: # check for key presses

if event.key == pygame.K_LEFT: # left arrow turns left

speed = skier.turn(-1)

elif event.key == pygame.K_RIGHT: #right arrow turns right

speed = skier.turn(1)

skier.move(speed)

map_position += speed[1] # scroll the terrain

# manage terrain maps, switch between them,

# and create new terrain at the bottom

if map_position =640 and activeMap == 0:

activeMap = 1

map0 = create_map(20, 29)

obstacles = updateObstacleGroup(map0, map1)

if map_position =1280 and activeMap == 1:

activeMap = 0

for ob in map0:

ob.location[1] = ob.location[1] - 1280 # wrap around to top

map_position = map_position - 1280 #

map1 = create_map(10, 19)

obstacles = updateObstacleGroup(map0, map1)

for obstacle in obstacles:

obstacle.scroll(map_position)

# check for hitting trees or getting flags

hit = pygame.sprite.spritecollide(skier, obstacles, False)

if hit:

if hit[0].type == "tree" and not hit[0].passed: #crashed into tree

points = points - 100

skier.image = pygame.image.load("skier_crash.png") # crash image

animate()

pygame.time.delay(1000)

skier.image = pygame.image.load("skier_down.png") # resume skiing

skier.angle = 0

speed = [0, 6]

hit[0].passed = True

elif hit[0].type == "flag" and not hit[0].passed: # got a flag

points += 10

obstacles.remove(hit[0]) # remove the flag

score_text = font.render("Score: " +str(points), 1, (0, 0, 0))

animate()

图片自己找,滑雪人

python简单小游戏代码 怎么用Python制作简单小游戏

1、Python猜拳小游戏代码:

2、import random #导入随机模块

3、

4、num = 1

5、yin_num = 0

6、shu_num = 0

7、while num 2:

12、 print('不能出大于2的值')

13、 else:

14、 data = ['石头', '剪刀', '布']

15、 com = random.randint(0, 2)

16、 print(您出的是{},电脑出的是{}.format(data[user], data[com]))

17、 if user == com:

18、 print('平局')

19、 continue

20、 elif (user == 0 and com == 1) or (user == 1 and com == 2) or (user == 2 and com == 0):

21、 print('你赢了')

22、 yin_num += 1

23、 else:

24、 print('你输了')

25、 shu_num += 1

26、 num += 1

27、Python数字炸弹小游戏代码:

28、import random

29、import time

30、

31、bomb = random.randint(1, 99)

32、print(bomb)

33、start = 0

34、end = 99

35、while 1 == 1:

36、

37、 people = int(input('请输入{}到{}之间的数:'.format(start, end)))

38、 if people bomb:

39、 print('大了')

40、 end = people

41、 elif people bomb:

42、 print('小了')

43、 start = people

44、 else:

45、 print('BOOM!!!')

46、 break

47、 print('等待电脑了输入{}到{}之间的数:'.format(start, end))

48、 time.sleep(1)

49、 com = random.randint(start + 1, end - 1)

50、 print('电脑输入:{}'.format(com))

51、 if com bomb:

52、 print('大了')

53、 end = com

54、 elif com bomb:

55、 print('小了')

56、 start = com

57、 else:

58、 print('BOOM!!!')

59、 break

300行代码,用Python写个飞机大战

春节这些天,闲赋在家,甚是无聊,便萌发了研究经典小 游戏 :飞机大战的念头,想必大家可能玩过微信的这款小 游戏 ,给我的感觉是这款 游戏 怎么可以做得这么好呢,操作简单,容易上手,简直是“老少皆宜”啊~

既然这款 游戏 这么棒,能否自己动手用 Python 来实现呢?事实证明是可以的。

先来看下飞机大战 游戏 最终实现的动态效果图。

在导入pygame之前,需要先使用命令:

进行包模块的安装

(1). __init__初始化方法:

进行 游戏 开始的初始化操作,包含:创建 游戏 窗口,创建 游戏 的敌机,背景等精灵

(2). __create_sprites创建精灵方法:

负责创建不同角色的精灵,并将其添加至精灵组

(3). start_game 游戏 开始方法:

负责播放背景音乐,使用while循环来设置刷新帧率、事件监听、碰撞检测、更新绘制精灵组、更新显示屏幕图像

(4). __event_handler事件监听方法:

负责监听用户在 游戏 界面的操作,例如:关闭 游戏 窗口,左右方向键的移动等

(5). __check_collide碰撞检测方法:

负责检测子弹是否碰撞到敌机,敌机是否碰撞到英雄飞机,然后做出相应的操作

(6). __update_sprites更新精灵方法:

负责各个角色精灵的更新并绘制到屏幕,展示给用户

(7). __game_over 游戏 结束方法:

当检测到碰撞事件的发生,判断是否需要调用该方法来退出 游戏

鼓励大家亲自动手实现一下这个小 游戏 ,还是挺有趣的。代码注释较为详细,在实践过程中,可以仔细阅读以便于加深理解。

用Python写一个简单的小游戏

相信大家都玩过俄罗斯方块吧,应该是小时候的回忆吧,但是想不想了解一下这个程序是怎么写出来的呢,自己写出来的应该玩起来更有感觉吧!

感觉还是蛮好玩吧!

接下来,我就分享一下这个游戏的源码过程啊!

先用python创建一个py文件

定义这次程序所需要的类

然后写出它所需要的模块

画背景图

画网格线

# 画已经落下的方块

# 画单个方块

# 画得分等信息

这样就可以写出来一个十分简单的俄罗斯方块啦,是不是觉得还不错呢!

python有趣的编程代码

class?Point:

??row=0

??col=0

??def?__init__(self,?row,?col):

????self.row=row

????self.col=col

??def?copy(self):

????return?Point(row=self.row,?col=self.col)

#初始框架

import?pygame

import?random

#初始化

pygame.init()

W=800

H=600

ROW=30

COL=40

size=(W,H)

window=pygame.display.set_mode(size)

pygame.display.set_caption('贪吃蛇')

bg_color=(255,255,255)

snake_color=(200,200,200)

head=Point(row=int(ROW/2),?col=int(COL/2))

head_color=(0,128,128)

snakes=[

??Point(row=head.row,?col=head.col+1),

??Point(row=head.row,?col=head.col+2),

??Point(row=head.row,?col=head.col+3)

]

#生成食物

def?gen_food():

??while?1:

????pos=Point(row=random.randint(0,ROW-1),?col=random.randint(0,COL-1))

????#

????is_coll=False

????#是否跟蛇碰上了

????if?head.row==pos.row?and?head.col==pos.col:

??????is_coll=True

????#蛇身子

????for?snake?in?snakes:

??????if?snake.row==pos.row?and?snake.col==pos.col:

????????is_coll=True

????????break

????if?not?is_coll:

??????break

??return?pos

#定义坐标

food=gen_food()

food_color=(255,255,0)

direct='left'???????#left,right,up,down

#

def?rect(point,?color):

??cell_width=W/COL

??cell_height=H/ROW

??left=point.col*cell_width

??top=point.row*cell_height

??pygame.draw.rect(

????window,?color,

????(left,?top,?cell_width,?cell_height)

??)

??pass

#游戏循环

quit=True

clock=pygame.time.Clock()

while?quit:

??#处理事件

??for?event?in?pygame.event.get():

????if?event.type==pygame.QUIT:

??????quit=False

????elif?event.type==pygame.KEYDOWN:

??????if?event.key==273?or?event.key==119:

????????if?direct=='left'?or?direct=='right':

??????????direct='up'

??????elif?event.key==274?or?event.key==115:

????????if?direct?==?'left'?or?direct?==?'right':

??????????direct='down'

??????elif?event.key==276?or?event.key==97:

????????if?direct?==?'up'?or?direct?==?'down':

??????????direct='left'

??????elif?event.key==275?or?event.key==100:

????????if?direct?==?'up'?or?direct?==?'down':

??????????direct='right'

??#吃东西

??eat=(head.row==food.row?and?head.col==food.col)

??#重新产生食物

??if?eat:

????food?=?gen_food()

??#处理身子

??#1.把原来的头,插入到snakes的头上

??snakes.insert(0,?head.copy())

??#2.把snakes的最后一个删掉

??if?not?eat:

????snakes.pop()

??#移动

??if?direct=='left':

????head.col-=1

??elif?direct=='right':

????head.col+=1

??elif?direct=='up':

????head.row-=1

??elif?direct=='down':

????head.row+=1

??#检测

??dead=False

??#1.撞墙

??if?head.col0?or?head.row0?or?head.col=COL?or?head.row=ROW:

????dead=True

??#2.撞自己

??for?snake?in?snakes:

????if?head.col==snake.col?and?head.row==snake.row:

??????dead=True

??????break

??if?dead:

????print('死了')

????quit=False

??#渲染——画出来

??#背景

??pygame.draw.rect(window,?bg_color,?(0,0,W,H))

??#蛇头

??for?snake?in?snakes:

????rect(snake,?snake_color)

??rect(head,?head_color)

??rect(food,?food_color)

??#

??pygame.display.flip()

??#设置帧频(速度)

??clock.tick(8)

#收尾工作

这是一个简易版贪吃蛇的代码,虽然结构简单,但是该有的功能都是完整的,可玩性也不错

求个Python小游戏

浅浅的笑着:“我会带着你的孩子,

顚节进入

Python程序开发之简单小程序实例 (11)小 游戏 -跳动的小球 一、项目功能 用户控制挡板来阻挡跳动的小球。 二、项目分析 根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。在控制小球的类中,我们还需要考虑当小球下降时,碰到挡板时的位置判断。 三、程序源代码 源码部分截图: 源码: #!/usr/bin/python3.6 # -*- coding: GBK -*- #导入相应模块 from tkinter import * import random import time #自定义小球的类 Ball class Ball: # 初始化 def __init__(self,canvas,paddle,color): #传递画布值 self.canvas=canvas #传递挡板值 self.paddle=paddle #画圆并且保存其ID self.id=canvas.create_oval(10,10,25,25,fill=color) self.canvas.move(self.id,245,100) #小球的水平位置起始列表 start=[-3,-2,-1,1,2,3] #随机化位置列表 random.shuffle(start) self.x=start[0] self.y=-2 self.canvas_heigh=self.canvas.winfo_height()#获取窗口高度并保存 self.canvas_width=self.canvas.winfo_width() #根据参数值绘制小球 def draw(self): self.canvas.move(self.id,self.x,self.y) pos=self.canvas.coords(self.id)#返回相应ID代表的图形的当前坐标(左上角和右上角坐标) #使得小球不会超出窗口 pad=self.canvas.coords(self.paddle.id)#获取小球挡板的坐标 if pos[1]=self.canvas_heigh or(pos[3]=pad[1] and pos[2]=pad[0] and pos[2]

(责任编辑:IT教学网)

更多

推荐MYSQL文章