python 程序编写 新手问题
首先, 想请问一下, 用python写程序(eg:一个黑白棋游戏), 有没有特定的思路顺序?(比如先写class或是先写方法。。。)
还有怎么去选择应该把什么创建为一个class? 越具体越好。。。
这个是我们project的网页有兴趣的朋友可以帮忙看一下,十分感谢。http://www.ics.uci.edu/~thornton/ics32/ProjectGuide/Project4 展开
程序本来就是练出来的。一定要自己想办法练出来。练不出来,就找个例子背出来。
不过老师至少会给你一个思路,如果连思路都不给你,就不称职了。不是重视实践,而是叫放羊。
我帮你理一下思路。python语法,你应该是没有问题的。只是不会python的编程模式。所以才会问怎么做class。
通常做程序是这样子,1.理需求 2.做模型(动态的流程,静态的结构或者是对象) 3.设置代码结构 4。编写代码
你现在这样子,最好一个程序就搞定。所以没有代码结构。流程也简单,就是用户移动棋子,或者是两个用户移动棋子,然后计算机判断是否出错。给提示。 应该还没有让计算机自己有AI的程度。
这样的程序的数据结构通常包括:棋盘棋子结构,保存当前棋盘与棋子状态,一个数组就搞定。
程序的逻辑就是一个,move棋子,如果出错,就rollback,否则就判定落子,或者是吃子。
另外这个程序是有用户交互的。所以需要一个输出界面,还需要一个输入。如果你选择GUI方式,比较的复杂,对于初学者太难。所以通常是用输入的。
这样就有一个用户输入字符串,然后你解析出用户意图,再打印输出。
这样程序就分成几个模块:
主模板,调用输入模块,计算模块,显示输出
输入模块,函数,raw_input方式拿到,player的ID,然后棋子名,移动方位
计算模块,函数,在棋盘数组找一到棋子,然后试图移动,并将结果返回
输出模块,输出当前移动棋子的结果,并显示棋盘
划分模块后,就可以做了。不管你是按面向对象,还是面向过程,结果一样的。象这样的场景,面向对象的方法就是自己找不自在。所以是面向过程的函数式编程。
面向对象最好适合一个可扩展的中型程序,比如SOA这样的场景。