打砖游戏,详解每一行代码,历经三个小时解析,初学可看

article/2025/9/13 14:54:17

打转游戏详解版

网上只要搜一下“打砖游戏”,基本会看到很多一样的代码,主要是注释也很少,对于python不熟悉的人来说,根本看不懂,只会拿来运行着玩玩。
于是我历经三个小时,把代码几乎每一行都注释了一遍!真是呕心沥血!!

点赞加个关注好吗?以后会有更多的分享,我是川川,大二计算机,有问题可以留言或者加我好友询问,我也是第一次阅读这个代码根据我对代码的理解以及效果的分析写的注释,有不对的地方还请指正。

还是看看效果图:
在这里插入图片描述

ok,上代码!!!复制粘贴就能运行,还请好好看下注释,你是来学习的不是来白嫖代码玩这种小游戏的。
如果有注释不好的地方还请指正!谢谢!!

# 导入模块
import pygame#导入pygame专门游戏的模块
from pygame.locals import *#导入pygame.locals的全部函数
import sys, random, time, math#导入sys访问模块,random随机模块,time时间模块,math数学模块class GameWindow(object):'''创建游戏窗口类'''def __init__(self, *args, **kw):self.window_length = 600#窗口高度self.window_wide = 500#窗口宽度# 绘制游戏窗口,设置窗口尺寸self.game_window = pygame.display.set_mode((self.window_length, self.window_wide))# 设置游戏窗口标题pygame.display.set_caption("CatchBallGame")#标题CatchBallGame# 定义游戏窗口背景颜色参数self.window_color = (135, 206, 250)#RGB配色,做背景颜色def backgroud(self):# 绘制游戏窗口背景颜色self.game_window.fill(self.window_color)#调用上面的RGB自定义颜色class Ball(object):'''创建球类'''def __init__(self, *args, **kw):# 设置球的半径、颜色、移动速度参数self.ball_color = (255, 215, 0)#球颜色,RGBself.move_x = 1#横向速度self.move_y = 1#纵向速度self.radius = 10#球半径10def ballready(self):# 设置球的初始位置、self.ball_x = self.mouse_x#球位置为鼠标的横坐标位置self.ball_y = self.window_wide - self.rect_wide - self.radius#纵坐标以球心位置为准# 绘制球,设置反弹触发条件pygame.draw.circle(self.game_window, self.ball_color, (self.ball_x, self.ball_y), self.radius)#绘制圆形的球,调用上面定义的窗口,球颜色,球的位置和半径def ballmove(self):# 绘制球,设置反弹触发条件pygame.draw.circle(self.game_window, self.ball_color, (self.ball_x, self.ball_y), self.radius)#同上 代码一样self.ball_x += self.move_x#反弹,横坐标增加self.ball_y -= self.move_y#纵坐标不断减小# 调用碰撞检测函数self.ball_window()#碰撞的是墙还是砖块self.ball_rect()#球的反应是怎样的(可以这么理解)# 每接5次球球速增加一倍if self.distance < self.radius:self.frequency += 1#接的次数加一if self.frequency == 5:#当满足频率5次的时候self.frequency = 0#归零self.move_x += self.move_x#速度加一倍 原来是1,现在就1+1=2,同理2+1=3self.move_y += self.move_y#同上self.point += self.point#分数加一# 设置游戏失败条件if self.ball_y > 520:  #窗顶到球心距离大于520,那就说明已经不在挡板上了。窗顶到球心距离等于520才是一直在挡板上。self.gameover = self.over_font.render("Game Over", False, (0, 0, 0))#定义一个游戏结束,False就表示失败,self.game_window.blit(self.gameover, (100, 130))self.over_sign = 1  #游戏结束标识class Rect(object):'''创建球拍类'''def __init__(self, *args, **kw):  #初始化  def __init__()这种都代表是初始化# 设置球拍颜色参数self.rect_color = (255, 0, 0)#RGB控制挡板(球拍)颜色self.rect_length = 100#球拍的长度为100self.rect_wide = 10#球拍高度(宽度)def rectmove(self):# 获取鼠标位置参数self.mouse_x, self.mouse_y = pygame.mouse.get_pos()#获取鼠标横纵坐标# 绘制球拍,限定横向边界if self.mouse_x >= self.window_length - self.rect_length // 2:#如果鼠标横坐标大于了球拍最两侧中心位置self.mouse_x = self.window_length - self.rect_length // 2#那么就回归到球心最右侧位置 窗口宽度减去球拍一半的距离if self.mouse_x <= self.rect_length // 2:#如果鼠标横坐标小于了球拍最两侧中心位置self.mouse_x = self.rect_length // 2#那么鼠标横坐标位置就是球拍位置的一半pygame.draw.rect(self.game_window, self.rect_color, ((self.mouse_x - self.rect_length // 2), (self.window_wide - self.rect_wide), self.rect_length, self.rect_wide))#调用上面的参数class Brick(object): #定义砖块这个类def __init__(self, *args, **kw):  #初始化# 设置砖块颜色参数self.brick_color = (139, 126, 102)#RGB控制砖块颜色self.brick_list = [[1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1],[1, 1, 1, 1, 1, 1]] #定义砖块列表,砖块分为六列,五行,一个1代表一个砖块self.brick_length = 80#砖块长度80self.brick_wide = 20#砖块宽度20def brickarrange(self):for i in range(5):for j in range(6):  #遍历五行六列的砖块self.brick_x = j * (self.brick_length + 24)  #控制砖块的横向放置self.brick_y = i * (self.brick_wide + 20) + 40  #控制砖块的高度if self.brick_list[i][j] == 1:  #如果是1,那就是砖块,则执行下面的语句,把它画出来# 调用前面定义好的参数,把砖块画出来到窗口固定位置pygame.draw.rect(self.game_window, self.brick_color,(self.brick_x, self.brick_y, self.brick_length, self.brick_wide))# 调用碰撞检测函数self.ball_brick()if self.distanceb < self.radius: #撞击到砖块self.brick_list[i][j] = 0  #砖块就有1变为0self.score += self.point#分数就加一# 设置游戏胜利条件:全部砖块被打掉,即所有的1变为0if self.brick_list == [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]]:self.win = self.win_font.render("You Win", False, (0, 0, 0)) #显示出“you win”,一切就归零self.game_window.blit(self.win, (100, 130)) #控制“you win”位置self.win_sign = 1 #win的标识,赢了class Score(object):'''创建分数类'''def __init__(self, *args, **kw):# 设置初始分数,开始的时候分数为0分self.score = 0# 设置分数字体为楷体,大小20self.score_font = pygame.font.SysFont('arial', 20)# 设置初始加分点数,撞击一次为1分self.point = 1# 设置初始接球次数,开始的时候撞击砖块0次self.frequency = 0def countscore(self): #定义计算分数的函数my_score = self.score_font.render(str(self.score), False, (255, 255, 255))self.game_window.blit(my_score, (555, 15))# 绘制玩家分数,分数的位置放在横坐标为555,距离窗顶位置15class GameOver(object):'''创建游戏结束类'''def __init__(self, *args, **kw):# 设置Game Over字体   楷体,字体大小80self.over_font = pygame.font.SysFont('arial', 80)# 定义GameOver标识self.over_sign = 0class Win(object):'''创建游戏胜利类'''def __init__(self, *args, **kw):# 设置You Win字体  楷体,字体大小80self.win_font = pygame.font.SysFont('arial', 80)# 定义Win标识self.win_sign = 0class Collision(object):'''碰撞检测类'''# 球与窗口边框的碰撞检测def ball_window(self):if self.ball_x <= self.radius or self.ball_x >= (self.window_length - self.radius):#如果球横坐标位置小于球半径或者大于窗口宽度减去球半径,意思就是超出边界了self.move_x = -self.move_x#横坐标减小一个单位,意思就是反弹了if self.ball_y <= self.radius:#球纵坐标小于半径,意思就是只要没落地self.move_y = -self.move_y#继续向下移动# 球与球拍的碰撞检测def ball_rect(self):# 定义碰撞标识为0self.collision_sign_x = 0self.collision_sign_y = 0#分三种情况,一种是直接碰到砖块反弹到球拍;一种是碰撞到砖块,又碰撞到墙;还有一种是碰到两个砖块,又碰到墙。这里用if-elif-else讨论。if self.ball_x < (self.mouse_x - self.rect_length // 2):  #如果球中心位置小于鼠标坐标减去球拍一半的长度,表示没有超出边界。即没有撞墙,撞一个砖块。self.closestpoint_x = self.mouse_x - self.rect_length // 2#横坐标最近点位置为鼠标位置减去球拍一半长度self.collision_sign_x = 1#这种情况,碰撞标识用1标识elif self.ball_x > (self.mouse_x + self.rect_length // 2):#超出边界范围,撞墙。碰到墙和砖块各一次。self.closestpoint_x = self.mouse_x + self.rect_length // 2#反弹了,横坐标最近位置为鼠标坐标加上球拍一半的长度。self.collision_sign_x = 2#这种情况,碰撞标识用2标识else: #上面两种情况都不满足的话执行下面的语句self.closestpoint_x = self.ball_x#横坐标最近点位置就是球位置。self.collision_sign_x = 3#这种情况,碰撞标识用3标识if self.ball_y < (self.window_wide - self.rect_wide):  #如果球的纵坐标小于窗口高度减去球心的高度。意思如果就是没有落地的话。self.closestpoint_y = (self.window_wide - self.rect_wide)#纵坐标最近距离为窗口高度减去球拍的高度self.collision_sign_y = 1#这种情况,碰撞标识用1标识elif self.ball_y > self.window_wide: #如果球的纵向长度大于了窗口高度,意思就是落地了self.closestpoint_y = self.window_wide#纵坐标最近位置就是窗口的高度(就刚好落地的时候)self.collision_sign_y = 2#这种情况,碰撞标识用2标识else:self.closestpoint_y = self.ball_y#球的最近纵坐标为球所在的位置self.collision_sign_y = 3#这种情况,碰撞标识用3标识
# 定义球拍到圆心最近点与圆心的距离   (最近点距离减去球心横坐标的距离的平方,加上纵坐标最近陆离减去球心纵坐标的平方),对这整体再开根号。意思就是求的两个位置之间的距离大小。self.distance = math.sqrt(math.pow(self.closestpoint_x - self.ball_x, 2) + math.pow(self.closestpoint_y - self.ball_y, 2))# 球在球拍上左、上中、上右3种情况的碰撞检测if self.distance < self.radius and self.collision_sign_y == 1 and (self.collision_sign_x == 1 or self.collision_sign_x == 2):  #如果满足:球拍到圆心最近点与圆心距离小于半径且纵坐标标识为1和横坐标标识为1或者2if self.collision_sign_x == 1 and self.move_x > 0:#如果横坐标标识为1并且横向速度大于0 。 向右速度大于0,向左速度小于0.!!!self.move_x = - self.move_x#水平速度反向self.move_y = - self.move_y#纵向速度也反向  就是反弹的意思if self.collision_sign_x == 1 and self.move_x < 0: #如果横向标识为1并且速度小于0 速度的大于小于零只是根据方向来说的,并不是速度的绝对值会小于0!!!self.move_y = - self.move_y#直竖直速度反向,就是弹回if self.collision_sign_x == 2 and self.move_x < 0:#如果横坐标标识为2并且一定速度小于0self.move_x = - self.move_x#水平速度反向self.move_y = - self.move_y#纵向速度也反向  就是反弹的意思if self.collision_sign_x == 2 and self.move_x > 0:#如果横坐标标识为2并且一定速度大于0self.move_y = - self.move_y#竖直速度反向 ,就是弹回if self.distance < self.radius and self.collision_sign_y == 1 and self.collision_sign_x == 3:#如果球拍到最近距离与球心距离小于球半径并且纵坐标标识为1和3self.move_y = - self.move_y#竖直速度反向概# 球在球拍左、右两侧中间的碰撞检测if self.distance < self.radius and self.collision_sign_y == 3:#如果球拍到最近距离与球心距离小于球半径并且纵坐标标识为3self.move_x = - self.move_x#水平速度反向# 球与砖块的碰撞检测def ball_brick(self):# 定义碰撞标识  开始标识都为0,标识没有碰撞self.collision_sign_bx = 0self.collision_sign_by = 0if self.ball_x < self.brick_x: #如果球横坐标小于砖块横向放置的位置大小self.closestpoint_bx = self.brick_x #砖块横坐标就是最近点位置self.collision_sign_bx = 1#标识为1elif self.ball_x > self.brick_x + self.brick_length:    #如果球横坐标大于砖块横向放的位置大小与砖块长度之和self.closestpoint_bx = self.brick_x + self.brick_length#最近点位置就是砖块横坐标放的位置大小加上砖块的长度self.collision_sign_bx = 2#标识为2else:#不是上面两种情况的话,执行下面语句self.closestpoint_bx = self.ball_x#球的横向最近陆离为球的中心横坐标self.collision_sign_bx = 3#这种情况标识为3
#y方向和x方向是同理的,就不解析描述了。if self.ball_y < self.brick_y:self.closestpoint_by = self.brick_yself.collision_sign_by = 1#标识为1elif self.ball_y > self.brick_y + self.brick_wide:self.closestpoint_by = self.brick_y + self.brick_wideself.collision_sign_by = 2#标识为2else:self.closestpoint_by = self.ball_yself.collision_sign_by = 3#标识为3# 定义砖块到圆心最近点与圆心的距离(两点距离公式,根号下横纵坐标差的平方和)self.distanceb = math.sqrt(math.pow(self.closestpoint_bx - self.ball_x, 2) + math.pow(self.closestpoint_by - self.ball_y, 2))# 球在砖块上左、上中、上右3种情况的碰撞检测  这个跟球在球拍的上左,上中,上右是一样的类似解析,这就不概述了if self.distanceb < self.radius and self.collision_sign_by == 1 and (self.collision_sign_bx == 1 or self.collision_sign_bx == 2):if self.collision_sign_bx == 1 and self.move_x > 0:self.move_x = - self.move_xself.move_y = - self.move_yif self.collision_sign_bx == 1 and self.move_x < 0:self.move_y = - self.move_yif self.collision_sign_bx == 2 and self.move_x < 0:self.move_x = - self.move_xself.move_y = - self.move_yif self.collision_sign_bx == 2 and self.move_x > 0:self.move_y = - self.move_yif self.distanceb < self.radius and self.collision_sign_by == 1 and self.collision_sign_bx == 3:self.move_y = - self.move_y# 球在砖块下左、下中、下右3种情况的碰撞检测  跟球在球拍的三个方向类似解析,不清楚可以看球在球拍的这三个方向解析if self.distanceb < self.radius and self.collision_sign_by == 2 and (self.collision_sign_bx == 1 or self.collision_sign_bx == 2):if self.collision_sign_bx == 1 and self.move_x > 0:self.move_x = - self.move_xself.move_y = - self.move_yif self.collision_sign_bx == 1 and self.move_x < 0:self.move_y = - self.move_yif self.collision_sign_bx == 2 and self.move_x < 0:self.move_x = - self.move_xself.move_y = - self.move_yif self.collision_sign_bx == 2 and self.move_x > 0:self.move_y = - self.move_yif self.distanceb < self.radius and self.collision_sign_by == 2 and self.collision_sign_bx == 3:self.move_y = - self.move_y# 球在砖块左、右两侧中间的碰撞检测if self.distanceb < self.radius and self.collision_sign_by == 3:self.move_x = - self.move_xclass Main(GameWindow, Rect, Ball, Brick, Collision, Score, Win, GameOver):'''创建主程序类'''def __init__(self, *args, **kw):  #初始化super(Main, self).__init__(*args, **kw) #调用(继承)父类的初始化,具体初始化看前面关于Main的类super(GameWindow, self).__init__(*args, **kw)#调用(继承)父类的初始化,调用前面GameWindow这个类super(Rect, self).__init__(*args, **kw)#这是对继承自父类的属性进行初始化。下面同理。super(Ball, self).__init__(*args, **kw)super(Brick, self).__init__(*args, **kw)super(Collision, self).__init__(*args, **kw)super(Score, self).__init__(*args, **kw)super(Win, self).__init__(*args, **kw)# 定义游戏开始标识start_sign = 0while True: #为真就执行self.backgroud() #窗口背景self.rectmove() #移动self.countscore()#计算分数if self.over_sign == 1 or self.win_sign == 1:  #如果着两个标识为1就结束循环了break# 获取游戏窗口状态for event in pygame.event.get():if event.type == pygame.QUIT: #触发事件为游戏结束/离开sys.exit() #退出程序if event.type == MOUSEBUTTONDOWN:#触发事件为鼠标移动pressed_array = pygame.mouse.get_pressed() # 获取鼠标按键的情况(是否被按下if pressed_array[0]:#如果为这种情况start_sign = 1 #开始标识为1if start_sign == 0: #开始标识为0self.ballready()#调用球位置这个类else:#不然的话self.ballmove()#调用前面球移动这个类allmoveself.brickarrange()#调用砖块这个类# 更新游戏窗口,重新开始pygame.display.update()# 控制游戏窗口刷新频率,频率越小效果越好,但是要求电脑性能越高,所以不能太低time.sleep(0.010)if __name__ == '__main__':  #执行函数pygame.init()pygame.font.init()catchball = Main()

http://chatgpt.dhexx.cn/article/l8KqQJJR.shtml

相关文章

今天开始敲代码

新手小白今天开始自学敲代码了呜呜呜 加油加油加油

开发12年,整整6百万行代码,史上最烂的开发项目长这样

程序员&#xff08;ID&#xff1a;imkuqin&#xff09;猿妹编译 原文&#xff1a;https://projectfailures.wordpress.com 最近有个史称世界上最烂的开发项目在朋友圈刷屏&#xff0c;这个项目到底有多烂呢&#xff1f; 这个项目拖了整整12年&#xff0c;造出6百万行代码&#…

“低代码”抢走程序员的饭碗?没有的事

编者按&#xff1a;眼下发展势头正猛的低代码&#xff0c;承受着两种截然不同的声音。一种声音觉得低代码是“减负”神器&#xff0c;可以帮助减轻开发工作量&#xff0c;大幅提升开发效率&#xff1b;另一种声音却觉得低代码非“善类”&#xff08;主要是程序员群体&#xff0…

程序是如何跑起来的

一个简单的11?的问题对于我们而言就是脱口而出&#xff0c;而对于计算机却不是这样。 那么当我们用从c语言或者其他高级语言来写的时候计算机是如何工作运算加法&#xff08;其他原理类似&#xff09;的呢&#xff1f; 当c语言由编写到运行程序需要经过 1.预处理 2.编译 …

据说程序员写完代码是这个样子,99%的人都中枪了

点击上方“程序员大咖”&#xff0c;选择“置顶公众号” 关键时刻&#xff0c;第一时间送达&#xff01; 1、当你改错一行代码的时候 2、当你想要重构别人的代码时 3、当你尝试想要修复一个bug时的样子 4、当你凌晨4点还在工作时的样子 5、星期五下午项目经理给你分配任务时的样…

祖传代码千万别动

IT程序猿 微博网友评论&#xff1a; 洞侠X&#xff1a;祖传 爱因斯坦老道士&#xff1a;这是傻啊 砸自己脚下的 前端折腾小能手&#xff1a;嗯 sunnysab&#xff1a;想要改进代码的时候 精彩回顾 ♡ 程序员究竟能干多少年&#xff1f; ♡ 互联网公司各岗位真实工作内容起底 ♡ …

泡着枸杞写bug的三流程序员凭什么逆袭到一线大厂?

大多数互联网的从业者都有一个梦想&#xff1a;进大厂。 因为不仅可以享受较好的福利待遇&#xff0c;也能与更优秀的人一起共事&#xff0c;获得更专业、更快速的成长。 最近经常有朋友提及想要入门编程学习&#xff0c;该如何学习&#xff1f; 关于编程学习&#xff0c;各…

刚进公司就把祖上十八代单传的代码优化了是什么体验?

刚进公司就把祖传代码优化了,让公司的APP稳定性提高一半,大幅提升了用户体验是什么体验? 一个字!爽! 这不比斗破里面萧炎“三年之期”打脸嫣然来的爽?不比博人传燃?爽文小说都不敢这么写。 关键,没人信啊。 扮猪吃老虎的大佬 去年金三银四帮公司面试的时候认识了…

百行代码手撸扫雷(下)c/c++

在上一篇文章中已经带大家如何搭建开发环境了 需求分析 这里是一个8*8的地图 地雷随机分布数字表示周围一共有多少颗雷 数字1表示红色区域内有1课雷,2表示有两颗 如何显示数字 右上角没有如何判断呢?行加1或列加一不就越界了吗,所以为了帮面条件判断我们把8行8列改成10行1…

面向祖传代码 Debug,我挽回了一位准备跑路的程序员

交流群的风格突然骤变&#xff0c;没有了往日的灌水扯淡&#xff0c;居然聊起了技术。 看了大家的全部的聊天记录&#xff0c;发现问题并没解决。群里难得这么多人聊技术&#xff0c;抱着问答不断&#xff0c;必有回响的原则&#xff0c;主动勾搭一起看看是什么问题。 大概了解…

第一次敲代码的感受

上图 打了2遍才成功&#xff0c;吐了&#x1f92e; 第一遍错了好几次&#xff0c;最后还是不知道那错了&#xff0c;发给同学都可以运行&#xff0c;我这电脑确不可以运行&#xff01; 最后第二遍终于成功了 &#xff0c;花费一个小时&#xff0c;也不知道还行不&#xff1f…

程序员想知道代码是怎样跑起来的

某一天&#xff0c;程序员使用Java语言实现累加求和的方法&#xff0c;将文件命名为Sample.java。 public class Sample {public static void main(String[] args) {System.out.println(sum(10));}private static int sum(int n) {int res 0;for (int i 1; i < n; i) {res…

从前有一个程序员,成天写代码,后来。。。

之前这里是网易云音乐 的外链&#xff0c;许巍演唱版本的《执着》&#xff0c;我们搞IT 的多少都有些执着&#xff0c;后来网页没有了版权&#xff0c;我只好放上来歌词了。 如果对文章没有太多兴趣&#xff0c;可以只读一遍歌词&#xff0c;或者听一遍歌&#xff0c;哈哈。 每…

开发10年程序员,坐标北京,今天我硬气一回把老板炒了!!!

我的情况 随着越来越多的零基础非专业跳槽人员以及大学计算机专业学生越来越多,导致程序员找工作门槛也越来越高。虽然有着三年的开发经验,也自认为自己能解决很多问题。但是从找工作的这段时间才发现,自己的解决问题的能力是有,但是技术深度不够扎实。 通过对比自己和中…

低代码起势,程序员闷头开发的日子结束了

对于“低代码”的宣传其实已经很久很广泛了&#xff0c;但是争议从来都没有停止。“低代码将会取代程序员”的说法也很荒谬&#xff0c;今天系统整理了低代码&#xff0c;希望能对大家有启示&#xff0c;同时也欢迎各位在评论区指正探讨。 何方神圣&#xff1f; 所谓的低代码开…

程序员的炫技代码写法

程序员的炫技代码写法 程序员&#xff0c;这个职业总是让人感到神秘而又充满魅力。他们手中的代码常常充满了令人惊叹的炫技操作&#xff0c;让人不禁感叹他们的技术能力之高。在这篇博客中&#xff0c;我想和大家分享一些我所知道的程序员的炫技代码写法。 一、代码美感——…

一串代码让你成为机房最靓的仔

1.创建一个记事本文件 2.编辑文件内容 语法格式 color 背景色字体颜色 echo 输出的内容 %0&#xff08;无线循环&#xff09;例如在文件中输入以下内容并保存 color 1a echo 666666 color 2b echo 666666 color 3c echo 666666 color 4d echo 666666 color 5e echo 666666 c…

我爸嘲讽我,写破代码一年才挣十几万,他在工地带50个工人,一个月仅人头费就挣3万多,让我滚回去跟他干工地!...

现在码农的地位有多低&#xff1f; 一位程序员讲述自己被父亲鄙视的经过&#xff1a; 我爸嘲讽我&#xff0c;说我天天写这破代码有啥用&#xff0c;一年就拿十多万死工资。他在工地带 50 个工人&#xff0c;一个人一天抽 20 块钱人头费&#xff0c;一个月都能抽 3 万多&#x…

电视剧中的程序员,是真的敲代码吗?

今天是1024程序员节&#xff0c;今天不聊技术&#xff0c;聊一聊电视剧中出现过的敲代码片段&#xff0c;从咱程序员的视角看看代码是不是真的在写代码哦~ 1. 码不出来&#xff0c;公司要完 从知乎上看到的 用word写代码&#xff1f;放弃吧&#xff0c;写不写得出来&#xff…

给2500万行代码修复bug的程序员都怎么上班?

通常说&#xff0c;一个人造的、很庞大的事物&#xff0c;会给人很厉害的感觉。 比如说摩天大楼⬇️ 或者巨型水坝⬇️ 看着这种东西&#xff0c;世超不禁想到这几个字&#xff1a; “ 人类工程学奇迹 ” 。 但是欣赏归欣赏&#xff0c;这种巨型工程项目如果出了啥子问题&…