在棋盘上移动骑士(Python 3.2.2)

时间:2014-03-04 12:02:49

标签: python chess

我有一个课程项目,今天送给我,并在两周后到期。我必须让棋盘上的骑士四处走动(只是骑士,没有其他部分),我已经开始了这个:

import math  
print("This is the program for the knight's movement in chess, Press Y when you are ready to move on.") 
input ("Would you like to move on?") 
position=int(input("What position is your knight in?")) 
print("If your knight is in the position",position,"you may move either 2 forward and 1 left, or 2 forward and 1 right, or the other way so 2 backward 1 left, or 2 backward and 1 right.")

...但我不知道如何继续前进。有人有什么建议吗?

我只是在寻找建议而不是要求答案所以请不要告诉我这个问题我只是遇到了一个问题而无法找到解决方法感谢您阅读我的问题问候Roscomadrid

1 个答案:

答案 0 :(得分:2)

从代码中退一步,花一些时间思考如何实际解决问题。这样的问题涉及几个单独的步骤:

1)您将使用什么数据结构来表示棋盘?

如果你问十个人这个问题,你可能会得到十个不同的答案。想想几种不同的可能性,并选择您最喜欢的那种。一个简单的例子可能是8x8阵列,但它有哪些优点和缺点?可能有更好的东西吗?

2)我如何表示移动?

同样,许多可能的选择。您可以拥有Move类,(fromSquare, toSquare)元组等。此问题的答案在某种程度上取决于您在第一部分中对数据结构的选择。

3)如何生成一套合法的骑士移动?

可能是最棘手的方面。您需要设计一种算法,使用您选择的任何移动表示来计算每个合法(from, to)对。你必须注意在板边缘附近发生的事情,以确保骑士不会脱落,或缠绕在板的另一侧。

一旦你得到了所有这些答案,请坐下来慢慢地完成代码。一次做一件事;也许第一个里程碑可能是当前董事会职位的一点打印输出?

祝你好运。