ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:22.75KB ,
资源ID:5657159      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5657159.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Python小游戏程序锦集.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Python小游戏程序锦集.docx

1、Python小游戏程序锦集可拖动地图的放大镜Demonstration of a draggable magnifier on a mapimport simplegui# 1521x1818 pixel map of native American language# Source - Gutenberg projectMAP_WIDTH = 1521MAP_HEIGHT = 1818map_image = simplegui.load_image(# ConstantsMAP_SCALE = 3CANVAS_WIDTH = MAP_WIDTH / MAP_SCALECANVAS_HEIGH

2、T = MAP_HEIGHT / MAP_SCALEMAGNIFIER_SIZE = 120# Event handlersdef click(pos): Reset center of magnifier pane to current click position magnifier_center0 = pos0 magnifier_center1 = pos1def drag(pos): Reset center of magnifier pane to current click position magnifier_center0 = pos0 magnifier_center1 =

3、 pos1def draw(canvas): Draw handler - draws map, magnifier pane, and box around magnifier # Draw map canvas.draw_image(map_image, (MAP_WIDTH / 2, MAP_HEIGHT / 2), (MAP_WIDTH, MAP_HEIGHT), (CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2), (CANVAS_WIDTH, CANVAS_HEIGHT) # Draw magnifier source_center = (MAP_SCALE

4、 * magnifier_center0, MAP_SCALE * magnifier_center1) canvas.draw_image(map_image, source_center, MAGNIFIER_SIZE, MAGNIFIER_SIZE, magnifier_center, MAGNIFIER_SIZE, MAGNIFIER_SIZE) # Draw outline around magnifier mag_left = magnifier_center0 - MAGNIFIER_SIZE / 2 mag_right = magnifier_center0 + MAGNIFI

5、ER_SIZE / 2 mag_top = magnifier_center1 - MAGNIFIER_SIZE / 2 mag_bottom = magnifier_center1 + MAGNIFIER_SIZE / 2 mag_topleft = (mag_left, mag_top) mag_topright = (mag_right, mag_top) mag_botleft = (mag_left, mag_bottom) mag_botright = (mag_right, mag_bottom) box = mag_topleft, mag_botleft, mag_botri

6、ght, mag_topright, mag_topleft canvas.draw_polyline(box, 4, Blue) # event handler for timerdef tick(): Move center of magnifier pane slowly down/right magnifier_center0 += 1 magnifier_center1 += 1# Create frame for mapframe = simplegui.create_frame(Map magnifier, CANVAS_WIDTH, CANVAS_HEIGHT)frame.se

7、t_draw_handler(draw)frame.set_mouseclick_handler(click)frame.set_mousedrag_handler(drag)# Create timer that slowly slides the magnifier panetimer = simplegui.create_timer(60.0,tick)# Start timer and frame animationmagnifier_center = CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2timer.start()frame.start()骰子骰子游戏

8、Dice game Craps - uses only control elements plus prints to consoleimport simpleguiimport randomdef gen_roll(): Helper function that rolls two dice and prints/returns the results die1 = random.randrange(0, 6) + 1 die2 = random.randrange(0, 6) + 1 print You rolled, str(die1), and, str(die2) return di

9、e1 + die2def process_roll(): Handler for roll, encodes basic logic for Craps global point, point_set, bankroll # print out message for new game if not point_set: print print New game. Your bet is, str(bet) # logic for first roll roll = gen_roll() if not point_set: if roll = 7 or roll = 11: bankroll

10、+= bet print You won. Your bankroll is, str(bankroll) elif roll = 2 or roll =3 or roll = 12: bankroll -= bet print You lost. Your bankroll is, str(bankroll) else: point = roll point_set = True print Your point is, str(point) # logic for subsequent rolls elif roll = 7: bankroll -= bet point_set = Fal

11、se print You crapped out! Your bankroll is, str(bankroll) elif roll = point: bankroll += bet point_set = False print You made your point! Your bankroll is, str(bankroll) def set_bet(inp): Input handler for changing bet size via input, forfeits current bet global bet, bankroll, point_set print if poi

12、nt_set: point_set = False bankroll -= bet print Forfeiting current bet. Your bankroll is, str(bankroll) bet = int(inp) print New bet size is, str(bet)# create frame and UI elementsframe = simplegui.create_frame(Craps, 200, 200)frame.add_button(Roll, process_roll, 200)frame.add_input(Set bet, set_bet

13、, 200)# initialize global variables used in gamepoint_set = Falsebet = 10bankroll = 1000print Your initial bankroll is, bankrollprint Your initial bet size is, betprint Click roll to start the gameframe.start()雪碧动画片Animation of explosion using 2D sprite sheetimport simplegui# load 9 x 9 frame sprite

14、 sheet for explosion - image generated by phaedy explosion generator, source is EXPLOSION_CENTER = 50, 50EXPLOSION_SIZE = 100, 100EXPLOSION_DIM = 9, 9explosion_image = simplegui.load_image(# define draw handlerdef draw(canvas): Draw handler for simple animation using 2D sprite sheet global counter e

15、xplosion_index = counter % EXPLOSION_DIM0, counter / EXPLOSION_DIM0 canvas.draw_image(explosion_image, EXPLOSION_CENTER0 + explosion_index0 * EXPLOSION_SIZE0, EXPLOSION_CENTER1 + explosion_index1 * EXPLOSION_SIZE1, EXPLOSION_SIZE, EXPLOSION_CENTER, EXPLOSION_SIZE) counter = (counter + 1) % (EXPLOSIO

16、N_DIM0 * EXPLOSION_DIM1) # create frame and size frame based on 100x100 pixel spriteframe = simplegui.create_frame(Asteroid sprite, EXPLOSION_SIZE0, EXPLOSION_SIZE1)# set draw handler and canvas background using custom HTML colorframe.set_draw_handler(draw)frame.set_canvas_background(Blue)# initiali

17、ze counter for animation and start framecounter = 0frame.start()俄罗斯方块# Falling blocks as in Tetris(BUT NOT REALLY), use arrow #keys to move sideways and stackimport simpleguiimport randomimport time#Player preferencesstart_level = 0left_movement = leftright_movement = rightclockwise_rotation = upcc_

18、rotation = downsoft_drop = xhard_drop = z# Standard Tetris grid is 10x22 blocks, top two row are # hidden# Define each block as 20 pixels#setting up the gui stuffwidth = 10height = 22block_size = 20frame_width = 16frame_height = 22#scoringnum_cleared = 0score = 0level = 0#define initial gridgrid = 7

19、 for j in range(height) for i in range(width)# define dictionary to lookup color from grid valuescolor_Dict = 0:Aqua, 1:Orange, 2:Blue, 3:Purple, 4:Red, 5:Lime, 6:Yellow, 7:White, 8: Black# define helpersdef draw_block(c,pos,color): draws a block with position pos on the canvas c c.draw_polygon(pos0

20、,pos1,pos0+block_size, pos1,pos0+block_size, pos1+block_size,pos0, pos1+block_size,1,White,color)# define callbacksdef draw(c): callback for draw handler, draw blocks represented by grid global frame_height global block_size global pos_list global num_cleared global score global level global start_l

21、evel c.draw_line(10*block_size,0), (10*block_size, frame_height*block_size), 15, Black) c.draw_text(Next Block:, (11*block_size, 1*block_size) , 12, Black) c.draw_text(Lines Cleared:, (11*block_size, 6*block_size), 12, Black) c.draw_text(str(num_cleared), (13*block_size, 7*block_size) , 12, Black) c

22、.draw_text(Score:, (11*block_size, 9*block_size), 12, Black) c.draw_text(str(score), (13*block_size, 10*block_size), 12, Black) c.draw_text(Level:, (11*block_size, 12*block_size), 12, Black) c.draw_text(str(level+start_level), (13*block_size, 13*block_size) , 12, Black) #drawing next block global wi

23、dth next_piece_offset = (width-2)*block_size, (2)*block_size #print next_piece_offset for pos in pos_list.piece_dictpos_list.next_piece: draw_block(c, pos0*block_size + next_piece_offset0, pos1*block_size + next_piece_offset1, color_Dictpos_list.next_piece) for i in range(width): for j in range(heig

24、ht): draw_block(c,i*block_size,j*block_size, color_Dictgridij)class Controls: def _init_(self, left_movement, right_movement, clockwise_rotation, cc_rotation, soft_drop, hard_drop): required init function self.previous_key = None self.left_movement = left_movement self.right_movement = right_movemen

25、t self.clockwise_rotation = clockwise_rotation self.cc_rotation = cc_rotation #still need to do self.soft_drop = soft_drop self.hard_drop = hard_drop #still need to do def keydown_handler(self, key): The keydown handler if self.previous_key = None: self.previous_key = key self.key = key self.keydown

26、() #so that holding down is not #necessary self.timer = simplegui.create_timer(1000.0/7, self.keydown) self.timer.start() def keydown(self): key handler that control sideways motion of blocks global pos_list global pos #finding the side pieces lowest_val = width highest_val = 0 left_blocks = right_b

27、locks = for pos in pos_list.piece: if pos0 highest_val: highest_val = pos0 right_blocks = right_blocks .append(pos) if pos0 = highest_val: right_blocks .append(pos) fall = check_fall() right, left = check_sideways() if self.key =simplegui.KEY_MAP self.left_movement and left_blocks00 != 0 and left: #

28、update old squares to be white for block in pos_list.piece: gridblock0block1= 7 pos_list.move_piece(-1,0) elif self.key = simplegui.KEY_MAP self.right_movement and right_blocks00 != width-1 and right: #update old squares to be white for block in pos_list.piece: gridblock0block1= 7 pos_list.move_piece(1,0) elif self.key = simplegui.KEY_MAP self.hard_drop and fall: while fall: #update old squares

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1