二郎点和盒子,卡住了

时间:2014-11-29 16:41:56

标签: erlang

我正在尝试在erlang中制作一个简单的点和盒游戏,其中有两个进程在玩游戏。我试图将墙的状态存储在像这样的布尔数组中,

Rooms = array:new([{default, false}, {size, ?SIZE}]).

但我不确定如何以图形方式显示电路板的状态。我想绘制网格,如果布尔值为假,则绘制空格,以及_或|如果他们是真的。问题是,我不知道该怎么做。关于io:fwrite或io:format的文档不太有用,我也不太了解它。我也不确定我是否能以正确的方式解决这个问题。使用一系列布尔值来实现这一点是否切合实际?我想使用数组,因为它们是可变的,其他一切都不是。有人可以提供一些帮助或建议如何做到这一点?感谢。

1 个答案:

答案 0 :(得分:0)

我同意zxq9,我认为打印状态应该到最后。在此之前,你必须设置负责进程的游戏" play",维护游戏的服务器,决定如何安排游戏...好的是你应该能够测试每个元素个别。这样做,您将看到哪种数据结构最适合您的程序。

请注意,数组不可变。以下序列显示了它:

1> A = array:new().
{array,0,10,undefined,10}
2> B = array:set(0,a,A). % create a new array adding an element to A
{array,1,10,undefined,
       {a,undefined,undefined,undefined,undefined,undefined,
          undefined,undefined,undefined,undefined}}
3> B = array:set(0,b,B). % attempting to change the element 0 of B will fail
** exception error: no match of right hand side value 
                    {array,1,10,undefined,
                           {b,undefined,undefined,undefined,undefined,
                              undefined,undefined,undefined,undefined,
                              undefined}}
4> C = array:set(0,b,B). % but it is possible to modify the element and store the resulting array in a new variable
{array,1,10,undefined,
       {b,undefined,undefined,undefined,undefined,undefined,
          undefined,undefined,undefined,undefined}}
5>