summary refs log tree commit diff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm157
1 files changed, 135 insertions, 22 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index c7813790a1..cf2e38f49c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -78,7 +78,8 @@
 ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2023 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
-;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
+;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com>
+;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -193,6 +194,7 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
@@ -230,6 +232,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system pyproject)
   #:use-module (guix build-system qt)
   #:use-module (guix build-system scons)
   #:use-module (guix build-system trivial)
@@ -2367,6 +2370,55 @@ Every puzzle has a complete solution, although there may be more than one.")
     "PrBoom+ is a Doom source port developed from the original PrBoom project.")
    (license license:gpl2+)))
 
+(define-public redeal
+  (let ((commit "e2e81a477fd31ae548a340b5f0f380594d3d0ad6")
+        (revision "1"))
+    (package
+      (name "redeal")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/anntzer/redeal")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1vac36bg4ah9gs4hgmp745xq6nnmd7s71vsq99d72ng3sxap0wa3"))))
+      (build-system pyproject-build-system)
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'unbundle-dds
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "setup.py"
+                  (("cmdclass=.*") ""))
+                (let ((libdds (search-input-file inputs "lib/libdds.so")))
+                  (substitute* "redeal/dds.py"
+                    ((" and os.path.exists\\(dll_path\\)") "")
+                    (("dll = DLL\\(dll_path\\)")
+                     (format #f "dll = DLL(~s)" libdds))))))
+            (add-after 'install 'install-examples
+              (lambda _
+                (let* ((doc (string-append #$output "/share/doc/"))
+                       (examples
+                        (string-append doc #$name "-" #$version "/examples")))
+                  (mkdir-p examples)
+                  (copy-recursively "examples" examples)))))))
+      (inputs (list dds `(,python "tk")))
+      (propagated-inputs (list python-colorama))
+      (home-page "https://github.com/anntzer/redeal")
+      (synopsis
+       "Deal generator for bridge card game, written in Python")
+      (description
+       "Redeal is a deal generator written in Python.  It outputs deals
+satisfying whatever conditions you specify --- deals with a double void, deals
+with a strong 2♣ opener opposite a yarborough, etc.  Using Bo Haglund's double
+dummy solver, it can even solve the hands it has generated for you.")
+      (license license:gpl3))))
+
 (define-public retux
   (let ((release "1.6.1")
         (revision 0))
@@ -3385,25 +3437,29 @@ a C library, so they can easily be integrated into other programs.")
 (define-public taisei
   (package
     (name "taisei")
-    (version "1.3.2")
+    (version "1.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/taisei-project/"
                            "taisei/releases/download/v" version
-                           "/taisei-v" version ".tar.xz"))
+                           "/taisei-" version ".tar.xz"))
        (sha256
-        (base32 "1g53fcyrlzmvlsb40pw90gaglysv6n1w42hk263iv61ibhdmzh6v"))))
+        (base32 "1glrr99xiyz674d1izgvmk9w1zxanc94d34pacd0wya66bbml0nc"))))
     (build-system meson-build-system)
     (arguments
-     `(#:build-type "release"      ;comment out for bug-reporting (and cheats)
-       #:configure-flags
-       (list "-Dr_default=gles30"
-             "-Dr_gles20=true"
-             "-Dr_gles30=true"
-             "-Dshader_transpiler=true")))
+     (list
+      #:build-type "release" ;comment out for bug-reporting (and cheats)
+      #:configure-flags #~(list "-Dr_default=gles30"
+                                "-Dr_gles20=true"
+                                "-Dr_gles30=true"
+                                "-Dshader_transpiler=true")))
     (native-inputs
-     (list pkg-config python python-docutils python-pygments))
+     (list pkg-config
+           python
+           python-docutils
+           python-pygments
+           python-zstandard))
     (inputs
      (list cglm
            freetype
@@ -3417,21 +3473,23 @@ a C library, so they can easily be integrated into other programs.")
            sdl2-mixer
            shaderc
            spirv-cross
-           zlib))
+           zlib
+           (list zstd "lib")))
     (home-page "https://taisei-project.org/")
     (synopsis "Shoot'em up fangame and libre clone of Touhou Project")
     (description
      "The player controls a character (one of three: Good, Bad, and Dead),
 dodges the missiles (lots of it cover the screen, but the character's hitbox
 is very small), and shoot at the adversaries that keep appear on the screen.")
-    (license (list ;;game
-                   license:expat
-                   ;;resources/00-taisei.pkgdir/bgm/
-                   ;;atlas/portraits/
-                   license:cc-by4.0
-                   ;;miscellaneous
-                   license:cc0
-                   license:public-domain))))
+    (license (list
+              ;; game
+              license:expat
+              ;; resources/00-taisei.pkgdir/bgm/
+              ;; atlas/portraits/
+              license:cc-by4.0
+              ;; miscellaneous
+              license:cc0
+              license:public-domain))))
 
 (define-public cmatrix
   (package
@@ -3833,7 +3891,7 @@ for common mesh file formats, and collision detection.")
   (package
     (inherit irrlicht)
     (name "irrlicht-for-minetest")
-    (version "1.9.0mt10")
+    (version "1.9.0mt13")
     (source
      (origin
        (method git-fetch)
@@ -3843,7 +3901,7 @@ for common mesh file formats, and collision detection.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0y5vchz91khs8dmrkpgc7sqmvzx2yjj6svivvm80r4yppv7s03rw"))))
+         "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06"))))
     (build-system cmake-build-system)
     (arguments
      ;; No check target.
@@ -10115,6 +10173,36 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
    (home-page "https://github.com/bernds/q5Go")
    (license license:gpl2+)))
 
+(define-public qcheckers
+  (package
+    (name "qcheckers")
+    (version "0.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/portnov/qcheckers")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "05wzql6abzdf6l0vdzki4rfy2zn31mcplh1wkw3ddk8w81pvaymw"))))
+    (build-system qt-build-system)
+    (arguments
+     (list
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'configure
+            (lambda _
+              (invoke "qmake"
+                      (string-append "PREFIX=" #$output)))))))
+    (inputs (list qtbase-5 qtsvg-5))
+    (home-page "https://portnov.github.io/qcheckers/")
+    (synopsis "Qt-based checkers boardgame")
+    (description "QCheckers, formely known as KCheckers, is a is a Qt version
+of the classic boardgame checkers (also known as draughts).")
+    (license license:gpl2+)))
+
 (define-public xmoto
   (package
     (name "xmoto")
@@ -10415,6 +10503,31 @@ sunfish, but is written in C rather than Python.  It also has TUI tools for
 using any UCI engine and also to connect UCI engines to Lichess.")
       (license license:agpl3+))))
 
+(define-public morris
+  (package
+    (name "morris")
+    (version "0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/farindk/morris")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1kkcnpkzgybm7rqg7nafd7sqd5m4alns6l4j5zcf3p41jdc9s3iv"))))
+    (build-system glib-or-gtk-build-system)
+    (inputs (list automake autoconf pkg-config intltool
+		 gnu-gettext libtool glib gtk+-2 boost))
+    (arguments `(#:tests? #f))
+    (home-page "http://nine-mens-morris.net/downloads.html")
+    (synopsis "Morris is an implementation of the board game Nine Men's Morris")
+    (description "Morris is an implementation of the board game Nine Men's Morris.
+It supports not only the standard game, but also several rule-variants and different
+board layouts. You can play against the computer, or simply use the program to
+present the board, but play against another human opponent.")
+    (license license:gpl3)))
+
 (define-public barrage
   (package
     (name "barrage")