我开始制作一个随机创建地下城的地下城游戏。如何在函数式编程中避免或测试随机性
当前我编写函数createRoom
,该函数返回基于参数的新房间对象。该函数在createDungeon
中调用,但它在那里接收随机参数。
function createRoom (width = 1, height = 1, topLeftCoordinate = {x: 0, y: 0}) {
return {
width,
height,
topLeftCoordinate
}
}
function createDungeon (numberOfRooms, rooms = []) {
if (numberOfRooms <= 0) {
return rooms
}
const randomWidth = getRandomNumber(5, 10)
const randomHeight = getRandomNumber(5, 10)
const randomTopLeftCoordinate = {x: getRandomNumber(5, 10), y: getRandomNumber(5, 10)}
return createDungeon (
numberOfRooms - 1,
rooms.concat(Room.create(randomWidth, randomHeight, randomTopLeftCoordinate))
)
}
我不知道这是为什么,因为我不知道如何测试createDungeon
的权利。我只能测试这个函数是否回退一个数组和数组的长度。这是否足够或者是否存在随机性的设计模式?
您可以尝试把一些具体的数字,而不是getRandomNumber的的 –