我正在用Python开发一个程序生成的游戏世界.世界的结构将类似于MUD/MUSH范例的房间和出口被安排为有向图(房间是节点,出口是边缘).(注意,这并不一定是一个非循环图,虽然我愿意考虑非周期的解决方案.)
对于世界生成算法,不同种类的房间将通过每个房间的"标签"属性(一组字符串)来区分.一旦它们被实例化,就可以通过标签(单标签,标签交叉,标签联合,最佳候选)来查询和选择房间.
我将使用模板对象和工厂方法的美化系统创建特定类型的房间 - 我不认为细节在这里很重要,因为当前的实现可能会改变以匹配所选择的策略.(例如,可以向房间模板系统添加标签和标签查询.)
举个例子,我会有这些类型的房间:
side_street,main_street, plaza, bar, hotel, restaurant, shop, office
最后,问题是:实例化和安排这些房间以创建可能与给定规则相对应的图表的好策略是什么?
一些规则可能包括:每万人口一个广场; main_street连接plaza; side_street连接到main_street或side_street; hotel赞成main_street或plaza关联,并相应地接收更多标签; 等等
如果建议的策略能够实现数据驱动的实施,则奖励积分.
我只是想根据它已经是什么来翻转一个布尔值.如果这是真的 - 把它弄错.如果它是假的 - 让它成真.
这是我的代码摘录:
switch(wParam) {
case VK_F11:
if (flipVal == true) {
flipVal = false;
} else {
flipVal = true;
}
break;
case VK_F12:
if (otherVal == true) {
otherValVal = false;
} else {
otherVal = true;
}
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud) 我知道在SQL Server中,数据库中"对象"的最大数量略多于20亿.对象包含表,视图,存储过程,索引等.我并不担心超过20亿个物体.但是,我想知道的是,SQL Server是否会因拥有大量表而遭受性能损失.您添加的每个表是否都有性能损失,或者基本上没有差异(假设数据量恒定).有没有人有使用数千个表的数据库的经验?我也想知道MySQL的情况.
我想知道是否有人优化他们的网页,以便在用户禁用Javascript时有一些友好的行为.在这种情况下是否有任何技巧可以提供一些伪脚本行为?我说的是在新窗口中打开链接等基本内容.我想如果没有Javascript,你仍然可以做很多事情.在某些情况下,有一个页面具有一些可以依赖的功能,这可能很方便.有没有做法?
编辑:到目前为止的好答案!人们是否会介意包含一些示例代码(来吧,HTML太容易了!)因为我认为我还没有在SO上看过这样的问题.
我有一个 SQL Server 2008 查询
SELECT TOP 10 *
FROM T
WHERE ...
ORDER BY ...
Run Code Online (Sandbox Code Playgroud)
我还想获得总行数。obious 方法是进行第二次查询
SELECT COUNT(*)
FROM T
WHERE ...
ORDER BY ...
Run Code Online (Sandbox Code Playgroud)
有没有有效的方法?
谢谢
在本文中,关键字extern后面可以跟"C"或"C++".为什么要使用'extern'C++"'?这是实用的吗?
在页面中,如果我执行以下操作:
Cache ["key"] = myObject;
该缓存对象是否可用于其他用户的请求?
我正在尝试将PHP 5的副本安装到学校计算机上的主目录中.问题是每当我尝试时,它都会抱怨我的libxml2副本太过时了.
有没有办法在没有升级libxml2的情况下安装它,因为我没有升级权限.
有什么建议?
我怎样才能确定我的结果集有a第一个和b第二个?这将有助于我解决一个棘手的订购问题.
这是我正在做的简化示例:
SELECT a FROM A LIMIT 1
UNION
SELECT b FROM B LIMIT 1;
Run Code Online (Sandbox Code Playgroud) 我听过的反对函数式语言的一个论点是,单个赋值编码太难了,或者至少比"普通"编程要难得多.
但是通过我的代码,我意识到如果你用一种合理的现代语言写作,我真的没有很多(任何?)使用模式,使用单一的赋值形式也无法编写.
那么变量的用例有哪些在一个单独的范围调用中变化?请记住,在这种情况下,调用之间不同的循环索引,参数和其他范围限制值不是多个赋值(除非您出于某种原因必须在正文中更改它们),并假设您正在编写某些内容远远高于汇编语言级别,在那里你可以编写类似的东西
values.sum
Run Code Online (Sandbox Code Playgroud)
或(如果没有提供金额)
function collection.sum --> inject(zero, function (v,t) --> t+v )
Run Code Online (Sandbox Code Playgroud)
和
x = if a > b then a else b
Run Code Online (Sandbox Code Playgroud)
要么
n = case s
/^\d*$/ : s.to_int
'' : 0
'*' : a.length
'?' : a.length.random
else fail "I don't know how many you want"
Run Code Online (Sandbox Code Playgroud)
当你需要,并有列表推导,地图/收集等等.
您是否发现在这样的环境中仍然需要/需要可变变量,如果是,那么对于什么?
澄清一点,我不是要求对SSA表格的异议进行背诵,而是要求适用这些异议的具体例子.我正在寻找具有可变变量的清晰简洁的代码,如果没有它们就无法编写.
到目前为止我最喜欢的例子(以及我对他们的最佳反对意见):
保罗约翰逊的Fisher-Yates算法答案,当你包含大O约束时,它非常强大.但是,正如catulahoops指出的那样,big-O问题与SSA问题无关,而是与可变数据类型相关联,并且在预留的情况下,可以在SSA中清楚地编写算法:
shuffle(Lst) ->
array:to_list(shuffle(array:from_list(Lst), erlang:length(Lst) - 1)).
shuffle(Array, 0) -> Array;
shuffle(Array, N) ->
K = random:uniform(N) …Run Code Online (Sandbox Code Playgroud)variables haskell functional-programming ssa modern-languages
c ×2
c++ ×2
sql-server ×2
aggregate ×1
asp.net ×1
boolean ×1
caching ×1
count ×1
graph ×1
haskell ×1
html ×1
javascript ×1
libxml2 ×1
mysql ×1
pagination ×1
performance ×1
php ×1
python ×1
sql ×1
sql-order-by ×1
ssa ×1
union ×1
variables ×1