aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2024-08-28 23:43:38 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2024-08-28 23:43:38 +0200
commitdbc64bef16c8617767574a41a508057bda53379a (patch)
tree9dce6f2dc2dc473d003dd53cd9d4aa457f5e53b2 /gnu/packages
parent77ca6b3108f55efe7b4f3da40c1371557588ff3d (diff)
downloadguix-dbc64bef16c8617767574a41a508057bda53379a.tar.gz
guix-dbc64bef16c8617767574a41a508057bda53379a.zip
gnu: Add lead-solver.
* gnu/packages/games.scm (lead-solver): New variable. Change-Id: I5b126d1173e80cab6a588a08887c47d2f981890d
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/games.scm138
1 files changed, 94 insertions, 44 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3f104cb475..8e35df0278 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -10259,54 +10259,104 @@ remake of that series or any other game.")
;; released under lgpl2.1+.
(license (list license:gpl2 license:cc-by-sa3.0 license:lgpl2.1+))))
+(define-public lead-solver
+ (package
+ (name "lead-solver")
+ (version "1.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((v (apply string-append (string-split version #\.))))
+ (string-append
+ "https://lajollabridge.com/Software/Lead-Solver/"
+ "leadsolver-" v ".zip")))
+ (sha256
+ (base32
+ "0xsa7r6r5sprgy0pkdm1xj1jwyy6d3qak2ynviy8xplicl99q09f"))
+ (modules '((guix build utils)
+ (ice-9 ftw)))
+ (snippet
+ #~(begin
+ ;; Remove pre-built executables and cruft relative
+ ;; to other OSes.
+ (for-each
+ delete-file-recursively
+ (scandir "."
+ (lambda (f)
+ (not (member f '("." ".." "leadsolver.cpp"))))))
+ (substitute* "leadsolver.cpp"
+ (("#include \"dll.h\"") "#include <dll.h>"))))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #false ;no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (replace 'build
+ (lambda _
+ (invoke "g++" "leadsolver.cpp" "-ldds" "-o" "leadsolver")))
+ (replace 'install ;no install phase
+ (lambda _
+ (let ((bin (string-append #$output "/bin")))
+ (install-file "leadsolver" bin)))))))
+ (native-inputs (list unzip))
+ (inputs (list dds))
+ (home-page
+ "https://lajollabridge.com/Software/Lead-Solver/Lead-Solver-About.htm")
+ (synopsis "Analyze leads in bridge game")
+ (description
+ "Given bridge hands, Lead Solver tallies up how well each card does when
+led in terms of average tricks taken for the defense (for matchpoints) and how
+often the contract is set (for team play).")
+ (license license:gpl3)))
+
(define-public leela-zero
(package
- (name "leela-zero")
- (version "0.17")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/leela-zero/leela-zero")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "17px5iny8mql5c01bymcli7zfssswkzvb2i8gnsmjcck6i2n8srl"))
- (patches (search-patches "leela-zero-gtest.patch"))))
- (build-system cmake-build-system)
- (native-inputs
- (list googletest))
- (inputs
- (list boost
- opencl-icd-loader
- openblas
- opencl-headers
- qtbase-5
- zlib))
- (arguments
- '(#:configure-flags '("-DUSE_BLAS=YES")
- #:phases (modify-phases %standard-phases
- (add-before 'configure 'fix-tests
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((home (getcwd)))
- (setenv "HOME" home)
- (substitute* "src/tests/gtests.cpp"
- (("\\.\\./src/tests/0k\\.txt")
- (string-append home "/src/tests/0k.txt"))
- (("cfg_gtp_mode = true;")
- "cfg_gtp_mode = true; cfg_cpu_only = true;")))
- #t))
- (replace 'check
- (lambda _
- (invoke "./tests"))))))
- (home-page "https://github.com/leela-zero/leela-zero")
- (synopsis "Program playing the game of Go")
- (description
- "Leela-zero is a Go engine with no human-provided knowledge, modeled after
+ (name "leela-zero")
+ (version "0.17")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/leela-zero/leela-zero")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17px5iny8mql5c01bymcli7zfssswkzvb2i8gnsmjcck6i2n8srl"))
+ (patches (search-patches "leela-zero-gtest.patch"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ (list googletest))
+ (inputs
+ (list boost
+ opencl-icd-loader
+ openblas
+ opencl-headers
+ qtbase-5
+ zlib))
+ (arguments
+ '(#:configure-flags '("-DUSE_BLAS=YES")
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'fix-tests
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((home (getcwd)))
+ (setenv "HOME" home)
+ (substitute* "src/tests/gtests.cpp"
+ (("\\.\\./src/tests/0k\\.txt")
+ (string-append home "/src/tests/0k.txt"))
+ (("cfg_gtp_mode = true;")
+ "cfg_gtp_mode = true; cfg_cpu_only = true;")))
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "./tests"))))))
+ (home-page "https://github.com/leela-zero/leela-zero")
+ (synopsis "Program playing the game of Go")
+ (description
+ "Leela-zero is a Go engine with no human-provided knowledge, modeled after
the AlphaGo Zero paper. The current best network weights file for the engine
can be downloaded from @url{https://zero.sjeng.org/best-network}.")
- (license license:gpl3+)))
+ (license license:gpl3+)))
(define-public q5go
(package