三、模块sudoku_game.erl
到这里才想起来,应该先说说这个游戏程序4个不同模块的用途和关系。
sudoku.erl是程序主进程,不被其他模块调用;
sudoku_gui.erl是程序GUI功能服务器子进程,只供sudoku.erl调用;
sudoku_board.erl是游戏“棋盘”显示处理模块,属于GUI功能的一部分,只供sudoku_gui.erl调用。
sudoku_gamr.erl是“数独”游戏逻辑模块,可被其他3个模块调用;
(1)、sudoku_game的初始化
主进程的函数init(Halt),对游戏的逻辑功能进行初始化。
……
receive {gfx, GFX} -> ok end,
case sudoku_game:init(GFX) of
……
在完成游戏GUI界面的创建后,这里receive到的GFX是sudoku_gui子进程的Pid,gfx的意思是graphics。
(2)、“数独”游戏逻辑的算法
模块sudoku_gamr.erl通篇是算法,难以读懂。原本想好好啃啃,翻译成Python弄到GAE上去。但google了“python sudoku”后,找到一大堆源程序,顿时没了兴趣。
sudoku的学习,到此结束。