「Pygame实战」众志成城同心战疫,为抗疫加油!(附抗疫小游戏)

前言

今年,已经是我们和新冠疫情共处的第三年。不聚集,不远行,成了疫情之下的生活常态。

但意外和明天,你永远不知道哪个先来。

就在我们以为寒冬将尽,盛春即归时,各地的新冠病毒跟商量好了似的集体冒出来,搅乱了原

本相对平静的生活,也剥夺了本就在重复着“两点一线”的单调生活里所剩不多的那点自由。

今天小编给大家用代码带来一个抗击疫情的小游戏,愿疫情早日结束,回归平静的生活!

正文一、环境准备1)图片素材

2)环境安装

本文用到的环境:Python3、Pycharm2020、Pygame模块以及部分自带的模块。

(环境安装包如果需要的话可以滴滴小编的啦,有问题也可以私信我啦,有时间的话都会给大

家解答的哦~)

二、效果展示1)游戏界面

2)运行游戏​​​

《抗击疫情》这款小游戏是分为三个关卡的,分为简单L、中等难度为M、最难的为H。这下

面的截图为最简单的啦~大家可以自己拿代码试试的哈

​​

三、代码展示1)配置文件
'''配置文件'''importos'''屏幕大小'''SCREENSIZE=(640,640)'''图片素材根目录'''PICTURE_ROOT_DIR=((),'resources/pictures')'''字体路径'''FONTPATH=((),'resources/font/')'''定义一些颜色'''BACKGROUNDCOLOR=(255,255,255)RED=(255,0,0)BLUE=(0,0,255)BLACK=(0,0,0)'''FPS'''FPS=40'''随机打乱图次数'''NUMRANDOM=100
​2)主程序
importosimportsysimportcfgimportrandomimportpygame'''判断游戏是否结束'''defisGameOver(board,size):assertisinstance(size,int)num_cells=size*sizeforiinrange(num_cells-1):ifboard[i]!=i:returnFalsereturnTrue'''将空白Cell左边的Cell右移到空白Cell位置'''defmoveR(board,blank_cell_idx,num_cols):ifblank_cell_idx%num_cols==0:returnblank_cell_idxboard[blank_cell_idx-1],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx-1]returnblank_cell_idx-1'''将空白Cell右边的Cell左移到空白Cell位置'''defmoveL(board,blank_cell_idx,num_cols):if(blank_cell_idx+1)%num_cols==0:returnblank_cell_idxboard[blank_cell_idx+1],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx+1]returnblank_cell_idx+1'''将空白Cell上边的Cell下移到空白Cell位置'''defmoveD(board,blank_cell_idx,num_cols):ifblank_cell_idxnum_cols:returnblank_cell_idxboard[blank_cell_idx-num_cols],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx-num_cols]returnblank_cell_idx-num_cols'''将空白Cell下边的Cell上移到空白Cell位置'''defmoveU(board,blank_cell_idx,num_rows,num_cols):ifblank_cell_idx=(num_rows-1)*num_cols:returnblank_cell_idxboard[blank_cell_idx+num_cols],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx+num_cols]returnblank_cell_idx+num_cols'''获得打乱的拼图'''defCreateBoard(num_rows,num_cols,num_cells):board=[]foriinrange(num_cells):(i)0:left,1:right,2:up,3:downdirection=(0,3)ifdirection==0:blank_cell_idx=moveL(board,blank_cell_idx,num_cols)elifdirection==1:blank_cell_idx=moveR(board,blank_cell_idx,num_cols)elifdirection==2:blank_cell_idx=moveU(board,blank_cell_idx,num_rows,num_cols)elifdirection==3:blank_cell_idx=moveD(board,blank_cell_idx,num_cols)returnboard,blank_cell_idx'''随机选取一张图片'''defGetImagePath(rootdir):imagenames=(rootdir)assertlen(imagenames)0(rootdir,(imagenames))'''显示游戏结束界面'''defShowInterface(screen,width,height):()font=(,width//15)title=('恭喜!你成功完成了拼图!',True,(233,150,122))rect=_rect()=(width/2,height/2.5)(title,rect)()whileTrue:():if(==)or(====_ESCAPE):()()()'''显示游戏开始界面'''defShowStartInterface(screen,width,height):()tfont=(,width//4)cfont=(,width//20)title=('中国加油',True,)content1=('万众一心,攻克艰难',True,)content2=('按H、M、L开始游戏',True,)trect=_rect()=(width/2,height/10)crect1=_rect()=(width/2,height/2.2)crect2=_rect()=(width/2,height/1.8)(title,trect)(content1,crect1)(content2,crect2)whileTrue:():if(==)or(====_ESCAPE):()()==:==ord('l'):==ord('m'):==ord('h'):()'''主函数'''defmain():加载图片game_img_used=(GetImagePath(_ROOT_DIR))game_img_used=(game_img_used,)game_img_used_rect=game_img__rect()游戏开始界面size=ShowStartInterface(screen,game_img_used_,game_img_used_)assertisinstance(size,int)num_rows,num_cols=size,sizenum_cells=size*size避免初始化为原图whileTrue:game_board,blank_cell_idx=CreateBoard(num_rows,num_cols,num_cells)ifnotisGameOver(game_board,size):break--事件捕获():----键盘操作==:==_==ord('a'):blank_cell_idx=moveL(game_board,blank_cell_idx,num_cols)==_==ord('d'):blank_cell_idx=moveR(game_board,blank_cell_idx,num_cols)==_==ord('w'):blank_cell_idx=moveU(game_board,blank_cell_idx,num_rows,num_cols)==_==ord('s'):blank_cell_idx=moveD(game_board,blank_cell_idx,num_cols)--判断游戏是否结束ifisGameOver(game_board,size):game_board[blank_cell_idx]=num_cells-1is_running=False游戏结束界面ShowInterface(screen,game_img_used_,game_img_used_)'''run'''if__name__=='__main__':main()
总结

抗击疫情,每个人都在努力,每个人也都要努力,加油!

大家出门的话一定记得要戴好口罩的啦~好啦小编的文章就写到这里结束,需要源码的小可

爱记得找我领取完整的素材源码的啦!

✨完整的素材等:私信小编06即可免费领取哦~往期推荐阅读——

项目0.3【Turtle系列】端正心态正确面对疫情,守护安全防线不放松,共抗疫情,只待春来~

项目2.1【Pygame小游戏】真香~这款百万销量万人追捧大富翁游戏终于出现了~

项目2.2【Pygame小游戏】扫雷游戏50多岁了,但这款我能玩一年~(三个版本集合)

项目2.3战疫互动|宅家防疫,“消灭新冠病毒”小游戏火爆上线啦~(附完整源码)

还有更多更多源码等你来领区啦!文章汇总——

汇总:Python文章合集|(入门到实战、游戏、Turtle、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

发布于 2025-11-12
152
上一篇:下山
目录

    推荐阅读