type logic
This commit is contained in:
parent
447f8e0f42
commit
f603ebda4f
|
@ -13,7 +13,9 @@
|
||||||
~ return x
|
~ return x
|
||||||
|
|
||||||
=== function lastcard(ref list)
|
=== function lastcard(ref list)
|
||||||
~ return LIST_MIN(list)
|
{ !x: ~ return "" }
|
||||||
|
~ temp x = LIST_MIN(list)
|
||||||
|
~ return x
|
||||||
|
|
||||||
=== function is_clubs(x)
|
=== function is_clubs(x)
|
||||||
~ return (x == two_of_clubs || x == three_of_clubs || x == four_of_clubs || x == five_of_clubs || x == six_of_clubs || x == seven_of_clubs || x == eight_of_clubs || x == nine_of_clubs || x == ten_of_clubs || x == jack_of_clubs || x == queen_of_clubs || x == king_of_clubs || x == ace_of_clubs)
|
~ return (x == two_of_clubs || x == three_of_clubs || x == four_of_clubs || x == five_of_clubs || x == six_of_clubs || x == seven_of_clubs || x == eight_of_clubs || x == nine_of_clubs || x == ten_of_clubs || x == jack_of_clubs || x == queen_of_clubs || x == king_of_clubs || x == ace_of_clubs)
|
||||||
|
@ -60,6 +62,8 @@
|
||||||
|
|
||||||
=== function tonumber(x)
|
=== function tonumber(x)
|
||||||
{
|
{
|
||||||
|
- x == ():
|
||||||
|
~ return 0
|
||||||
- is_two(x):
|
- is_two(x):
|
||||||
~ return 2
|
~ return 2
|
||||||
- is_three(x):
|
- is_three(x):
|
||||||
|
@ -103,17 +107,30 @@
|
||||||
~ return follows(x,y)
|
~ return follows(x,y)
|
||||||
}
|
}
|
||||||
|
|
||||||
=== function can_move_to_full(ref col)
|
=== function can_move_to_foundation(ref col)
|
||||||
~ temp x = lastcard(col)
|
~ temp x = lastcard(col)
|
||||||
~ temp y = ""
|
~ temp y = ""
|
||||||
{
|
{
|
||||||
- is_spades(x):
|
- is_spades(x):
|
||||||
~ y = lastcard(full1)
|
~ y = lastcard(foundation1)
|
||||||
- is_diamonds(x):
|
- is_diamonds(x):
|
||||||
~ y = lastcard(full2)
|
~ y = lastcard(foundation2)
|
||||||
- is_clubs(x):
|
- is_clubs(x):
|
||||||
~ y = lastcard(full3)
|
~ y = lastcard(foundation3)
|
||||||
- is_hearts(x):
|
- is_hearts(x):
|
||||||
~ y = lastcard(full4)
|
~ y = lastcard(foundation4)
|
||||||
}
|
}
|
||||||
~ return follows(x,y)
|
~ return follows(x,y)
|
||||||
|
|
||||||
|
=== function can_move_to_empty(ref col, ref empty)
|
||||||
|
{col == () || empty != ():
|
||||||
|
~ return false
|
||||||
|
}
|
||||||
|
~ return true
|
||||||
|
|
||||||
|
=== function can_move_to_col(ref column_one, ref column_two)
|
||||||
|
~ temp x = lastcard(column_one)
|
||||||
|
~ temp y = lastcard(column_two)
|
||||||
|
{!x: ~ return false}
|
||||||
|
{!y:~ return true}
|
||||||
|
~ return (( (!is_black(x) && is_black(y)) || (is_black(x) && !is_black(y)) ) && follows(y,x) )
|
||||||
|
|
|
@ -14,10 +14,10 @@ VAR col8 = ()
|
||||||
VAR empty1 = ()
|
VAR empty1 = ()
|
||||||
VAR empty2 = ()
|
VAR empty2 = ()
|
||||||
|
|
||||||
VAR full1 = ()
|
VAR foundation1 = ()
|
||||||
VAR full2 = ()
|
VAR foundation2 = ()
|
||||||
VAR full3 = ()
|
VAR foundation3 = ()
|
||||||
VAR full4 = ()
|
VAR foundation4 = ()
|
||||||
|
|
||||||
// Put 7 random cards to slot 1
|
// Put 7 random cards to slot 1
|
||||||
~ col1 += randomcard(cards)
|
~ col1 += randomcard(cards)
|
||||||
|
@ -87,10 +87,10 @@ VAR full4 = ()
|
||||||
<div id="playing_field"> <>
|
<div id="playing_field"> <>
|
||||||
<div id="empty1" class="cardempty">{empty1}</div> <>
|
<div id="empty1" class="cardempty">{empty1}</div> <>
|
||||||
<div id="empty2" class="cardempty">{empty2}</div> <>
|
<div id="empty2" class="cardempty">{empty2}</div> <>
|
||||||
<div id="full1" class="cardstack">{full1}</div> <>
|
<div id="foundation1" class="cardstack">{foundation1}</div> <>
|
||||||
<div id="full2" class="cardstack">{full2}</div> <>
|
<div id="foundation2" class="cardstack">{foundation2}</div> <>
|
||||||
<div id="full3" class="cardstack">{full3}</div> <>
|
<div id="foundation3" class="cardstack">{foundation3}</div> <>
|
||||||
<div id="full4" class="cardstack">{full4}</div> <>
|
<div id="foundation4" class="cardstack">{foundation4}</div> <>
|
||||||
<div id="col1" class="cardcolumn">{col1}</div> <>
|
<div id="col1" class="cardcolumn">{col1}</div> <>
|
||||||
<div id="col2" class="cardcolumn">{col2}</div> <>
|
<div id="col2" class="cardcolumn">{col2}</div> <>
|
||||||
<div id="col3" class="cardcolumn">{col3}</div> <>
|
<div id="col3" class="cardcolumn">{col3}</div> <>
|
||||||
|
@ -101,12 +101,11 @@ VAR full4 = ()
|
||||||
<div id="col8" class="cardcolumn">{col8}</div> <>
|
<div id="col8" class="cardcolumn">{col8}</div> <>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
+ {empty1 == () && col1 != ()} Move {lastcard(col1)} from col1 to empty1
|
+ {can_move_to_empty(col1, empty1)} [Move {lastcard(col1)} to empty space] -> move_from_col1_to_empty1
|
||||||
-> move_from_col1_to_empty1
|
+ {empty1 != () && can_move_to_empty(col1, empty2)} [Move {lastcard(col1)} to empty space] -> move_from_col1_to_empty2
|
||||||
+ {empty2 == () && col1 != ()} Move {lastcard(col1)} from col1 to empty2
|
+ {can_move_to_col(empty1, col1)} [Move {lastcard(empty1)} to col1] -> move_from_empty1_to_col1
|
||||||
-> move_from_col1_to_empty2
|
+ {can_move_to_col(empty2, col1)} [Move {lastcard(empty2)} to col1] -> move_from_empty2_to_col1
|
||||||
|
+ -> END
|
||||||
-> END
|
|
||||||
|
|
||||||
=== move_from_col1_to_empty1
|
=== move_from_col1_to_empty1
|
||||||
|
|
||||||
|
@ -119,3 +118,15 @@ VAR full4 = ()
|
||||||
~ empty2 += pop(col1)
|
~ empty2 += pop(col1)
|
||||||
|
|
||||||
-> main
|
-> main
|
||||||
|
|
||||||
|
=== move_from_empty1_to_col1
|
||||||
|
|
||||||
|
~ col1 += pop(empty1)
|
||||||
|
|
||||||
|
-> main
|
||||||
|
|
||||||
|
=== move_from_empty2_to_col1
|
||||||
|
|
||||||
|
~ col1 += pop(empty2)
|
||||||
|
|
||||||
|
-> main
|
||||||
|
|
|
@ -270,7 +270,7 @@ body {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@for $i from 1 through 4 {
|
@for $i from 1 through 4 {
|
||||||
#full#{$i} {
|
#foundation#{$i} {
|
||||||
right: ($card_width * ($i - 1) + ($gutter / 2));
|
right: ($card_width * ($i - 1) + ($gutter / 2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue