尝试使用 Canopy 和 F# 在 class 中检索 class
Trying to retrieve a class in a class using Canopy and F#
我正在尝试使用 canopy to use F# to play a game of Tic Tac Toe here。 "board" 看起来像下面的
<div class="game">
<div class="board">
<div class="square top left"><div class="x"></div></div> <--- take note here
<div class="square top"><div></div></div>
<div class="square top right"><div></div></div>
<div class="square left"><div></div></div>
<div class="square"><div></div></div>
<div class="square right"><div class="o"></div></div> <--- take note here
<div class="square bottom left"><div></div></div>
<div class="square bottom"><div></div></div>
<div class="square bottom right"><div></div></div>
</div>
当您点击放置 X 或 O 时,它会将 <div>
更改为 <div class="o">
我正在尝试检索板的状态,但它不起作用,因为说例如我做最简单的事情
let state = elements |> ".square"
这将 return 9 个元素...但是 return 子 div 是否为 x 不是因为 "x" 不是一个属性一个值。
基本上我的问题是。如何检索某个位置包含 X 或 O。
抱歉好久没看SO了!
这个有点棘手,如果你拥有代码,你可以通过改变它来让你的生活更轻松一些
<div class="square top left">
to
<div class="square top-left">
如果没有,您可能需要创建 9 个选择器,每个选择器对应板上的每个位置。
类似这样的东西,未经测试:
let topLeft = ".square.top.left"
let topCenter = ".square.top:not(.left,.right)"
let topRight = ".square.top.right"
let middleLeft =".square.left:not(.top,.bottom)"
etc
然后你检查那些方块是否有 X 或 O
let hasX square =
let result = someElement <| sprintf "%s .x" square
match result with
| None -> false
| Some(_) -> true
and one for hasO
那你就可以了
if hasX topLeft then
//whatever
我正在尝试使用 canopy to use F# to play a game of Tic Tac Toe here。 "board" 看起来像下面的
<div class="game">
<div class="board">
<div class="square top left"><div class="x"></div></div> <--- take note here
<div class="square top"><div></div></div>
<div class="square top right"><div></div></div>
<div class="square left"><div></div></div>
<div class="square"><div></div></div>
<div class="square right"><div class="o"></div></div> <--- take note here
<div class="square bottom left"><div></div></div>
<div class="square bottom"><div></div></div>
<div class="square bottom right"><div></div></div>
</div>
当您点击放置 X 或 O 时,它会将 <div>
更改为 <div class="o">
我正在尝试检索板的状态,但它不起作用,因为说例如我做最简单的事情
let state = elements |> ".square"
这将 return 9 个元素...但是 return 子 div 是否为 x 不是因为 "x" 不是一个属性一个值。
基本上我的问题是。如何检索某个位置包含 X 或 O。
抱歉好久没看SO了!
这个有点棘手,如果你拥有代码,你可以通过改变它来让你的生活更轻松一些
<div class="square top left">
to
<div class="square top-left">
如果没有,您可能需要创建 9 个选择器,每个选择器对应板上的每个位置。
类似这样的东西,未经测试:
let topLeft = ".square.top.left"
let topCenter = ".square.top:not(.left,.right)"
let topRight = ".square.top.right"
let middleLeft =".square.left:not(.top,.bottom)"
etc
然后你检查那些方块是否有 X 或 O
let hasX square =
let result = someElement <| sprintf "%s .x" square
match result with
| None -> false
| Some(_) -> true
and one for hasO
那你就可以了
if hasX topLeft then
//whatever