From a56355da7d678ff61c0ad7b266742c91ab883ebb Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Sat, 15 Feb 2025 20:05:01 +0000 Subject: Rework player package to use structures and a hash table Instead of an association list and a type contract, let's use a hash table and a structure. This is: more explicit, encapsulates state more effectively, generates much of the cruft (constructors, destructors) for me. A hash table is more efficient when considering large player bases. In particular, we'll be generating unique player IDs to make it a bit more difficult for a malicious agent to guess another player's ID and make bad requests. --- packages.lisp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'packages.lisp') diff --git a/packages.lisp b/packages.lisp index 72fc8af..756b272 100644 --- a/packages.lisp +++ b/packages.lisp @@ -58,13 +58,12 @@ :5d.model) (:export :player - :players :error-player-nonexistent :error-player-broke - :player-id :player-balance :player-hand - :player-exists? :player-bankrupt? :player-can-bet? - :player-pay - :player-receive)) + :player-exists? :player-bankrupt? :player-can-pay? + :player-debit + :player-credit + :player-set-cards)) (defpackage cantedraw.game (:nicknames :5d.game) -- cgit v1.2.3-13-gbd6f