有人说,未来是代码的世界,也是AI的世界。
这种说法或许有些绝对,但从信息技术发展的速度及趋势来看,会编写程序代码和懂AI(artificial intelligence,人工智能)技术,确实是技能跟上科技发展的必要条件。而毋庸置疑的是,要想真正理解AI技术,会编程是基础之一。
回望历史,从某种意义上说,AlphaGo的诞生是AI时代到来的标志,因为人们普遍承认下围棋是一种高级别的智能过程——而当AlphaGo击败李世石、柯洁等世界顶尖围棋高手之后,人们感受到了围棋机器人“大脑”的强大。AlphaGo通过蒙特卡罗模拟使用不同的落子方案进行预演,不断刷新落子方案,进而不断增加胜算。东京大学电子信息学专业教授伊庭齐志曾说,研究游戏AI或许是解密人类大脑思考方式的方法之一。游戏AI领域里的经典算法一边计算资源消耗,一边计算如何获得游戏胜利,这种兼顾成本与收益的规划方式已经初步具备与人类“权衡”活动相似的评估眼前与未来的能力。
计算机程序背后的代码本身是抽象而枯燥的,但游戏是趣味横生的。为了让更多对AI技术感兴趣的读者步入AI的世界,本书以Python为开发环境,以小游戏开发为载体,对编程思想及AI技术进行讲解,让读者同时点亮这两种技能。希望读者能通过本书欣赏和领悟到代码世界的奇妙。
本书共16章,可分为4个部分。
第1部分为第1~3章,介绍了基于Python环境进行游戏编程所需要的基础,分别是编程、游戏和AI,Python环境准备和预备知识及Pygame基础知识。
第2部分为第4~7章,为游戏编程案例讲解,包含贪吃蛇、打砖块、笨鸟先飞和五子棋4个游戏。
第3部分为第8~12章,介绍了AI的部分基础知识,分别是神经网络和PyTorch基础、蒙特卡罗模拟、强化学习入门、深度强化学习算法DQN和遗传算法。
第4部分为第13~16章,介绍了第2部分讲解的4款游戏引入AI如何进行编程。
就内容主线来讲,本书先通过Pygame编写小游戏让读者熟悉Python代码编写,然后引入神经网络、强化学习、DQN算法及PyTorch工具,让读者了解AI基础知识后对游戏代码进行改编,从而实现AI游戏编程。
需要说明的是,本书中的代码均用浅灰色底纹标识,代码运行的输出结果以上下虚线边框标识。
Pygame是一个开源的Python库,主要用于2D游戏的开发。Pygame提供了丰富的功能,如图像渲染、声音播放、键盘和鼠标操作、像素操作、碰撞检测等,这些功能让游戏开发更加简单。PyTorch则是开源的深度学习框架,以出色的灵活性和易用性著称,用于构建深度学习模型的功能完备,通常用于图像识别和语言处理等应用程序的机器学习。对于想以Python为工具理解游戏开发和AI技术的读者来说,学好这二者的使用是一个非常具有性价比的选择。
另外,本书提及的文件均提供下载,请在哔哩哔哩网站/App搜索“肖老师的退休生活”,从UP主个人主页获取下载方式。
在本书写作过程中,笔者力求简洁、精确,但囿于水平,书中难免存在疏漏之处。若读者在学习中遇到问题,请发送E-mail至jiahongfei@ptpress.com.cn与我们联系。
编者
2024年2月