我正在尝试在erlang中制作一个简单的点和盒游戏,其中有两个进程在玩游戏。我试图将墙的状态存储在像这样的布尔数组中,
Rooms = array:new([{default, false}, {size, ?SIZE}]).
但我不确定如何以图形方式显示电路板的状态。我想绘制网格,如果布尔值为假,则绘制空格,以及_或|如果他们是真的。问题是,我不知道该怎么做。关于io:fwrite或io:format的文档不太有用,我也不太了解它。我也不确定我是否能以正确的方式解决这个问题。使用一系列布尔值来实现这一点是否切合实际?我想使用数组,因为它们是可变的,其他一切都不是。有人可以提供一些帮助或建议如何做到这一点?感谢。
答案 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>