昨日阅读1.5 h,累计 283.5 h
<Python编程:从入门到实践>
========================
这个外星人入侵的游戏快结束了。
在重构update_bullets()后,调整alien_invasion.py主程序。
最后加一个结束游戏的规则:即不能让玩家总不输掉游戏。
加一个玩家如果没在足够短的时间内将整群外星人消灭干净,且有外星人撞到飞船,飞船将被摧毁。
同时限制玩家可供使用的飞船数目(即生命个数),而外星人抵达屏幕底端时,飞船也将被摧毁。
如果玩家用光了飞船个数,游戏便结束。
在game_functions.py,修改update_aliens(ai_settings, ship, aliens)
检查外星人和飞船之间的碰撞:
if pygame.sprite.spritecollideany(ship, aliens):
print("Ship hit!!!")
可将alien_drop_speed设置较大的值,可以让外星人更快撞到飞船,这样测试更快
编写一个新类:GameStats,保存在game_stats.py
在游戏运行期间,只创建一个GameStats实例,每当玩家开始新游戏时,需重置一些统计信息
在settings.py中定义 self.ship_limit = 3设置飞船个数是3个
GameStats中,设置 self.ships_left = self.ai_settings.ship_limit
后续需要对alien_invasion.py做相应修改。。。明天再加,并调试程序。
============================
<思想的力量:哲学导论[美]布鲁克-诺埃尔>
10. 世界上有两种力量,剑和思想。从长远来看,剑总是思想的手下败将。(拿破仑)
11. 我所理解的“哲学家”:可怕的炸药,在他面前一切都岌岌可危。(费里德里希-尼采)
13. 与其做不思考的女人,不如骑在脱缰的马上奔驰。(克罗托那的西雅娜)
=====================
Blockchain:
1.2 非对称加密:(对称加密又快又方便,但有个很大的坑:密码本容易被偷或被破解)1977年的三数学家Rivest、Shamir、Adleman设计了RSA,
把密钥分成两个,一个自己持有叫私钥(Private Key),另一个发给对方,还可以公开,叫公钥(Public Key),实现用公钥加密的数据只能用私钥解开:
加密:E公钥(P)= C
解密:D私钥(C)= P
这样不再头疼如何把密码本给对方或被破解了,私钥由自己保管,敌方拦截到密文也没有办法。
除RSA外,常见的非对称算法还有Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)以及国家商用密码SM2算法。
1.2.1 非对称算法核心原理其实就是设计一个数学难题,使得用公钥和明文推导密文很容易,但很难根据公钥、明文和密文推导私钥。
RSA是基于大整数因式分解难度,即两个质数相乘很容易,但找一个大数的质因子非常困难,理论上破解RSA-2048(2048bits)的密钥可能需要耗费10亿年时间。
1.2.2 但强烈不建议使用RSA,因为1)容易被破解:RSA-768可以在3个小时内破解,1024在理论上100个小时内也可以破解,所以,使用RSA,起步必须2048bits。但数学家彼特-舒尔研究了一个针对整数分解问题的量子算法(舒尔算法),理论上破解2048的RSA在100秒内(好在量子计算机还未投入使用);2)慢:密钥长度加到2048bits可以提升安全,但是计算过慢。
===============================
昨日阅读1.5 h
累计 283.5 h