[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/poker 37e54e3 06/12: Improve poker-hand-value performan
From: |
Stefan Monnier |
Subject: |
[elpa] externals/poker 37e54e3 06/12: Improve poker-hand-value performance by 25% |
Date: |
Tue, 1 Dec 2020 16:46:50 -0500 (EST) |
branch: externals/poker
commit 37e54e3bcae8f28ac7e9f72276c3afbc7df855ed
Author: Mario Lang <mlang@delysid.org>
Commit: Mario Lang <mlang@delysid.org>
Improve poker-hand-value performance by 25%
Avoid unnecessary calls to poker-card-suit in flush check.
---
poker.el | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/poker.el b/poker.el
index c908bb6..61888ae 100644
--- a/poker.el
+++ b/poker.el
@@ -109,11 +109,16 @@ The highest possible value is therefore #x8CBA98 and the
lowest is #x053210."
(eq (nth 1 ranks) 3))
(setq ranks '(3 2 1 0 0)))
(eq (- (nth 0 ranks) (nth 4 ranks)) 4)))
- (flush (not (cdr (delete-dups (mapcar #'poker-card-suit
hand))))))
+ (flush (let ((suit (poker-card-suit (car hand)))
+ (tail (cdr hand)))
+ (while (and tail
+ (eq suit (poker-card-suit (car tail))))
+ (setq tail (cdr tail)))
+ (not tail))))
(cond ((and straight flush) #x800000)
- (straight #x400000)
- (flush #x500000)
- (t 0))))
+ (straight #x400000)
+ (flush #x500000)
+ (t 0))))
((equal rank-counts '(2 2 1)) #x200000)
((equal rank-counts '(3 1 1)) #x300000)
((equal rank-counts '(3 2)) #x600000)
- [elpa] branch externals/poker created (now 30f3985), Stefan Monnier, 2020/12/01
- [elpa] externals/poker 725cbdf 01/12: Add new simple package poker.el., Stefan Monnier, 2020/12/01
- [elpa] externals/poker 937e353 02/12: [poker] Add to the games menu., Stefan Monnier, 2020/12/01
- [elpa] externals/poker 2e12d6b 03/12: * poker/poker.el (poker-combinations, poker-possible-hands): Fix tests., Stefan Monnier, 2020/12/01
- [elpa] externals/poker 7d978b1 05/12: Very slightly improve performance, Stefan Monnier, 2020/12/01
- [elpa] externals/poker b9debcb 04/12: Fix some quoting problems in doc strings, Stefan Monnier, 2020/12/01
- [elpa] externals/poker fcdb916 08/12: Add a pre-flop hand strength table and an ert test for poker-hand-value, Stefan Monnier, 2020/12/01
- [elpa] externals/poker 37e54e3 06/12: Improve poker-hand-value performance by 25%,
Stefan Monnier <=
- [elpa] externals/poker 56469f2 10/12: [poker] Version 0.2, update copyright years and add todo, Stefan Monnier, 2020/12/01
- [elpa] externals/poker 30f3985 12/12: * .gitignore: New file, Stefan Monnier, 2020/12/01
- [elpa] externals/poker 423994e 07/12: Improve performance of poker-hand-value by a factor of 4, Stefan Monnier, 2020/12/01
- [elpa] externals/poker 351b253 11/12: Fix typo in poker-describe-hand (Bug#34241), Stefan Monnier, 2020/12/01
- [elpa] externals/poker fe8a532 09/12: Set default number of iterations to 300, Stefan Monnier, 2020/12/01