10分钟教你用python打造贪吃蛇超详细教程

Python贪吃蛇 (完整代码+详细注释+粘贴即食) 运行截图 1) 蛇的移动,首先根据方向来判断,这里使用pos变量来记录方向 pos(1, 0) //表示当前蛇向右的方向 pos(-1, 0) //表示当前蛇向左的方向 pos(0, 1) //表示当前蛇向下的方向 pos(0, -1) //表示当前蛇向上的方向 2) 怎么能控制蛇的速度呢? 其实是控制时间来刷新,我们知道所有的动作都在一个循环里面完成的,也就是代码都一直在运行着。比如我设置速度为1,表示一秒刷新一次,那么蛇的移动也就是一秒一次,我们看到的也是一秒移动一格。当我们设置速度为0.5,表示0.5 阅读详情

10分钟教你用python打造贪吃蛇超详细教程

在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的。今天就在家研究一下, 弄了个贪吃蛇出来。希望没女朋友的大家喜欢~~~

先看程序效果:

image

image

01 整体框架

平台:pycharm

关于pygame的安装这里就不在赘述,大家自行上网找合适自己的版本的安装即可。关于pygame模块知识会穿插在下面代码中介绍,用到什么就介绍什么。这里就不统一介绍了。

整个程序由于是调用了大量的pygame里面的库函数,所以也非常简单(卧槽你这不是调包侠嘛)。也就200多行代码。基于整体怎么设计的呢?看下面的图:

image

由于程序没有多么复杂,就直接用面向过程的思路写了。毕竟这么小的程序没必要整一大堆class来为难自己对吧。

程序整体代码框架:
image

pycharm里面一堆波浪线也是很无奈。

02 main主函数-开始工作

此函数也非常简单。主要承担一些游戏窗口的初始化工作,以及调用相关函数运行游戏。代码如下:

#主函数
def main():
    pygame.init() # 模块初始化
    snake_speed_clock = pygame.time.Clock() # 创建Pygame时钟对象
    screen = pygame.display.set_mode((windows_width, windows_height)) #
    screen.fill(white)

    pygame.display.set_caption("Python 贪吃蛇小游戏") #设置标题
    show_start_info(screen)               #欢迎信息
    while True:
        running_game(screen, snake_speed_clock)
        show_gameover_info(screen)

基于以上代码,咱们来做几点讲解:
- pygame.time.Clock()
控制帧速率。pygame.time.Clock()会控制每个循环多长时间运行一次。这就好比,有个定时器在控制着时间进程,一到时间就告诉CPU:
现在该开始循环了!
现在该开始循环了!

使用pygame时钟之前,必须先创建Clock对象的一个实例,这与创建其他类的实例完全相同。Clock= Pygame.time.Clock()。然后在主循环体中,只需要告诉时钟多久“提醒”一次-------也就是说,循环应该多长时间运行一次:clock.tick(60)。

传入clock.tick()的数不是一个毫秒数。这是每秒内循环要运行的次数,所以这个循环应当每秒运行60次,在这里我只是说应当运行,因为循环只能按计算机能够保证的速度运行,每秒60个循环(或帧)时,每个循环需要1000/60=16.66ms(大约17ms)如果循环中的代码运行时间超过17ms,在clock指出下一次循环时当前循环将无法完成。

再说通俗一点,就是我们游戏的fps嘛。每秒多少帧这样。至于后面在哪clock.tick(),下面会讲。
详细可参考这篇文章:http://eyehere.net/2011/python-pygame-novice-professional-8/
  • pygame.display.set_mode((windows_width, windows_height))

    生成windows窗口,pygame.display.set_mode(resolution=(0,0),flags=0,depth=0)。返回的是一个surface对象(surface对象是用于表示图像的图像,只要指定尺寸,就可以利用),resolution可以控制生成windows窗口的大小,flags代表的是扩展选项,depath不推荐设置。

    flags标志位控制你想要什么样的显示屏,主要有下面几个,这几个量相当于是全局的常量,使用的时候可以from pygame.locals import *导入:

    • pygame.FULLSCREEN,控制全屏,0或者1来控制
    • pygame.HWSURFACE 控制是否进行硬件加速
    • pygame.RESIZABLE 控制窗口是否可以调节大小
  • screen.fill(white)
    pygame.surface.fill(color)。对surface对象填充某一种颜色,在这里表现为窗口背景颜色的填充。

以上讲完,然后就是运行我们游戏三个函数了。
- show_start_info(screen)
显示欢迎信息,最终效果表现为:

![image](http://upload-images.jianshu.io/upload_images/10386940-d3c6b2125adf326a.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

当然,怎么实现,待会说。

接着死循环。因为我们的游戏设置是,当GameOver以后,我们可以按任意键重新开始游戏,或者退出。因此最后不断循环判断用户是否想重新开始游戏,就这样而已。

  • 游戏主体running_game(screen, snake_speed_clock)
    贪吃蛇运行的主体函数。整个程序的精髓所在。

  • show_gameover_info(screen)
    贪吃蛇死了,显示GameOver,表现为:

    image
    怎么实现,下面说。

03 show_start_info()欢迎进入游戏

先贴代码,待会讲解。


#开始信息显示
def show_start_info(screen):
    font = pygame.font.Font('myfont.ttf', 40)
    tip = font.render('按任意键开始游戏~~~', True, (65, 105, 225))
    gamestart = pygame.image.load('gamestart.png')
    screen.blit(gamestart, (140, 30))
    screen.blit(tip, (240, 550))
    pygame.display.update()

    while True:  #键盘监听事件
        for event in pygame.event.get():  # event handling loop
            if event.type == QUIT:
                terminate()     #终止程序
            elif event.type == KEYDOWN:
                if (event.key == K_ESCAPE):  #终止程序
                    terminate() #终止程序
                else:
                    return #结束此函数, 开始游戏
  • 字体显示
    先创建一个Font对象,用自己的字体。有了Font对象以后, 就可以用render方法来写字了,然后通过blit方法blit到屏幕上。
  • 图像加载
    用 pygame.image.load()加载图像获得对象,在用blit方法刷到屏幕上。做完以上事件以后,记得要update一下刷新一下屏幕。
  • 监听键盘
    按任意键继续或者ESC退出……

04 running_game-让我们开始游戏吧

running_game(screen, snake_speed_clock)是游戏主要功能,在这里给大家慢慢讲解。先贴代码:

#游戏运行主体
def running_game(screen,snake_speed_clock):
    startx = random.randint(3, map_width - 8) #开始位置
    starty = random.randint(3, map_height - 8)
    snake_coords = [{'x': startx, 'y': starty},  #初始贪吃蛇
                  {'x': startx - 1, 'y': starty},
                  {'x': startx - 2, 'y': starty}]

    direction = RIGHT       #  开始时向右移动

    food = get_random_location()     #实物随机位置

    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                terminate()
            elif event.type == KEYDOWN:
                if (event.key == K_LEFT or event.key == K_a) and direction != RIGHT:
                    direction = LEFT
                elif (event.key == K_RIGHT or event.key == K_d) and direction != LEFT:
                    direction = RIGHT
                elif (event.key == K_UP or event.key == K_w) and direction != DOWN:
                    direction = UP
                elif (event.key == K_DOWN or event.key == K_s) and direction != UP:
                    direction = DOWN
                elif event.key == K_ESCAPE:
                    terminate()

        move_snake(direction, snake_coords) #移动蛇

        ret = snake_is_alive(snake_coords)
        if not ret:
            break #蛇跪了. 游戏结束
        snake_is_eat_food(snake_coords, food) #判断蛇是否吃到食物

        screen.fill(BG_COLOR)
        #draw_grid(screen)
        draw_snake(screen, snake_coords)
        draw_food(screen, food)
        draw_score(screen, len(snake_coords) - 3)
        pygame.display.update()
        snake_speed_clock.tick(snake_speed) #控制fps
  • 关于贪吃蛇
    这里我们采用一个元组存储贪吃蛇身体各个部分的坐标(一条贪吃蛇不是由很多节组成的嘛)。最后再写个方法根据元组坐标把贪吃蛇画出来就行。
  • 关于食物
    同样做法。存坐标,最后画出来。
  • 关于移动
    监听键盘,根据用户按键,用direction变量记录移动方向。然后更新贪吃蛇元组里面的坐标(其实每次移动只用更新头尾就行)。最后统一画出来。移动做法具体是,我们把每次头部移动的新坐标插入贪吃蛇元组,然后删掉尾部一节(注意,删除尾部我们放在了另外一个函数里做)。

    
    #移动贪吃蛇
    
    def move_snake(direction, snake_coords):
        if direction == UP:
            newHead = {'x': snake_coords[HEAD]['x'], 'y': snake_coords[HEAD]['y'] - 1}
        elif direction == DOWN:
            newHead = {'x': snake_coords[HEAD]['x'], 'y': snake_coords[HEAD]['y'] + 1}
        elif direction == LEFT:
            newHead = {'x': snake_coords[HEAD]['x'] - 1, 'y': snake_coords[HEAD]['y']}
        elif direction == RIGHT:
            newHead = {'x': snake_coords[HEAD]['x'] + 1, 'y': snake_coords[HEAD]['y']}
    
        snake_coords.insert(0, newHead)
    
  • 开始阶段
    先把贪吃蛇和食物的坐标随机生成,贪吃蛇一开始3节长,先设置向右移动。

  • 移动我们的贪吃蛇
    监听键盘,用户按下键盘只是改变direction的值,再用move_snake(direction, snake_coords)函数更新贪吃蛇坐标。如果不按,那direction值一直不变,贪吃蛇就一直向前走。
  • 相关判断
    要判断贪吃蛇是否挂了,表现为:

    • 头坐标超出地图范围
    • 头坐标等于身体某节坐标
          #判断蛇死了没
      def snake_is_alive(snake_coords):
          tag = True
          if snake_coords[HEAD]['x'] == -1 or snake_coords[HEAD]['x'] == map_width or snake_coords[HEAD]['y'] == -1 or \
                  snake_coords[HEAD]['y'] == map_height:
              tag = False # 蛇碰壁啦
          for snake_body in snake_coords[1:]:
              if snake_body['x'] == snake_coords[HEAD]['x'] and snake_body['y'] == snake_coords[HEAD]['y']:
                  tag = False # 蛇碰到自己身体啦
          return tag

    判断贪吃蛇是否吃到食物,表现为:

    • 头坐标等于食物坐标,那么吃到食物。这时候注意,我们就不用删尾部一节了,因为吃到食物变长了嘛。
    • 如果没有吃到食物,那么是正常移动,删掉尾部一节坐标。
          #判断贪吃蛇是否吃到食物
      def snake_is_eat_food(snake_coords, food):  #如果是列表或字典,那么函数内修改参数内容,就会影响到函数体外的对象。
          if snake_coords[HEAD]['x'] == food['x'] and snake_coords[HEAD]['y'] == food['y']:
              food['x'] = random.randint(0, map_width - 1)
              food['y'] = random.randint(0, map_height - 1) # 实物位置重新设置
          else:
              del snake_coords[-1]  # 如果没有吃到实物, 就向前移动, 那么尾部一格删掉
  • 画出我们的游戏
    最后调用相关函数,讲我们的地图,贪吃蛇,食物等等统统画出来。

05 draw_snake-画出我们的贪吃蛇

直接看代码:

def draw_snake(screen, snake_coords):
    for coord in snake_coords:
        x = coord['x'] * cell_size
        y = coord['y'] * cell_size
        wormSegmentRect = pygame.Rect(x, y, cell_size, cell_size)
        pygame.draw.rect(screen, dark_blue, wormSegmentRect)
        wormInnerSegmentRect = pygame.Rect(                #蛇身子里面的第二层亮蓝色色
            x + 4, y + 4, cell_size - 8, cell_size - 8)
        pygame.draw.rect(screen, blue, wormInnerSegmentRect)

代码很easy,主要是获取相关坐标,最后调用pygame.draw.rect将身体各个部分画出来即可。不过为了美观,我们选择再在里面画一层不同颜色的,表现为:

image

06 draw_food-画出我们的食物

#将食物画出来
def draw_food(screen, food):
    x = food['x'] * cell_size
    y = food['y'] * cell_size
    appleRect = pygame.Rect(x, y, cell_size, cell_size)
    pygame.draw.rect(screen, Red, appleRect)

更简单的代码了,获取位置,画矩形。

07 draw_score-画出我们的成绩

#画成绩
def draw_score(screen,score):
    font = pygame.font.Font('myfont.ttf', 30)
    scoreSurf = font.render('得分: %s' % score, True, Green)
    scoreRect = scoreSurf.get_rect()
    scoreRect.topleft = (windows_width - 120, 10)
    screen.blit(scoreSurf, scoreRect)

画成绩也比较简单。获得Font对象以后,render写字,最后设置位置,在屏幕上blit出来。

08 完整代码

整个程序大体如上,其他细枝末节直接看源代码吧。

欲获取代码,请关注我们的微信公众号【程序猿声】,在后台回复:python贪吃蛇。python和贪吃蛇之间不要有空格,不要有空格,不要有空格!!!即可获取。

微信公众号

推荐文章:10分钟教你用Python做个打飞机小游戏超详细教程
推荐文章:10分钟教你用python下载和拼接微信好友头像图片

Python贪吃蛇游戏教程:免费源码,简单易懂的Python游戏开发指导 游戏主循环:游戏的主要循环,处理用户输入、蛇的移动、食物的生成和碰撞检测。print("贪吃蛇的位置: ", snake_pos)print("食物的位置: ", food_pos)食物随机重新生成:当蛇身体增长后,食物在新的位置生成。定义蛇的初始位置和长度:设定蛇的起始位置和初始长度。定义食物的位置:在游戏区域内随机生成食物的位置。确定蛇的方向:根据用户的输入改变蛇的移动方向。print("游戏结束!定义蛇的方向:设定蛇的初始移动方向。显示蛇和食物:打印出蛇和食物的位置。移动蛇:根据方向移动蛇的位置。 阅读详情

相关推荐

10分钟教你用Python打造一个AI贪吃蛇

愉快的开始 最近在修一门叫Python基础的课,然后匆忙之中做了这个AI贪吃蛇想交个大作业,结果老师的结课作业是给定了题目,我真是…… 首先说明一点哈,此AI非彼AI。今天要讲的AI贪吃蛇还是传统意义上遍历图的找路算法编写的,并不是利用机器学习进行学习控制的哈。 关于贪吃蛇 Python编写贪吃蛇的教程此前已经写过了,相关的传送门可以戳: 传送门: 10分钟教你用python打造贪吃蛇超详细教程...

infinitor的博客 1877

python 简单小游戏之贪吃蛇

10个函数完成贪吃蛇小游戏

qq_25976859的博客 1万+

10分钟用Python编写一个贪吃蛇小游戏

贪吃蛇,大家应该都玩过。当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎。今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要的内容都是程序的内循环,这才是保证一个游戏能够正常运行的前提。 以下是编写贪吃蛇小游戏的主要思路。 废话不多说,我们直接来讲解如何利用Python进行贪吃蛇的编写吧 一、调用库以及初始设置 1. 调用第三方库 Python与其他语言很不一样的一点在于他有很多的第三方库可以调用。在P

m0_69951489的博客 9092

手把手教你使用 Python 制作贪吃蛇游戏

贪吃蛇游戏是有史以来最受欢迎的街机游戏之一。在这个游戏中,玩家的主要目标是在不撞墙或不撞墙的情况下抓住最大数量的水果。在学习 Python 或 Pygame 时,可以将创建蛇游戏视为一项挑战。这是每个新手程序员都应该接受的最好的初学者友好项目之一。学习构建视频游戏是一种有趣而有趣的学习。我们将使用Pygame来创建这个蛇游戏。Pygame是一个开源库,专为制作视频游戏而设计。它具有内置的图形和声音库。它也是初学者友好的和跨平台的。

lyy2017175913的博客 3708

10分钟用Python编写贪吃蛇小游戏

首先看一下编写贪吃蛇小游戏的主要思路 废话不多说,我们直接来讲解如何利用Python进行贪吃蛇的编写吧 1.调用库以及初始设置 1.1 调用第三方库 Python与其他语言很不一样的一点在于他有很多的第三方库可以调用。在Python编写游戏时,pygame是一个很简单上手的第三方库,可以通过pip直接安装。安装方法在之前的文章中已经讲过,就不再赘述。想要了解更多pygame功能的朋友也可以查阅官方的文档。 这就是编写贪吃蛇时我们需要调用的库。 1import pygame 2import sys 3im.

3689

Python实现贪吃蛇【含代码和讲解】

接下来我们定义了蛇和食物的类,蛇类拥有绘制、移动、改变方向以及检查碰撞等方法,食物类拥有随机位置、绘制等方法。当蛇的头部碰到自己的身体或者碰到边界时,游戏结束。首先,让我们了解一下贪吃蛇游戏的规则:玩家需要控制一条蛇去吃食物,每吃一个食物长度加一,当蛇的头部碰到自己的身体或者碰到边界时,游戏结束。我们知道,蛇是由多个方块组成,每条蛇都有一个头部和若干个身体节,蛇可以通过移动改变自己的方向和位置。通过以上代码实现,我们可以轻松地打造出属于自己的贪吃蛇游戏,是一款非常有趣的小游戏,大家感受一下吧!

. 3831

【python】10分钟教你用python打造贪吃蛇超详细教程

【python】10分钟教你用python打造贪吃蛇超详细教程 10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的。今天就在家研究一下, 弄了个贪吃蛇出来。希望大家喜欢。 先看程序效果: 01 整体框架 平台:pycharm 关于pygame的安装这里就不在...

infinitor的博客 6584

HT7036计量芯片SPI通信与数据读取实战解析

本文详细解析HT7036计量芯片的SPI通信与数据读取实战,涵盖SPI时序配置、命令发送、数据读取及常见问题排查。重点介绍如何通过SPI接口与MCU通信,实现电能数据的稳定采集与处理,为智能电表等应用提供实用解决方案。

vscode5coder的博客 265

10分钟教你用python打造贪吃蛇超详细教程_python贪吃蛇

返回的是一个surface对象(surface对象是用于表示图像的图像,只要指定尺寸,就可以利用),resolution可以控制生成windows窗口的大小,flags代表的是扩展选项,depath不推荐设置。这是每秒内循环要运行的次数,所以这个循环应当每秒运行60次,在这里我只是说应当运行,因为循环只能按计算机能够保证的速度运行,每秒60个循环(或帧)时,每个循环需要1000/60=16.66ms(大约17ms)如果循环中的代码运行时间超过17ms,在clock指出下一次循环时当前循环将无法完成。

2401_86449728的博客 1170

从USB相机标定到Aruco码精准定位:基于aruco-ros的机器人视觉实践

本文详细介绍了基于aruco-ros的机器人视觉实践,从USB相机标定到Aruco码精准定位的全流程。通过实战案例和优化技巧,展示了Aruco码在机器人导航中的高精度位姿识别能力,帮助开发者快速实现毫米级视觉定位系统。

weixin_27310417的博客 487

一文读懂客户健康度

什么是客户健康度?客户健康度为什么重要?怎么计算客户健康度?这篇文章,我们来聊聊。

m0_62700043的博客 1420

10分钟教你用python打造贪吃蛇超详细教程_python贪吃蛇(1)

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。

m0_56169789的博客 1257

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了

当你在Coding Block中添加自定义字段的时候

matinal 當冬夜漸暖 。公众号:matinal 4582

10分钟教你用python打造贪吃蛇超详细教程-转

先看程序效果: 01 整体框架 平台:pycharm 关于pygame的安装这里就不在赘述,大家自行上网找合适自己的版本的安装即可。关于pygame模块知识会穿插在下面代码中介绍,用到什么就介绍什么。这里就不统一介绍了。 整个程序由于是调用了大量的pygame里面的库函数,所以也非常简单(卧槽你这不是调包侠嘛)。也就200多行代码。基于整体怎么设计的呢?看下面的图: 由于程序没有...

EmbeddedCoder 的优快云博客 1197

告别低效!用ADS仿真带你一步步搭建一个两路对称Doherty功放(含设计要点)

本文详细介绍了如何使用ADS仿真工具一步步搭建两路对称Doherty功放,涵盖设计要点与优化技巧。通过解析负载调制机制、阻抗变换等核心原理,结合5G基站等应用场景,帮助工程师提升功放效率与线性度。特别针对GaN管件的Doherty功放,在3.5GHz频段实现高效性能。

weixin_31783001的博客 396

Axure原型模板与元件库APP交互设计素材(附资料)

在Axure中,手机模型是展示APP或小程序界面效果的重要工具。通过导入手机模型元件,设计师可以更加直观地模拟真实设备的显示效果,从而更准确地评估设计的可行性和用户体验。Axure官方及第三方资源库中提供了多种品牌和型号的手机模型,如iPhone、Android等,设计师可以根据项目需求选择合适的模型进行使用。Axure作为一款强大的原型设计工具,为APP和小程序的设计与开发提供了丰富的界面组件元件库和交互设计素材。

招风的黑耳优快云 1981

最新10分钟教你用python打造贪吃蛇超详细教程_python贪吃蛇

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。

2401_84584338的博客 111

【OpenCV】第二十四章: 图像特征匹配:暴力特征匹配算法、FLANN特征匹配算法

参数match就是匹配器的匹配结果;参数crossCheck表示交叉检查,意思就是用第一组中的每个描述子和第二组的所有描述子进行匹配完后,再用第二组中的每个描述子和第一组的所有描述子进行匹配,这两步做完后,两步同时找到的相同的匹配对儿就是有效的匹配。方法一:用匹配器的match方法,进行特征匹配:match = bf.match(des1, des2),就是对两幅图的描述子进行计算,返回匹配的结果。匹配的时候是计算两个描述子之间的相似度,然后返回相似度最高的一对儿匹配点,也就是最终的匹配结果。

因为热爱所以坚持 5061

用python制造一条令人涨姿势的贪吃蛇

之前看了一副大涨姿势的贪吃蛇的图,甚为震精,可以再观赏一下: 既然talk is cheap,show me the code ,我就按照http://hawstein.com/posts/snake-ai.html的教程写了一个,当然并没有能像上图那么令人涨姿势,但是让贪吃蛇自动跑很长时间还是做到了的 首先是照教程所说,网上下了一个可以根据方向键来控制贪吃蛇的一个代码版本,直

wangyuquanliuli的专栏 4390

论文分栏前后内容不连续?教你word如何删除分节符

问题 当我们在写论文的时候,很多期刊的模板都是两栏的格式,但有的时候我们插入的图像尺寸可能太大,两栏格式放不下,因此需要将其以一栏的格式出入,如下: 但当我们把图片删除后,再将其转换成两栏格式,前后内容就出现不连续的情况: 正常情况下应该是如下: 正确处理方式 里面有个分页符,把分页符去掉,或者把你的文字全部复制到记事本里,然后重新复制回word就可以取消原有的格式了。 删除分节符的方法(以word 2019为例) -点击菜单栏上的“视图”,点击“大纲视图”。 可以看到word文档以整列的形式展开:

左手の明天的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 10分钟教你用python如何正确把妹
下一篇: 10分钟教你用python下载和拼接微信好友头像图片
DENGFAHENG
博客等级 码龄14年 36粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值