AI improvements.
This commit is contained in:
@@ -1629,12 +1629,20 @@
|
||||
(define (round-down-1000 val)
|
||||
(- val (remainder val 1000)))
|
||||
|
||||
(define (pct-complete net-worth game)
|
||||
(/ (min net-worth (game-setting 'audit-threshold game))
|
||||
(game-setting 'audit-threshold game)))
|
||||
|
||||
(define (ai-buy player game)
|
||||
(print "ai attempting to buy")
|
||||
(let ((room (+ (- (game-setting 'max-debt game) (player-debt player)) (round-down-1000 (player-cash player))))
|
||||
(crops (map (lambda (card)
|
||||
(string->symbol (alist-ref 'crop card)))
|
||||
(player-otbs player))))
|
||||
(let* ((net-worth (player-net-worth player))
|
||||
(pct-complete (pct-complete net-worth game))
|
||||
(room (if (< pct-complete 0.7)
|
||||
1000000 ;; basically infinite
|
||||
(+ (- (game-setting 'max-debt game) (player-debt player)) (round-down-1000 (player-cash player)))))
|
||||
(crops (map (lambda (card)
|
||||
(string->symbol (alist-ref 'crop card)))
|
||||
(player-otbs player))))
|
||||
(print (conc "room: " room))
|
||||
(print (conc "crops: " crops))
|
||||
(let ((to-buy
|
||||
@@ -1650,7 +1658,8 @@
|
||||
(= (player-asset 'harvester player) 0))
|
||||
'(harvester 1 10000))
|
||||
((and (member 'tractor crops) (>= room 10000)
|
||||
(= (player-asset 'tractor player) 0))
|
||||
(= (player-asset 'tractor player) 0)
|
||||
(<= (player-asset 'cows player) 40))
|
||||
'(tractor 1 10000))
|
||||
((and (member 'ridge4 crops) (>= room 50000)
|
||||
(not (find (lambda (p)
|
||||
@@ -1676,11 +1685,15 @@
|
||||
(print "to buy: " to-buy)
|
||||
(if to-buy
|
||||
(begin
|
||||
(print (conc "buying crop: " (first to-buy)))
|
||||
(print (conc "buying crop: " (first to-buy)))
|
||||
(when (< (round-down-1000 (player-cash player)) (third to-buy))
|
||||
(process-message player game "loan" `((amount . ,(/ (- (third to-buy)
|
||||
(round-down-1000 (player-cash player)))
|
||||
1000)))))
|
||||
(if (eq? (buy-crop (normalize-crop (first to-buy))
|
||||
(first to-buy)
|
||||
(second to-buy)
|
||||
(min (third to-buy) (round-down-1000 (player-cash player)))
|
||||
(third to-buy)
|
||||
player
|
||||
game)
|
||||
#t)
|
||||
@@ -1741,7 +1754,9 @@
|
||||
(process-message player game "loan" `((amount . ,(/ (+ (abs (player-cash player))
|
||||
(remainder (abs (player-cash player)) 1000))
|
||||
1000)))))
|
||||
(when (>= (player-cash player) 1000)
|
||||
(when (and (>= (player-cash player) 1000)
|
||||
(or (<= (player-debt player) 40000)
|
||||
(>= (player-cash player) 75000)))
|
||||
(print "repaying loan")
|
||||
(process-message player game "loan" `((amount . ,(* (/ (- (player-cash player)
|
||||
(remainder (player-cash player) 1000))
|
||||
|
||||
Reference in New Issue
Block a user