4.6
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023/homework/13330 |
这个作业的目标 | 七天的敏捷冲刺随笔 |
项目:扫雷
第6天/4.27
会议
我就一个人,似乎无法与自己开会
安排
4.27 | 降低了任务要求:自定义难度->初级,中级和高级的难度;降低CPU占用 |
4.28 | 不知道还做不做,我要先把操作系统的实验先做了,还是改天"冲刺"?剩下任务:UI美化,进度保存,自定义难度,运行优化 |
4.27遇到的困难
问DeepSeek我才注意到渲染字体时,抗锯齿的设置还开着,把它关了,用手在程序的面板上拖动,由于它要时刻更新,此时占用的CPU最高在11%左右(至少没有18%),不动时占3%;
任务管理器内存以30x16格子为例,内存68MB,我是不知道怎么优化才好了
燃尽图
我有些保守了,高估了剩余时间,同时我明白了自己每天做2-4个小时,没有再多了
到现在花了16.33小时,平均每天2h43min
运行样例
部分代码
一坨东西
while SettingFlag==True or (mouseLeftClicked and ClickedisSetting(mousex,mousey)): #设置界面
mouseLeftClicked=False
for event in pygame.event.get(): #操作检测
if event.type==QUIT:
pygame.quit()
sys.exit()
elif event.type == MOUSEBUTTONDOWN:
if event.button==1:
mouseLeftClicked=True
mousex, mousey = event.pos
if mouseLeftClicked and ClickedisSetting(mousex,mousey): #退出设置
SettingFlag=False
NeedChange=True
SettingScreenNeedChange=True
mouseLeftClicked=False
break
SettingFlag=True #持续while
if SettingScreenNeedChange: #更新画面,包括难度选择和记录展示
TimeRecord=LoadRecord()
DrawSettingScreen(TimeRecord)
pygame.display.update()
SettingScreenNeedChange=False #别总是刷新
if mouseLeftClicked: #难度选择
if ClickedisBeginner(mousex,mousey):
RowNumber=9
ColNumber=9
BOOMNumber=10
RestartFlag=True
elif ClickedisMediate(mousex,mousey):
RowNumber=16
ColNumber=16
BOOMNumber=40
RestartFlag=True
elif ClickedisAdvanced(mousex,mousey):
RowNumber=30
ColNumber=16
BOOMNumber=99
RestartFlag=True
if RestartFlag==True: #要变更画面的高度和宽度,下面的也得跟着改;而且直接进到下面if里
ScreenHeight=OthersHeight+RectHeight*ColNumber+EdgeHeight #屏幕高度
ScreenWidth=EdgeWidth+RectWidth*RowNumber+EdgeWidth
SmilePosx=ScreenWidth//2-SmileWidth//2
TimePosx=ScreenWidth*2//3
BoomNumberPosx=ScreenWidth//4
SettingWidth=ScreenWidth-2*EdgeWidth
SettingHeight=ScreenHeight-ButtonHeight-2*EdgeHeight
DISPLAYSURF = pygame.display.set_mode((ScreenWidth,ScreenHeight)) #重设分辨率
SettingFlag=False
SettingScreenNeedChange=True
mouseLeftClicked=True
break
FPSCLOCK.tick(ScreenFPS)
另一坨东西
def DrawSettingScreen(record):
pygame.draw.rect(DISPLAYSURF,BLACK,(Settingposx,Settingposy,SettingWidth,SettingHeight),SettingEdge)
pygame.draw.rect(DISPLAYSURF,WHITE,(Settingposx+SettingEdge,Settingposy+SettingEdge,SettingWidth-SettingEdge*2,SettingHeight-SettingEdge*2),0)
DrawWord ("Your Record:",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingEdge*2,OneLetterWidth*13,SettingButtonHeight,SETTING_FONT)
DrawWord ("1."+"beginner",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight+SettingEdge*2,OneLetterWidth*11,SettingButtonHeight,SETTING_FONT)
DrawWord(" "+"time:"+str(record["timescore"][0]["最好用时"]),BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*2+SettingEdge*2,OneLetterWidth*7+len(str(record["timescore"][0]["最好用时"]))*8,SettingButtonHeight,SETTING_FONT)
DrawWord ("2."+"mediate ",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*3+SettingEdge*2,OneLetterWidth*11,SettingButtonHeight,SETTING_FONT)
DrawWord(" "+"time:"+str(record["timescore"][1]["最好用时"]),BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*4+SettingEdge*2,OneLetterWidth*7+len(str(record["timescore"][1]["最好用时"]))*8,SettingButtonHeight,SETTING_FONT)
DrawWord ("3."+"advanced",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*5+SettingEdge*2,OneLetterWidth*11,SettingButtonHeight,SETTING_FONT)
DrawWord(" "+"time:"+str(record["timescore"][2]["最好用时"]),BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*6+SettingEdge*2,OneLetterWidth*7+len(str(record["timescore"][2]["最好用时"]))*8,SettingButtonHeight,SETTING_FONT)
DrawWord ("Choose Difficulty:",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*8+SettingEdge,OneLetterWidth*18,SettingButtonHeight,SETTING_FONT)
pygame.draw.rect(DISPLAYSURF,BLACK,(Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*9.5+SettingEdge,OneLetterWidth*11,SettingButtonHeight),1)
DrawWord ("Beginner ",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*9.5+SettingEdge,OneLetterWidth*10,SettingButtonHeight,SETTING_FONT)
pygame.draw.rect(DISPLAYSURF,BLACK,(Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*11+SettingEdge,OneLetterWidth*11,SettingButtonHeight),1)
DrawWord ("Mediate ",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*11+SettingEdge,OneLetterWidth*10,SettingButtonHeight,SETTING_FONT)
pygame.draw.rect(DISPLAYSURF,BLACK,(Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*12.5+SettingEdge,OneLetterWidth*11,SettingButtonHeight),1)
DrawWord ("Advanced",BLACK,Settingposx+SettingEdge*2,Settingposy+SettingButtonHeight*12.5+SettingEdge,OneLetterWidth*10,SettingButtonHeight,SETTING_FONT)
部分签入链接&签入记录
总结&感想
打开微软Win10的扫雷,与我的程序对比,仅从界面,运行效率和占用来看,我绷不住了
看到我自己写的代码,我也绷不住了
我今天第一次稍微瞅了些别人写的扫雷,再看我的代码,我是真的更加觉得我的代码怎么写得这么长呢?