如何最好地为基于文本的游戏F#创建和操作地图

时间:2017-12-02 15:03:17

标签: function f#

好的,这就是我的代码现在如何查找我的地图

let r58 = {id=58;item=pot2;n=0;e=0;s=51;w=0;complete=false}
let r59 = {id=59;item=m13;n=60;e=0;s=55;w=0;complete=false}
let row11 = [r58;r59]

let r60 = {id=60;item=m8;n=61;e=0;s=59;w=0;complete=false}
let r61 = {id=61;item=m9;n=0;e=0;s=60;w=0;complete=false}
let row12 = [r60;r61]

let roomlist = List.concat[row1;row2;row3;row4;row5;row6;row7;row8;row9;row10;row11;row12]

roomlist

id是对房间本身的引用,该项目属于object类型,可以容纳魔药,或者怪物等.NESW适用于房间所在的位置。但是我不知道如何处理它,当它们进入一个房间,应该找到并处理存储的对象类型。炸弹,怪物和物品的存储方式如下:

let bomb9 = {name="End point grenade";bVal=99.0;dType=General;info="Banned 
from use by enforcers of your rank for obvious reasons, a smaller, compact 
version of what they called a 'nuclear bomb' in the
        days of old";iSpace=2};

let bomb0 = {name ="Clairvoyance";bVal=0.0;dType=General;info="Its explosion 
reveals the truth behind items";
        iSpace=1}

let bombinit = 
  let bomblist = [bomb1;bomb2;bomb3;bomb4;bomb5;bomb6;bomb7;bomb8;bomb9;bomb0]
  bomblist

因此他们都有自己的名单,我有一个怪物,炸弹,药水和房间的清单。 然而,我的讲师说我应该使用房间的字典,看起来像这样:

    (frontOfHouse, {id=1; item=m1; n=backOfHouse;e=null;s=null;w=null;complete=false};
(backOfHouse, {id=2; item=bomb1; n=frontOfHouse; e=null;s=null;w=null;complete=false

但是我不知道这比使用列表中的一组房间更好,以允许用户横穿地图。 任何帮助或建议都会非常感激,因为我不习惯f#,如果有人想帮助更多,看到我的整个代码只是给我一个喊叫。

非常感谢

0 个答案:

没有答案