109 lines
2.6 KiB
Scheme
109 lines
2.6 KiB
Scheme
; focus on the main sequence of actual rules going off
|
|
|
|
(define-rules chaturanji
|
|
|
|
(init-board:
|
|
((🜃♗ 🜃♙ _ _ 🜁♚ 🜁♜ 🜁♞ 🜁♝)
|
|
(🜃♘ 🜃♙ _ _ 🜁♟ 🜁♟ 🜁♟ 🜁♟)
|
|
(🜃♖ 🜃♙ _ _ _ _ _ _)
|
|
(🜃♔ 🜃♙ _ _ _ _ _ _)
|
|
(_ _ _ _ _ _ 🜂♟ 🜂♚)
|
|
(_ _ _ _ _ _ 🜂♟ 🜂♜)
|
|
(🜄♙ 🜄♙ 🜄♙ 🜄♙ _ _ 🜂♟ 🜂♞)
|
|
(🜄♗ 🜄♘ 🜄♖ 🜄♔ _ _ 🜂♟ 🜂♝)))
|
|
;; ← ↑ → ↓ ↖ ↗ ↘ ↙
|
|
;; ■ □
|
|
(turns
|
|
(pass)
|
|
(define (die-roll)
|
|
(let ((die (+ 1 (random 6)))
|
|
(die2 (+ 1 (random 6)))) #;(second-die)
|
|
(list die die2)))
|
|
; (clockwise-turnshift)
|
|
(moves
|
|
(🜃
|
|
(♔
|
|
; 地王's asana is D1 (earth quadrant)
|
|
(((♔ ■/_))
|
|
((_ ♔ ))
|
|
(((? ■/_)
|
|
((? ♔)
|
|
|
|
)
|
|
; or
|
|
(♙ ; PEON
|
|
(((♙ _))
|
|
((_ ♙)))
|
|
(((? ♙ _ _ ? ? ? ?))
|
|
((? _ ♙ _ ? ? ? ?)))
|
|
;; capture logic ↗ ↘
|
|
) ; /padati
|
|
; ... or or
|
|
;; make this logic clearer: (king or pawn) or (rest of pieces)
|
|
(♖ #;hasti
|
|
(((♖ _ → ■/_))
|
|
((_ _ → ♖))
|
|
(movement: all-directions))) #;/hasti
|
|
(♘ #;ashva
|
|
(((♘ ? ? )
|
|
(? ? ■/_))
|
|
((_ ? ?)
|
|
(? ? ♘))
|
|
(movement:
|
|
all-directions (all-directions flip-horizontally)))) #;/ashva
|
|
(♗ #;ship
|
|
(((? ? … ■/_)
|
|
(⁝ ⁝ ↗ ⁝ )
|
|
(? _ … ? )
|
|
(♗ ? … ? ))
|
|
;; todo... add jump as well, ship moves 2 spaces
|
|
;this ((? ? … ♗ )
|
|
;may (⁝ ⁝ ↗ ⁝)
|
|
;be (? _ … ?)
|
|
;unnecessary (_ ? … ?))
|
|
(movement: all-directions))) #;/ship
|
|
); bhumi(player(1))
|
|
(🜁 (transform 🜃
|
|
(♙ ♟) (♔ ♚) (♖ ♜) (♘ ♞) (♗ ♝)
|
|
(transformations:
|
|
flip-clockwise))) ; vayu raj
|
|
(🜂 (transform 🜁
|
|
(♙ ♟) (♔ ♚) (♖ ♜) (♘ ♞) (♗ ♝)
|
|
(transformations:
|
|
flip-clockwise))) ; tejas raj
|
|
(🜄 (transform 🜂
|
|
(♙ ♟) (♔ ♚) (♖ ♜) (♘ ♞) (♗ ♝)
|
|
(transformations:
|
|
flip-clockwise))) ; apas raj
|
|
) ; moves
|
|
(order-of-play: 🜃 🜁 🜂 🜄)
|
|
|
|
) ; turns
|
|
|
|
(shatpada
|
|
(let ((player ; end of rank
|
|
))) ; and has captured, (check bank)
|
|
);/promo
|
|
(sinhasana
|
|
(let ((enemy-raj asana (if (equal?
|
|
))))); lands on the raj asana
|
|
;capture
|
|
;; remove enemy piece and add to 'bank'
|
|
;freeze
|
|
(let ((ally-raj asana (if (equal?
|
|
))))); lands on the ally's raj asana
|
|
;capture
|
|
;control pieces {or freeze}
|
|
)
|
|
(vrihannauka
|
|
(let ((enemy-ship enemy-ship ally-ship asana (if (equal?
|
|
))))) ; 'ship triumph' when a square occurs
|
|
(chaturanga #; occurs
|
|
(let ((enemy-raj asana #; blah
|
|
)))
|
|
); chaturanji occurs
|
|
|
|
|
|
);define-rules chaturanji
|
|
|