请选择 进入手机版 | 继续访问电脑版

Python代码,能玩30多款童年游戏!这些有几个是你玩过的

0
回复
71
查看
[复制链接]

微信扫一扫 分享朋友圈

等级头衔

等級:新手上路

Rank: 1

积分成就
积分
4
金钱
3
人气
0
贡献
2
主题
2
精华
0
猫币
2
违规
0
注册时间
2021-4-14
最后登录
2021-5-14

快捷版块
版块
网站源码
版块
游戏源码
版块
商业源码
版块
SEO新闻
版块
SEO教程
版块
SEO程序
功能
猫币提现

发表于 2021-4-26 19:40:10 | 显示全部楼层 |阅读模式
天涯海角搜一下: 百度 谷歌 360 搜狗 搜搜 有道 必应 即刻
大游戏小游戏有千千万万,这些小游戏应该只有90后才玩过和懂吧



儿童节即将到来,虽然秃头程序员没有头发,但是童心还是一直都在的,今天就分享一些私藏的童年游戏,十几行代码就能进入使用Python开发的小游戏愉快玩耍!
使用工具:
Python3.8、pycharm2020
也可以不安装pycharm2020也可以直接运行~但是安装了些会好一点
1.五子棋




源码:
  '''游戏开始界面'''class gameStartUI(QWidget):    def __init__(self, parent=None, **kwargs):        super(gameStartUI, self).__init__(parent)        self.setFixedSize(760, 650)        self.setWindowTitle('五子棋 —— 九歌')        self.setWindowIcon(QIcon(cfg.ICON_FILEPATH))        # 背景图片        palette = QPalette()        palette.setBrush(self.backgroundRole(), QBrush(QPixmap(cfg.BACKGROUND_IMAGEPATHS.get('bg_start'))))        self.setPalette(palette)        # 按钮        # --人机对战        self.ai_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('ai'), self)        self.ai_button.move(250, 200)        self.ai_button.show()        self.ai_button.click_signal.connect(self.playWithAI)        # --联机对战        self.online_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('online'), self)        self.online_button.move(250, 350)        self.online_button.show()        self.online_button.click_signal.connect(self.playOnline)    '''人机对战'''    def playWithAI(self):        self.close()        self.gaming_ui = playWithAIUI(cfg)        self.gaming_ui.exit_signal.connect(lambda: sys.exit())        self.gaming_ui.back_signal.connect(self.show)        self.gaming_ui.show()    '''联机对战'''    def playOnline(self):        self.close()        self.gaming_ui = playOnlineUI(cfg, self)        self.gaming_ui.show()  '''run'''if __name__ == '__main__':    app = QApplication(sys.argv)    handle = gameStartUI()    font = QFont()    font.setPointSize(12)    handle.setFont(font)    handle.show()    sys.exit(app.exec_()) 2.超级玛丽

这个源码超级多多,文件很大很大~需要源码的同学关注小编,并私信“01”领取
     else:            break    Interface(screen, cfg, mode='game_end') pygame.display.update()            clock.tick(cfg.FPS)        if is_win_flag:


3.炸弹人




源码:
'''游戏主程序'''def main(cfg):    # 初始化    pygame.init()    pygame.mixer.init()    pygame.mixer.music.load(cfg.BGMPATH)    pygame.mixer.music.play(-1, 0.0)    screen = pygame.display.set_mode(cfg.SCREENSIZE)    pygame.display.set_caption('Bomber Man —— 九歌')    # 开始界面    Interface(screen, cfg, mode='game_start')    # 游戏主循环    font = pygame.font.SysFont('Consolas', 15)    for gamemap_path in cfg.GAMEMAPPATHS:        # -地图        map_parser = mapParser(gamemap_path, bg_paths=cfg.BACKGROUNDPATHS, wall_paths=cfg.WALLPATHS, blocksize=cfg.BLOCKSIZE)        # -水果        fruit_sprite_group = pygame.sprite.Group()        used_spaces = []        for i in range(5):            coordinate = map_parser.randomGetSpace(used_spaces)            used_spaces.append(coordinate)            fruit_sprite_group.add(Fruit(random.choice(cfg.FRUITPATHS), coordinate=coordinate, blocksize=cfg.BLOCKSIZE))        # -我方Hero        coordinate = map_parser.randomGetSpace(used_spaces)        used_spaces.append(coordinate)        ourhero = Hero(imagepaths=cfg.HEROZELDAPATHS, coordinate=coordinate, blocksize=cfg.BLOCKSIZE, map_parser=map_parser, hero_name='ZELDA')        # -电脑Hero        aihero_sprite_group = pygame.sprite.Group()        coordinate = map_parser.randomGetSpace(used_spaces)        aihero_sprite_group.add(Hero(imagepaths=cfg.HEROBATMANPATHS, coordinate=coordinate, blocksize=cfg.BLOCKSIZE, map_parser=map_parser, hero_name='BATMAN'))        used_spaces.append(coordinate)        coordinate = map_parser.randomGetSpace(used_spaces)        aihero_sprite_group.add(Hero(imagepaths=cfg.HERODKPATHS, coordinate=coordinate, blocksize=cfg.BLOCKSIZE, map_parser=map_parser, hero_name='DK'))        used_spaces.append(coordinate)        # -炸弹bomb        bomb_sprite_group = pygame.sprite.Group()        # -用于判断游戏胜利或者失败的flag        is_win_flag = False        # -主循环        screen = pygame.display.set_mode(map_parser.screen_size)        clock = pygame.time.Clock()        while True:            dt = clock.tick(cfg.FPS)            for event in pygame.event.get():                if event.type == pygame.QUIT:                    pygame.quit()                    sys.exit(-1)                # --↑↓←→键控制上下左右, 空格键丢炸弹                elif event.type == pygame.KEYDOWN:                    if event.key == pygame.K_UP:                        ourhero.move('up')                    elif event.key == pygame.K_DOWN:                        ourhero.move('down')                    elif event.key == pygame.K_LEFT:                        ourhero.move('left')                    elif event.key == pygame.K_RIGHT:                        ourhero.move('right')                    elif event.key == pygame.K_SPACE:                        if ourhero.bomb_cooling_count <= 0:                            bomb_sprite_group.add(ourhero.generateBomb(imagepath=cfg.BOMBPATH, digitalcolor=cfg.YELLOW, explode_imagepath=cfg.FIREPATH))            screen.fill(cfg.WHITE)            # --电脑Hero随机行动            for hero in aihero_sprite_group:                action, flag = hero.randomAction(dt)                if flag and action == 'dropbomb':                    bomb_sprite_group.add(hero.generateBomb(imagepath=cfg.BOMBPATH, digitalcolor=cfg.YELLOW, explode_imagepath=cfg.FIREPATH))            # --吃到水果加生命值(只要是Hero, 都能加)            ourhero.eatFruit(fruit_sprite_group)            for hero in aihero_sprite_group:                hero.eatFruit(fruit_sprite_group)            # --游戏元素都绑定到屏幕上            map_parser.draw(screen)            for bomb in bomb_sprite_group:                if not bomb.is_being:                    bomb_sprite_group.remove(bomb)                explode_area = bomb.draw(screen, dt, map_parser)                if explode_area:                    # --爆炸火焰范围内的Hero生命值将持续下降                    if ourhero.coordinate in explode_area:                        ourhero.health_value -= bomb.harm_value                    for hero in aihero_sprite_group:                        if hero.coordinate in explode_area:                            hero.health_value -= bomb.harm_value            fruit_sprite_group.draw(screen)            for hero in aihero_sprite_group:                hero.draw(screen, dt)            ourhero.draw(screen, dt)            # --左上角显示生命值            pos_x = showText(screen, font, text=ourhero.hero_name+'(our):'+str(ourhero.health_value), color=cfg.YELLOW, position=[5, 5])            for hero in aihero_sprite_group:                pos_x, pos_y = pos_x+15, 5                pos_x = showText(screen, font, text=hero.hero_name+'(ai):'+str(hero.health_value), color=cfg.YELLOW, position=[pos_x, pos_y])            # --我方玩家生命值小于等于0/电脑方玩家生命值均小于等于0则判断游戏结束            if ourhero.health_value <= 0:                is_win_flag = False                break            for hero in aihero_sprite_group:                if hero.health_value <= 0:                    aihero_sprite_group.remove(hero)            if len(aihero_sprite_group) == 0:                is_win_flag = True                break            pygame.display.update()            clock.tick(cfg.FPS)        if is_win_flag:            Interface(screen, cfg, mode='game_switch')        else:            break    Interface(screen, cfg, mode='game_end')  '''run'''if __name__ == '__main__':    while True:        main(cfg)4.推箱子




因为篇幅原因,下面的游戏都不贴源码了,需要的同学关注小编,并私信“01”获取下载
5.扫雷

上学时恨不得一直待在电脑房玩这个游戏,哈哈哈



第二种AI贪吃蛇



经典游戏俄罗斯方块






















太多了就不一一展示啦需要的同学关注小编,并私信“01”获取下载


回复 天涯海角搜一下: 百度 谷歌 360 搜狗 搜搜 有道 必应 即刻

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

400-911-6609

周一至周五 9:30-18:00

北京市大兴区景园北街2号02号

  • 关注公众号

  • 关注微信号

QQ- Archiver-手机版-小黑屋- 猫先森网络资源站 |网站地图

Hainan maoxiansen NetworkCo., Ltd© 2019-2021 Comsenz Inc. 海南猫先森网络有限公司版权所有

上海金融信息行业协会理事单位 | 上海市信息服务业行业协会会员单位 | 上海市网络信贷服务业企业联盟单位