我把它命名为"AI方式",因为我正在考虑让应用程序在没有人类交互的情况下玩刽子手游戏.
场景是这样的:
我尝试了在wiki页面上提到的策略,但它不能很好地工作.基本成功率约为30%.
关于战略的任何建议/评论以及我应该挖掘哪些领域才能找到一个公平的好策略?
非常感谢.
-Simon
PS:看起来相当不错的JavaScript实现.(https://github.com/freizl/play-hangman-game)
如何将以下Java实现转换为Haskell?
这里的主要目的是具有包含各种元素的列表,这些元素是特定接口的子类型.
我尝试在下面制作一个Haskell版本,但未达到我的目的.这里的要点是xs类型[Bar]而不是Foo a => [a]
这是否意味着Haskell不能这样做,我会以另一种方式思考吗?
Java的
interface Foo {
void bar ();
}
public class Bar1 implements Foo {
@Override
public void bar() {
System.out.println("I am bar 1 class");
}
}
public class Bar2 implements Foo {
@Override
public void bar() {
System.out.println("I am bar 2 class");
}
}
public static void main(String[] args) {
// The major purpose here is having a list
// that contains elements which are sub-type of "Foo" …Run Code Online (Sandbox Code Playgroud) Erik讲座第12章通过介绍示例函数提到"改善空间使用" sumWith.
我代表懒惰版本和严格版本,如下所示.
sumWith1 v [] = v
sumWith1 v (x:xs) = sumWith1 (v+x) xs
sumWith2 v [] = v
sumWith2 v (x:xs) = (sumWith2 $! (v+x)) xs
test = sumWith1 0 [1..200000000]
Run Code Online (Sandbox Code Playgroud)
我想严格版本应该在某个级别上提高性能,因此我尝试验证杠杆GHC分析工具.
$ ghc --make -O2 -prof -auto-all -rtsopts -o test1
$ ./test1 +RTS -p -RTS
Run Code Online (Sandbox Code Playgroud)
更改sumWith1为sumWith2at testfunction并再次执行test2.
以下是分析结果:http://pastie.org/4720019.
通过查看%alloc列,我看不出这两个函数之间的差异.
我的问题是如何改进测试用例以找到一些区别.换句话说,是否可以分析这种情况下的空间使用情况?
谢谢.
在我将包上传到hackages之后,它没有像其他包一样生成haddock.
我错过了什么?
我做的是:
cabal dist 以及在dist目录下生成的包.谢谢.
我的理解par是它将在另一个核心中创建一个线程来执行.
但是我没有通过以下测试代码来证明这种理解,因为结果显示只有一个线程正在运行.
你能帮我弄清楚这里有什么问题吗?
import Control.Monad
import Control.Parallel
import Control.Concurrent
import System.IO.Unsafe
fib :: Int -> Int
fib 0 = 1
fib 1 = 1
fib n = (fib (n-1)) + (fib (n - 2))
test :: String -> [Int] -> IO ()
test _ [] = return ()
test name (a:xs) = do
tid <- myThreadId
print $ (show tid) ++ "==>" ++ (show a) ++ "==>" ++ (show $ fib a) ++ "==>" ++ name
x `par` …Run Code Online (Sandbox Code Playgroud)