diff --git a/game-programmer-zh-cn.dot b/game-programmer-zh-cn.dot index 3834e90..af7323a 100644 --- a/game-programmer-zh-cn.dot +++ b/game-programmer-zh-cn.dot @@ -100,7 +100,7 @@ digraph { inventgamepython3 [label=<
Invent Your Own
Computer Games with
Python 3rd Ed (2015)
> URL="https://www.amazon.com/dp/1503212300/"] makinggamespython [label=<
Making Games with
Python & Pygame (2012)
> URL="https://www.amazon.com/dp/1469901730/"] learntoprogramwithminecraft [label=<
Learn to Program
with Minecraft (2015)
> URL="https://www.amazon.com/dp/1593276702/"] - adventuresinminecraft [label=<
零基础学Minecraft编程
> URL="https://book.douban.com/subject/26613247/"] + adventuresinminecraft [label=<
零基础学Minecraft编程
(2015)
> URL="https://book.douban.com/subject/26613247/"] "3dgpforkids" [label=<
3D Game Programming
for Kids (2013)
> URL="https://www.amazon.com/dp/1937785440/"] age5 -> scratchjr -> age8 @@ -129,15 +129,15 @@ digraph { csmath [label="计算机数学"] } - sicp2 [label=<
计算机程序的构造和解释
> URL="https://book.douban.com/subject/1148282/"] - csapp3 [label=<
深入理解计算机系统
(原书第2版)
> URL="https://book.douban.com/subject/5333562/"] - caaqa5 [label=<
计算机体系结构
> URL="https://book.douban.com/subject/20452387/"] - mos4 [label=<
现代操作系统(第3版)
> URL="https://book.douban.com/subject/3852290/"] + sicp2 [label=<
计算机程序的构造和解释
(2004)
> URL="https://book.douban.com/subject/1148282/"] + csapp3 [label=<
深入理解计算机系统
(原书第3版)
(2016)
> URL="https://book.douban.com/subject/26912767/"] + caaqa5 [label=<
计算机体系结构
(2012)
> URL="https://book.douban.com/subject/20452387/"] + mos4 [label=<
现代操作系统(第3版)
(2009)
> URL="https://book.douban.com/subject/3852290/"] - clrs3 [label=<
算法导论(原书第3版)
> URL="https://book.douban.com/subject/20432061/"] - algorithms4 [label=<
算法(第4版)
> URL="https://book.douban.com/subject/19952400/"] + clrs3 [label=<
算法导论(原书第3版)
(2012)
> URL="https://book.douban.com/subject/20432061/"] + algorithms4 [label=<
算法(第4版)
(2012)
> URL="https://book.douban.com/subject/19952400/"] - concretemaths2 [label=<
具体数学
> URL="https://book.douban.com/subject/21323941/"] + concretemaths2 [label=<
具体数学
(2013)
> URL="https://book.douban.com/subject/21323941/"] computationalscieng [label=<
Computational Science
and Engineering (2007)
> URL="https://www.amazon.com/dp/0961408812/"] foundation -> { sicp2; csapp3 } -> { caaqa5; mos4 } [arrowhead=normal, style=solid] @@ -171,39 +171,39 @@ digraph { cppadvance [label="C++ 进阶"] } - tcpl2 [label=<
C程序设计语言
> URL="https://book.douban.com/subject/1139336/"] + tcpl2 [label=<
C程序设计语言
(2004)
> URL="https://book.douban.com/subject/1139336/"] - cppprimer5 [label=<
C++ Primer 中文版
(第 5 版)
> URL="https://book.douban.com/subject/25708312/"] - tcpppl4 [label=<
C++程序设计语言
> URL="https://book.douban.com/subject/4604591/"] - cppstandardlibrary2 [label=<
C++标准库(第2版)
> URL="https://book.douban.com/subject/26419721/"] + cppprimer5 [label=<
C++ Primer 中文版
(第 5 版)
(2013)
> URL="https://book.douban.com/subject/25708312/"] + tcpppl4 [label=<
C++程序设计语言
(2010)
> URL="https://book.douban.com/subject/4604591/"] + cppstandardlibrary2 [label=<
C++标准库(第2版)
(2015)
> URL="https://book.douban.com/subject/26419721/"] boostcpplibraries2 [label=<
The Boost C++
Libraries 2nd Ed (2014)
> URL="https://www.amazon.com/dp/1937434362/"] - cppconcurrencyinaction [label=<
C++并发编程实战
> URL="https://book.douban.com/subject/26386925/"] + cppconcurrencyinaction [label=<
C++并发编程实战
(2015)
> URL="https://book.douban.com/subject/26386925/"] - effectivestl [label=<
Effective STL中文版
> URL="https://book.douban.com/subject/24534868/"] + effectivestl [label=<
Effective STL中文版
(2013)
> URL="https://book.douban.com/subject/24534868/"] - exceptionalcpp [label=<
Exceptional C++(中文版)
> URL="https://book.douban.com/subject/10785602/"] - moreexceptionalcpp [label=<
More Exceptional C++
中文版
> URL="https://book.douban.com/subject/1244943/"] - exceptionalcppstyle [label=<
Exceptional C++ Style
中文版
> URL="https://book.douban.com/subject/1470842/"] - cppcodingstandard [label=<
C++编程规范
> URL="https://book.douban.com/subject/5348095/"] + exceptionalcpp [label=<
Exceptional C++(中文版)
(2012)
> URL="https://book.douban.com/subject/10785602/"] + moreexceptionalcpp [label=<
More Exceptional C++
中文版
(2002)
> URL="https://book.douban.com/subject/1244943/"] + exceptionalcppstyle [label=<
Exceptional C++ Style
中文版
(2006)
> URL="https://book.douban.com/subject/1470842/"] + cppcodingstandard [label=<
C++编程规范
(2010)
> URL="https://book.douban.com/subject/5348095/"] - effectivecpp3 [label=<
Effective C++
> URL="https://book.douban.com/subject/1842426/"] - moreeffectivecpp3 [label=<
More Effective C++
(中文版)
> URL="https://book.douban.com/subject/5908727/"] + effectivecpp3 [label=<
Effective C++
(2006)
> URL="https://book.douban.com/subject/1842426/"] + moreeffectivecpp3 [label=<
More Effective C++
(中文版)
(2011)
> URL="https://book.douban.com/subject/5908727/"] effectivemoderncpp [label=<
Effective Modern
C++ (2014)
> URL="https://www.amazon.com/dp/1491903996/"] optimizedcpp [label=<
Optimized C++
(2016)
> URL="https://www.amazon.com/dp/1491922060/"] - insidecppobjectmodel [label=<
深度探索C++对象模型
> URL="https://book.douban.com/subject/10427315/"] - imperfectcpp [label=<
Imperfect C++中文版
> URL="https://book.douban.com/subject/1470838/"] - cpptemplates [label=<
C++ Templates中文版
> URL="https://book.douban.com/subject/23780707/"] - elementsofprogramming [label=<
编程原本
> URL="https://book.douban.com/subject/7564093/"] + insidecppobjectmodel [label=<
深度探索C++对象模型
(2012)
> URL="https://book.douban.com/subject/10427315/"] + imperfectcpp [label=<
Imperfect C++中文版
(2006)
> URL="https://book.douban.com/subject/1470838/"] + cpptemplates [label=<
C++ Templates中文版
(2013)
> URL="https://book.douban.com/subject/23780707/"] + elementsofprogramming [label=<
编程原本
(2012)
> URL="https://book.douban.com/subject/7564093/"] frommathtogeneric [label=<
From Mathematics
to Generic Programming
(2014)
> URL="https://www.amazon.com/dp/0321942043/"] - moderncppdesign [label=<
C++设计新思维
> URL="https://book.douban.com/subject/1103566/"] + moderncppdesign [label=<
C++设计新思维
(2003)
> URL="https://book.douban.com/subject/1103566/"] - programminginlua4 [label=<
LUA程序设计(第2版)
> URL="https://book.douban.com/subject/3076942/"] + programminginlua4 [label=<
LUA程序设计(第2版)
(2008)
> URL="https://book.douban.com/subject/3076942/"] luaprogramminggems [label=<
Lua Programming
Gems (2008)
> URL="https://www.amazon.com/dp/8590379841/"] - mvcsharpstepbystep8 [label=<
Visual C#从入门到精通(第8版) 
> URL="https://book.douban.com/"] - csharpindepth3 [label=<
深入理解C#(第3版)
> URL="https://book.douban.com/subject/25843328/"] - clrviacsharp4 [label=<
CLR via C#(第4版)
> URL="https://book.douban.com/subject/26285940/"] + mvcsharpstepbystep8 [label=<
Visual C#从入门到精通(第8版) 
()
> URL="https://book.douban.com/"] + csharpindepth3 [label=<
深入理解C#(第3版)
(2014)
> URL="https://book.douban.com/subject/25843328/"] + clrviacsharp4 [label=<
CLR via C#(第4版)
(2015)
> URL="https://book.douban.com/subject/26285940/"] cbegin -> tcpl2 -> cppbegin [arrowhead=normal, style=solid] @@ -248,22 +248,22 @@ digraph { uml [label="UML"] } - mythicalmanmonth2 [label=<
人月神话
> URL="https://book.douban.com/subject/2230248/"] + mythicalmanmonth2 [label=<
人月神话
(2007)
> URL="https://book.douban.com/subject/2230248/"] - codecomplete2 [label=<
代码大全
> URL="https://book.douban.com/subject/2208626/"] - apidesignforcpp [label=<
C++ API设计
> URL="https://book.douban.com/subject/24869855/"] + codecomplete2 [label=<
代码大全
(2007)
> URL="https://book.douban.com/subject/2208626/"] + apidesignforcpp [label=<
C++ API设计
(2013)
> URL="https://book.douban.com/subject/24869855/"] - agilesoftwaredev [label=<
敏捷软件开发
> URL="https://book.douban.com/subject/2347790/"] - designpatterns [label=<
设计模式
> URL="https://book.douban.com/subject/2111801/"] - headfirstdesignpatterns [label=<
Head First 设计模式(中文版)
> URL="https://book.douban.com/subject/2243615/"] - practiceofprogramming [label=<
程序设计实践
> URL="https://book.douban.com/subject/6524000/"] - cleancode [label=<
编码整洁之道
> URL="https://book.douban.com/subject/11602008/"] - refactoring [label=<
重构
> URL="https://book.douban.com/subject/4262627/"] - workingeffectivelylegacycode [label=<
修改代码的艺术
> URL="https://book.douban.com/subject/25904007/"] + agilesoftwaredev [label=<
敏捷软件开发
(2008)
> URL="https://book.douban.com/subject/2347790/"] + designpatterns [label=<
设计模式
(2007)
> URL="https://book.douban.com/subject/2111801/"] + headfirstdesignpatterns [label=<
Head First 设计模式(中文版)
(2007)
> URL="https://book.douban.com/subject/2243615/"] + practiceofprogramming [label=<
程序设计实践
(2011)
> URL="https://book.douban.com/subject/6524000/"] + cleancode [label=<
编码整洁之道
(2012)
> URL="https://book.douban.com/subject/11602008/"] + refactoring [label=<
重构
(2010)
> URL="https://book.douban.com/subject/4262627/"] + workingeffectivelylegacycode [label=<
修改代码的艺术
(2014)
> URL="https://book.douban.com/subject/25904007/"] - umldistilled3 [label=<
UML精粹
> URL="https://book.douban.com/subject/10798193/"] - umluserguide2 [label=<
UML用户指南
> URL="https://book.douban.com/subject/1837454/"] - ooadwa3 [label=<
面向对象分析与设计
> URL="https://book.douban.com/subject/11509672/"] + umldistilled3 [label=<
UML精粹
(2012)
> URL="https://book.douban.com/subject/10798193/"] + umluserguide2 [label=<
UML用户指南
(2006)
> URL="https://book.douban.com/subject/1837454/"] + ooadwa3 [label=<
面向对象分析与设计
(2012)
> URL="https://book.douban.com/subject/11509672/"] sebegin -> mythicalmanmonth2 -> { sepractice; dp } [arrowhead=normal, style=solid] mythicalmanmonth2 -> uml @@ -295,15 +295,15 @@ digraph { } foundationsgedmath [label=<
Foundations of Game
Engine Development,
Vol 1: Mathematics
(2016)
> URL="https://www.amazon.com/dp/0985811749/"] - math3dcpcg3 [label=<
3D数学基础
> URL="https://book.douban.com/subject/1400419/"] + math3dcpcg3 [label=<
3D游戏与计算机图形学
中的数学方法(第3版)
(2016)
> URL="https://book.douban.com/subject/26864861/"] "3dmathprimer2" [label=<
3D Math Primer for
Graphics and Game
Development 2nd Ed (2011)
> URL="https://www.amazon.com/dp/1568817231/"] essentialmaths3 [label=<
Essential Mathematics
for Games and
Interactive Applications
3rd Ed (2011)
> URL="https://www.amazon.com/dp/1482250926/"] geometricalgebra [label=<
Geometric Algebra for
Computer Science (2007)
> URL="https://www.amazon.com/dp/0123749425/"] - geometrictools [label=<
计算机图形学
几何工具算法详解
> URL="https://book.douban.com/subject/1224798/"] - computationalgeometry [label=<
计算几何
> URL="https://book.douban.com/subject/3893574/"] + geometrictools [label=<
计算机图形学
几何工具算法详解
(2005)
> URL="https://book.douban.com/subject/1224798/"] + computationalgeometry [label=<
计算几何
(2009)
> URL="https://book.douban.com/subject/3893574/"] visualizingquaternions [label=<
Visualizing Quaternions
(2006)
> URL="https://www.amazon.com/dp/0120884003/"] - divgradcurl4 [label=<
散度、旋度、梯度释义
> URL="https://book.douban.com/subject/26688502/"] + divgradcurl4 [label=<
散度、旋度、梯度释义
(2015)
> URL="https://book.douban.com/subject/26688502/"] mathbegin -> foundationsgedmath mathbegin -> math3dcpcg3 -> mathadvanced [arrowhead=normal, style=solid] @@ -338,11 +338,11 @@ digraph { gpmisc [label="游戏编程文选"] } - windowsgp2 [label=<
Windows游戏编程大师技巧
> URL="https://book.douban.com/subject/20282993/"] - gamecodingcomplete4 [label=<
游戏编程全接触
> URL="https://book.douban.com/subject/1454723/"] + windowsgp2 [label=<
Windows游戏编程大师技巧
(2012)
> URL="https://book.douban.com/subject/20282993/"] + gamecodingcomplete4 [label=<
游戏编程权威指南
(2016)
> URL="https://book.douban.com/subject/26787109/"] introtogdprodev [label=<
Introduction to Game
Design, Prototyping,
and Development (2014)
> URL="https://www.amazon.com/dp/0321933168/"] - unityinaction [label=<
Unity in Action (2015)
> URL="https://www.amazon.com/dp/161729232X/"] + unityinaction [label=<
Unity5实战
(2016)
> URL="https://book.douban.com/subject/26877872/"] learninguegd [label=<
Learning Unreal Engine
Game Development
(2015)
> URL="https://www.amazon.com/dp/1784398152/"] blueprintsvisualscripting [label=<
Blueprints Visual Scripting
for Unreal Engine (2015)
> URL="https://www.amazon.com/dp/1785286013/"] @@ -350,7 +350,7 @@ digraph { cocos2dxbyexample2 [label=<
Cocos2d-X
by Example (2015)
> URL="https://www.amazon.com/dp/1785288857/"] gpalgorithmstechniques [label=<
Game Programming
Algorithms and
Techniques (2013)
> URL="https://www.amazon.com/dp/0321940156/"] - gameprogrammingpatterns [label=<
游戏编程模式
> URL="https://book.douban.com/subject/26880704/"] + gameprogrammingpatterns [label=<
游戏编程模式
(2016)
> URL="https://book.douban.com/subject/26880704/"] gpgoldenrules [label=<
Game Programming
Golden Rules (2004)
> URL="https://www.amazon.com/dp/1584503068/"] crossplatformgp [label=<
Cross-Platform Game
Programming (2005)
> URL="https://www.amazon.com/dp/1584503793/"] androidndkgdcookbook [label=<
Android NDK Game
Development Cookbook
(2013)
> URL="https://www.amazon.com/dp/1782167781/"] @@ -368,16 +368,16 @@ digraph { { rank=same - gpgems [label=<
游戏编程精粹 1
> URL="https://book.douban.com/subject/1231195/"] - gpgems2 [label=<
游戏编程精粹2
> URL="https://book.douban.com/subject/1146281/"] - gpgems3 [label=<
游戏编程精粹3
> URL="https://book.douban.com/subject/1125738/"] - gpgems4 [label=<
游戏编程精粹4
> URL="https://book.douban.com/subject/1435923/"] + gpgems [label=<
游戏编程精粹 1
(2004)
> URL="https://book.douban.com/subject/1231195/"] + gpgems2 [label=<
游戏编程精粹2
(2003)
> URL="https://book.douban.com/subject/1146281/"] + gpgems3 [label=<
游戏编程精粹3
(2003)
> URL="https://book.douban.com/subject/1125738/"] + gpgems4 [label=<
游戏编程精粹4
(2005)
> URL="https://book.douban.com/subject/1435923/"] } { rank=same - gpgems5 [label=<
游戏编程精粹5
> URL="https://book.douban.com/subject/2248414/"] - gpgems6 [label=<
游戏编程精粹6
> URL="https://book.douban.com/subject/2305250/"] - gpgems7 [label=<
游戏编程精粹7
> URL="https://book.douban.com/subject/4903976/"] + gpgems5 [label=<
游戏编程精粹5
(2007)
> URL="https://book.douban.com/subject/2248414/"] + gpgems6 [label=<
游戏编程精粹6
(2007)
> URL="https://book.douban.com/subject/2305250/"] + gpgems7 [label=<
游戏编程精粹7
(2010)
> URL="https://book.douban.com/subject/4903976/"] gpgems8 [label=<
Game Programming
Gems (2010)
> URL="https://www.amazon.com/dp/1584507020/"] } @@ -431,7 +431,7 @@ digraph { { rank=same - gameenginearchitecture2 [label=<
游戏引擎架构
> URL="https://book.douban.com/subject/25815142/"] + gameenginearchitecture2 [label=<
游戏引擎架构
(2014)
> URL="https://book.douban.com/subject/25815142/"] "3dgameenginearchitecture" [label=<
3D Game Engine
Architecture
(2004)
> URL="https://www.amazon.com/dp/012229064X/"] gameenginedesign2 [label=<
3D Game Engine
Design
2nd Ed (2006)
> URL="https://www.amazon.com/dp/0122290631/"] } @@ -440,13 +440,13 @@ digraph { gameenginegems2 [label=<
Game Engine
Gems 2 (2011)
> URL="https://www.amazon.com/dp/1568814372/"] gameenginegems3 [label=<
Game Engine
Gems 3 (2016)
> URL="https://www.amazon.com/dp/1498755658/"] - gamescriptingmastery [label=<
游戏脚本高级编程
> URL="https://book.douban.com/subject/1927405/"] - languageimplpatterns [label=<
编程语言实现模式
> URL="https://book.douban.com/subject/10482195/"] - garbagecollectionhandbook [label=<
垃圾回收算法手册:
自动内存管理的艺术
> URL="https://book.douban.com/subject/26740958/"] + gamescriptingmastery [label=<
游戏脚本高级编程
(2006)
> URL="https://book.douban.com/subject/1927405/"] + languageimplpatterns [label=<
编程语言实现模式
(2012)
> URL="https://book.douban.com/subject/10482195/"] + garbagecollectionhandbook [label=<
垃圾回收算法手册:
自动内存管理的艺术
(2016)
> URL="https://book.douban.com/subject/26740958/"] unity5gameoptimization [label=<
Unity 5 Game
Optimization (2015)
> URL="https://www.amazon.com/dp/1785884581/"] videogameoptimization [label=<
Video Game
Optimization (2010)
> URL="https://www.amazon.com/dp/1598634356/"] - hackersdelight2 [label=<
算法心得:高效算法的奥秘(原书第2版)
> URL="https://book.douban.com/subject/25837031/"] + hackersdelight2 [label=<
算法心得:高效算法的奥秘(原书第2版)
(2014)
> URL="https://book.douban.com/subject/25837031/"] modernx86assembly [label=<
Modern X86
Assembly Language
Programming (2014)
> URL="https://www.amazon.com/dp/1484200659/"] gpgpu [label=<
GPGPU Programming
for Games and Science
(2014)
> URL="https://www.amazon.com/dp/1466595353/"] vectorgamemathprocessors [label=<
Vector Games
Math Processors
(2002)
> URL="https://www.amazon.com/dp/1556229216/"] @@ -487,31 +487,31 @@ digraph { } rt3drendering [label=<
Real-Time 3D
Rendering with DirectX
and HLSL (2014)
> URL="https://www.amazon.com/dp/0321962729/"] - "3dgpdx12" [label=<
DirectX 9.0 3D游戏开发编程基础
> URL="https://book.douban.com/subject/2111771/"] - oglguide9 [label=<
OpenGL编程指南(原书第8版)
> URL="https://book.douban.com/subject/26220248/"] + "3dgpdx12" [label=<
DirectX 9.0 3D游戏开发编程基础
(2007)
> URL="https://book.douban.com/subject/2111771/"] + oglguide9 [label=<
OpenGL编程指南(原书第8版)
(2014)
> URL="https://book.douban.com/subject/26220248/"] - fundamentalscg4 [label=<
计算机图形学
> URL="https://book.douban.com/subject/2116178/"] - cgpp3 [label=<
计算机图形学原理及实践:
C语言描述(原书第2版)
> URL="https://book.douban.com/subject/1230412/"] + fundamentalscg4 [label=<
计算机图形学
(2007)
> URL="https://book.douban.com/subject/2116178/"] + cgpp3 [label=<
计算机图形学原理及实践:
C语言描述(原书第2版)
(2004)
> URL="https://book.douban.com/subject/1230412/"] pdis [label=<
Principles of Digital
Image Synthesis
(PODIS) (1995)
> URL="https://www.amazon.com/dp/1558602763/"] - digitalimageprocessing3 [label=<
数字图像处理
> URL="https://book.douban.com/subject/4285832/"] + digitalimageprocessing3 [label=<
数字图像处理
(2010)
> URL="https://book.douban.com/subject/4285832/"] - graphicsshaders2 [label=<
图形着色器
> URL="https://book.douban.com/subject/23858154/"] - glsl3 [label=<
OpenGL着色语言
> URL="https://book.douban.com/subject/1911849/"] + graphicsshaders2 [label=<
图形着色器
(2013)
> URL="https://book.douban.com/subject/23858154/"] + glsl3 [label=<
OpenGL着色语言
(2006)
> URL="https://book.douban.com/subject/1911849/"] oglsuper7 [label=<
OpenGL Super Bible
7th Ed (2015)
> URL="https://www.amazon.com/dp/0672337479/"] - ogles3guide2 [label=<
OpenGL ES 3.0编程指南
> URL="https://book.douban.com/subject/26414014/"] + ogles3guide2 [label=<
OpenGL ES 3.0编程指南
(2015)
> URL="https://book.douban.com/subject/26414014/"] oglinsights [label=<
OpenGL Insights (2012)
> URL="https://www.amazon.com/dp/1439893764/"] vulkanguide [label=<
Vulkan Programming
Guide (2016)
> URL="https://www.amazon.com/dp/0134464540/"] practiald3d11 [label=<
Practical Rendering
and Computation
with Direct3D 11 (2011)
> URL="https://www.amazon.com/dp/1568817207/"] - rtr3 [label=<
实时计算机图形学
> URL="https://book.douban.com/subject/1231141/"] - tricks3dgpgurus [label=<
3D游戏编程大师技巧
> URL="https://book.douban.com/subject/1321769/"] - realtimeshadows [label=<
实时阴影技术
> URL="https://book.douban.com/subject/25908680/"] + rtr3 [label=<
实时计算机图形学
(2004)
> URL="https://book.douban.com/subject/1231141/"] + tricks3dgpgurus [label=<
3D游戏编程大师技巧
(2005)
> URL="https://book.douban.com/subject/1321769/"] + realtimeshadows [label=<
实时阴影技术
(2013)
> URL="https://book.douban.com/subject/25908680/"] rtvolumegraphics [label=<
Real-Time Volume
Graphics (2006)
> URL="https://www.amazon.com/dp/1568812663/"] graphicsprogrammingmethods [label=<
Graphics Programming
Methods (2003)
> URL="https://www.amazon.com/dp/1584502991/"] - gpugems [label=<
GPU精粹
> URL="https://book.douban.com/subject/1480239/"] - gpugems2 [label=<
GPU精粹2
> URL="https://book.douban.com/subject/2144796/"] - gpugems3 [label=<
GPU精粹3
> URL="https://book.douban.com/subject/4851196/"] + gpugems [label=<
GPU精粹
(2006)
> URL="https://book.douban.com/subject/1480239/"] + gpugems2 [label=<
GPU精粹2
(2007)
> URL="https://book.douban.com/subject/2144796/"] + gpugems3 [label=<
GPU精粹3
(2010)
> URL="https://book.douban.com/subject/4851196/"] gpupro [label=<
GPU Pro (2010)
> URL="https://www.amazon.com/dp/1568814720/"] gpupro2 [label=<
GPU Pro 2 (2011)
> URL="https://www.amazon.com/dp/1568817185/"] gpupro3 [label=<
GPU Pro 3 (2012)
> URL="https://www.amazon.com/dp/1439887829/"] @@ -521,7 +521,7 @@ digraph { gpupro7 [label=<
GPU Pro 7 (2016)
> URL="https://www.amazon.com/dp/149874253X/"] pbrt3 [label=<
Physically Based
Rendering (PBRT)
3rd Ed (2016)
> URL="https://www.amazon.com/dp/0128006455/"] - raytracingfromgroundup [label=<
光线跟踪算法技术
> URL="https://book.douban.com/subject/6028258/"] + raytracingfromgroundup [label=<
光线跟踪算法技术
(2011)
> URL="https://book.douban.com/subject/6028258/"] advancedgi2 [label=<
Advanced
Global Illumination
2nd Ed (2006)
> URL="https://www.amazon.com/dp/1568813074/"] productionvolumerendering [label=<
Production Volume
Rendering (2012)
> URL="https://www.amazon.com/dp/156881724X/"] @@ -632,7 +632,7 @@ digraph { fluid [label="流体动画/模拟"] } - natureofcode [label=<
代码本色:用编程模拟自然系统
> URL="https://book.douban.com/subject/26264736/"] + natureofcode [label=<
代码本色:用编程模拟自然系统
(2014)
> URL="https://book.douban.com/subject/26264736/"] characteranimation [label=<
Character Animation
with Direct3D (2011)
> URL="https://www.amazon.com/dp/1584505702/"] rt3dcharacteranimation [label=<
Real-time 3D
Character Animation
with Visual C++ (2001)
> URL="https://www.amazon.com/dp/0240516648/"] computeranimation3 [label=<
Computer Animation
3rd Ed (2012)
> URL="https://www.amazon.com/dp/0124158420/"] @@ -641,13 +641,13 @@ digraph { rtcameras [label=<
Real-Time Cameras
(2009)
> URL="https://www.amazon.com/dp/0123116341/"] physicsforgameprogrammers [label=<
Physics for Game
Programmers (2003)
> URL="https://www.amazon.com/dp/159059472X/"] - physicsforgamedevelopers2 [label=<
Physics for Game
Developers 2nd Ed (2013)
> URL="https://www.amazon.com/dp/1449392512/"] + physicsforgamedevelopers2 [label=<
游戏开发物理学 第2版
(2015)
> URL="https://book.douban.com/subject/26394564/"] physicsmodeling [label=<
Physics Modeling
for Game Programmers (2004)
> URL="https://www.amazon.com/dp/1592000932/"] - gamephysicsenginedev2 [label=<
游戏物理引擎开发
> URL="https://book.douban.com/subject/25821830/"] + gamephysicsenginedev2 [label=<
游戏物理引擎开发
(2013)
> URL="https://book.douban.com/subject/25821830/"] gamephysics2 [label=<
Game Physics 2nd Ed (2010)
> URL="https://www.amazon.com/dp/0123749034/"] collisiondetection3denv [label=<
Collision Detection
in Interactive 3D
Environments (2003)
> URL="https://www.amazon.com/dp/155860801X/"] - rtcollisiondetection [label=<
实时碰撞检测算法技术
> URL="https://book.douban.com/subject/4861957/"] + rtcollisiondetection [label=<
实时碰撞检测算法技术
(2010)
> URL="https://book.douban.com/subject/4861957/"] gamephysicspearls [label=<
Game Physics Pearls
(2010)
> URL="https://www.amazon.com/dp/1568814747/"] taofluidanimation [label=<
The Art of
Fluid Animation (2015)
> URL="https://www.amazon.com/dp/1498700209/"] @@ -688,11 +688,11 @@ digraph { } aiforgames2 [label=<
Artificial Intelligence
for Games 2nd Ed (2009)
> URL="https://www.amazon.com/dp/0123747317/"] - aiforgd [label=<
游戏开发中的人工智能
> URL="https://book.douban.com/subject/1899340/"] - proggameaibyexample [label=<
游戏人工智能编程
案例精粹
> URL="https://book.douban.com/subject/19930152/"] - unityaigp2 [label=<
Unity人工智能游戏开发(第2版) 
> URL="https://book.douban.com/subject/26911454/"] + aiforgd [label=<
游戏开发中的人工智能
(2006)
> URL="https://book.douban.com/subject/1899340/"] + proggameaibyexample [label=<
游戏人工智能编程
案例精粹
(2012)
> URL="https://book.douban.com/subject/19930152/"] + unityaigp2 [label=<
Unity人工智能游戏开发(第2版) 
(2016)
> URL="https://book.douban.com/subject/26911454/"] - aima3 [label=<
人工智能
> URL="https://book.douban.com/subject/1230487/"] + aima3 [label=<
人工智能
(2004)
> URL="https://book.douban.com/subject/1230487/"] behavioralmathforgameai [label=<
Behavioral Mathematics
for Game AI (2009)
> URL="https://www.amazon.com/dp/1584506849/"] { @@ -736,20 +736,20 @@ digraph { } multiplayergp [label=<
Multiplayer Game
Programming (2015)
> URL="https://www.amazon.com/dp/0134034309/"] - massivelymultiplayergd [label=<
大型多人在线游戏开发
> URL="https://book.douban.com/subject/1940567/"] + massivelymultiplayergd [label=<
大型多人在线游戏开发
(2006)
> URL="https://book.douban.com/subject/1940567/"] massivelymultiplayergd2 [label=<
Massively Multiplayer
Game Development 2
(2005)
> URL="https://www.amazon.com/dp/1584503904/"] - progposixthreads [label=<
POSIX多线程程序设计
> URL="https://book.douban.com/subject/1236825/"] - advancedprogunixenv3 [label=<
UNIX环境高级编程(第3版)
> URL="https://book.douban.com/subject/25900403/"] - linuxsystemprog2 [label=<
Linux 系统编程(第二版)
> URL="https://book.douban.com/subject/25828773/"] + progposixthreads [label=<
POSIX多线程程序设计
(2003)
> URL="https://book.douban.com/subject/1236825/"] + advancedprogunixenv3 [label=<
UNIX环境高级编程(第3版)
(2014)
> URL="https://book.douban.com/subject/25900403/"] + linuxsystemprog2 [label=<
Linux 系统编程(第二版)
(2014)
> URL="https://book.douban.com/subject/25828773/"] - tcpipillustratedv1_2 [label=<
TCP/IP详解
卷1:协议
> URL="https://book.douban.com/subject/26825411/"] - tcpipillustratedv2 [label=<
TCP/IP详解
卷2:实现
> URL="https://book.douban.com/subject/1087767/"] - tcpipillustratedv3 [label=<
TCP/IP详解
卷3:TCP事务协议、
HTTP、NNTP
和UNIX域协议
> URL="https://book.douban.com/subject/1058634/"] + tcpipillustratedv1_2 [label=<
TCP/IP详解
卷1:协议
(2016)
> URL="https://book.douban.com/subject/26825411/"] + tcpipillustratedv2 [label=<
TCP/IP详解
卷2:实现
(2004)
> URL="https://book.douban.com/subject/1087767/"] + tcpipillustratedv3 [label=<
TCP/IP详解
卷3:TCP事务协议、
HTTP、NNTP
和UNIX域协议
(2000)
> URL="https://book.douban.com/subject/1058634/"] - unixnetworkprogv1_3 [label=<
UNIX网络编程
卷1:套接字联网API(第3版)
> URL="https://book.douban.com/subject/26434583/"] - unixnetworkprogv2_2 [label=<
UNIX网络编程
卷2:进程间通信(第2版)
> URL="https://book.douban.com/subject/26434599/"] - linuxnetworkinternals [label=<
深入理解
LINUX网络技术内幕
> URL="https://book.douban.com/subject/4015134/"] + unixnetworkprogv1_3 [label=<
UNIX网络编程
卷1:套接字联网API(第3版)
(2014)
> URL="https://book.douban.com/subject/26434583/"] + unixnetworkprogv2_2 [label=<
UNIX网络编程
卷2:进程间通信(第2版)
(2015)
> URL="https://book.douban.com/subject/26434599/"] + linuxnetworkinternals [label=<
深入理解
LINUX网络技术内幕
(2009)
> URL="https://book.douban.com/subject/4015134/"] multiplayerbegin -> multiplayergp [arrowhead=normal, style=solid] multiplayergp -> serverprog diff --git a/images-zh-cn/csapp3.jpg b/images-zh-cn/csapp3.jpg index 331b991..29e5100 100644 Binary files a/images-zh-cn/csapp3.jpg and b/images-zh-cn/csapp3.jpg differ diff --git a/images-zh-cn/gamecodingcomplete4.jpg b/images-zh-cn/gamecodingcomplete4.jpg index 2ca6adc..49db6be 100644 Binary files a/images-zh-cn/gamecodingcomplete4.jpg and b/images-zh-cn/gamecodingcomplete4.jpg differ diff --git a/images-zh-cn/math3dcpcg3.jpg b/images-zh-cn/math3dcpcg3.jpg index 836211f..2270864 100644 Binary files a/images-zh-cn/math3dcpcg3.jpg and b/images-zh-cn/math3dcpcg3.jpg differ diff --git a/images-zh-cn/physicsforgamedevelopers2.jpg b/images-zh-cn/physicsforgamedevelopers2.jpg index 4372bf3..125ddaa 100644 Binary files a/images-zh-cn/physicsforgamedevelopers2.jpg and b/images-zh-cn/physicsforgamedevelopers2.jpg differ diff --git a/images-zh-cn/unityinaction.jpg b/images-zh-cn/unityinaction.jpg index d734224..ef4b200 100644 Binary files a/images-zh-cn/unityinaction.jpg and b/images-zh-cn/unityinaction.jpg differ diff --git a/isbn.csv b/isbn.csv index 1101a6e..b551d14 100644 --- a/isbn.csv +++ b/isbn.csv @@ -9,7 +9,7 @@ learntoprogramwithminecraft,9781593276706, 未找到中文, None adventuresinminecraft,9781118946916, 零基础学Minecraft编程,9787115398970 3dgpforkids,9781937785444, 未找到中文, None sicp2,9780262011532, 计算机程序的构造和解释,9787111135104 -csapp3,9780134092669, 深入理解计算机系统
(原书第2版),9787111321330 +csapp3,9780134092669,深入理解计算机系统
(原书第3版),9787111544937 caaqa5,9780123838728, 计算机体系结构,9787115297655 mos4,9780133591620, 现代操作系统(第3版),9787111255444 clrs3,9780262033848, 算法导论(原书第3版),9787111407010 @@ -56,7 +56,7 @@ umldistilled3,9780321193681, UML精粹,9787121170492 umluserguide2,9780321267979, UML用户指南,9787115148339 ooadwa3,9780201895513, 面向对象分析与设计,9787121173899 foundationsgedmath,9780985811747, 未找到中文, None -math3dcpcg3,9781568817231, 3D数学基础,9787302109464 +math3dcpcg3,9781568817231,3D游戏与计算机图形学
中的数学方法(第3版),9787302406228 3dmathprimer2,9781435458864, 未找到中文, None essentialmaths3,9781482250923, 未找到中文, None geometricalgebra,9780123694652, 未找到中文, None @@ -65,9 +65,9 @@ computationalgeometry,9783540779735, 计算几何,9787302199380 visualizingquaternions,9780120884001, 未找到中文, None divgradcurl4,9780393925166, 散度、旋度、梯度释义,9787111501718 windowsgp2,9780672323690, Windows游戏编程大师技巧,9787115292483 -gamecodingcomplete4,9781133776574, 游戏编程全接触,9787115132192 +gamecodingcomplete4,9781133776574,游戏编程权威指南,9787115410344 introtogdprodev,9780321933164, 未找到中文, None -unityinaction,9781617292323, 未找到中文, None +unityinaction,9781617292323,Unity5实战,9787302436744 learninguegd,1784398152, 未找到中文, None blueprintsvisualscripting,1785286013, 未找到中文, None cocos2dxbyexample2,9781785288852, 未找到中文, None @@ -169,7 +169,7 @@ gameik,1484922328, 未找到中文, None physicsbasedanimation,9781584503804, 未找到中文, None rtcameras,9780123116345, 未找到中文, None physicsforgameprogrammers,9781590594728, 未找到中文, None -physicsforgamedevelopers2,9781449392512, 未找到中文, None +physicsforgamedevelopers2,9781449392512,游戏开发物理学 第2版,9787115384706 physicsmodeling,9781592000937, 未找到中文, None gamephysicsenginedev2,9780123819765, 游戏物理引擎开发,9787302344568 gamephysics2,9780123749031, 未找到中文, None diff --git a/zh-cn.py b/zh-cn.py index 9428c03..6d4d16d 100644 --- a/zh-cn.py +++ b/zh-cn.py @@ -24,13 +24,13 @@ def get_image(isbn, image_filename): image = response.read() ft.write(image) -def get_book_url(isbn): +def get_book_url_year(isbn): url = "https://api.douban.com/v2/book/isbn/" + isbn - result = "https://book.douban.com/" + result = "https://book.douban.com/", "" try: response = urllib2.urlopen(url) detail = response.read() - return json.loads(detail)["alt"] + return json.loads(detail)["alt"], json.loads(detail)["pubdate"][:4] except Exception as e: print isbn print e @@ -46,13 +46,15 @@ def get_book_info(book_index): title = line[2].strip() zh_isbn = line[3] if title == "未找到中文": - return None, None + return None, None, None else: image_path = IMAGE_PATH.format(book_index=book_index.strip('"')) if not os.path.exists(image_path): get_image(zh_isbn, image_path) - return title, get_book_url(zh_isbn) + book_url, book_year = get_book_url_year(zh_isbn) + return title, book_url, book_year + LABEL_DICT = { "":"", "Recommended Path": "推荐路线", @@ -129,13 +131,14 @@ def get_book_info(book_index): } RE_BOOK_LINE = re.compile(r'^\"?\w*\"?\w* \[label=<\d+\.[\w. ()]*>$') SECTION_LINE = 'label=<
{section_title}
>\n' RE_LABEL_LINE = re.compile(r'^\w+ \[label="[\w -=\./\\]*"\]$') LABEL_LINE = '{label_index} [label="{label}"]\n' RE_CONTENT_LINE = re.compile(r'[\w ]+\[color="#[\w]{6}", label=[<"]\d+\. [\w ()]+[">]\]') + if __name__ == '__main__': with open("game-programmer.dot") as en_f, open("game-programmer-zh-cn.dot",'w') as zh_f: for line in en_f: @@ -157,12 +160,12 @@ def get_book_info(book_index): if book_line_match != None: book_index = line_without_space.split(" ")[0] - book_title, book_url = get_book_info(book_index.strip('"')) - if book_title == None or book_url == None: + book_title, book_url, book_year = get_book_info(book_index.strip('"')) + if book_title == None: zh_f.write(line) else: image_path = IMAGE_PATH.format(book_index=book_index.strip('"')) - writeline = space_front+ BOOK_LINE.format(book_index=book_index, image_path=image_path, book_title=book_title, url=book_url) + writeline = space_front+ BOOK_LINE.format(book_index=book_index, image_path=image_path, book_title=book_title, book_year=book_year, url=book_url) zh_f.write(writeline) elif section_line_match != None: sectionID = re.search(r'\d+\.', line_without_space).group()