This is the README accompanying the source code to Simon Tatham's puzzle collection. The collection's web site is at <http://www.chiark.greenend.org.uk/~sgtatham/puzzles/>. If you've obtained the source code by downloading a .tar.gz archive from the Puzzles web site, you should find several Makefiles in the source code. However, if you've checked the source code out from the Puzzles Subversion repository, you won't find the Makefiles: they're automatically generated by `mkfiles.pl', so run that to create them. The Makefiles include: - `Makefile' should work under GNU make on Linux, provided you have GTK installed to compile and link against. It builds GTK binaries of the puzzle games. - `Makefile.vc' should work under MS Visual C++ on Windows. - `Makefile.cyg' should work under Cygwin / MinGW. With appropriate tweaks and setting of TOOLPATH, it should work for both compiling on Windows and cross-compiling on Unix. - `Makefile.osx' should work under Mac OS X, provided the Xcode tools are installed. It builds a single monolithic OS X application capable of running any of the puzzles, or even more than one of them at a time. - `Makefile.wce' should work under MS eMbedded Visual C++ on Windows and the Pocket PC SDK; it builds Pocket PC binaries. Many of these Makefiles build a program called `nullgame' in addition to the actual game binaries. This program doesn't do anything; it's just a template for people to start from when adding a new game to the collection, and it's compiled every time to ensure that it _does_ compile and link successfully (because otherwise it wouldn't be much use as a template). Once it's built, you can run it if you really want to (but it's very boring), and then you should ignore it. DO NOT EDIT THE MAKEFILES DIRECTLY, if you plan to send any changes back to the maintainer. The makefiles are generated automatically by the Perl script `mkfiles.pl' from the file `Recipe' and the various .R files. If you need to change the makefiles as part of a patch, you should change Recipe, *.R, and/or mkfiles.pl. The manual is provided in Windows Help format for the Windows build; in text format for anyone who needs it; and in HTML for the Mac OS X application and for the web site. It is generated from a Halibut source file (puzzles.but), which is the preferred form for modification. To generate the manual in other formats, rebuild it, or learn about Halibut, visit the Halibut website at <http://www.chiark.greenend.org.uk/~sgtatham/halibut/>.
Simon Tatham's Portable Puzzle Collection
Overview
Comments
-
File missing in Xcode 4.6.1
Tried to run the Puzzles.xcodeproj in Xcode 4.6.1 but it failed - missing file 'list.c'. Is the file required or is it indicating it doesn't work in this version of Xcode?
-
Fix iOS 14 crash and add dark mode support
This has several different pieces, let me know if you'd prefer I split it into several PRs. Also, I know the diff looks big but most of that is just removing the PSTCollectionView files. The actual substance is less than a score of lines.
The app currently crashes on iOS 14 due to an assertion in UICollectionView that registered cell classes are subclasses of
UICollectionViewCell
. The class in question,GameListViewCell
, is in fact a subclasses ofPSUICollectionViewCell
, which indeed does not inherit fromUICollectionViewCell
. Changing the superclass ofGameListViewCell
toUICollectionViewCell
fixes the crash with no apparent side effects—as expected of an "API-compatible replacement" forUICollectionView
.Since the PSTCollectionView library is only a compatibility layer for iOS versions before 6, it is no longer needed. Changing the other couple references to it to their
UIKit
counterparts also appears to have no side effects, and allows us to remove the library altogether.Additionally, when built for iOS 13+ and run in dark mode, text on the game list is white-on-white, and the status bar text is white on light gray, not great contrast. I have included basic dark mode support, adopting a system color that updates automatically based on dark mode state for the game list cell background, and forcing the game status bar text to remain black. One could go further, changing the bar tint colors or perhaps even the game color lists, but I'm not a designer and this is good enough.
-
Add an Erase action to Undead
When playing Undead, it's nice to be able to remove a mark you made, but not the one you just made (which can be removed with undo). In the desktop version, you do this by typing space.
I've tested this in the iOS simulator, but I don't have an iOS developer account, so I couldn't test it on actual hardware.
-
Use safe area in game view
In version 1.3.1, the toolbar appears under the home bar for devices without a home button, making them difficult to press (this regression was caused by the SDK update). This PR updates the game view to account for the "safe area".
On my iPhone XS (iOS 14.0), before:
After:
On the "iPad Pro (12.9-inch) (3rd generation)" simulator (iOS 13.3), before:
After:
-
several pushes of unsolve needed
Cheers,
When pushing key kombo Strg+S several times you need to push also several times to undo. I think once should be enough because you cant solve it more than once and after that one undo should be enough.
Thanks,
-
Feature request: toggle left and right click
I love this open source game package, thanks for maintaining it!
The Android version of Tatham’s Puzzle Games has a little control panel inside each game that enables toggling the functions of short and long click during game play. Could you implement that in the iOS version? For games that call for lots of long clicks, this feature makes them much more playable.
-
Uses ringer volume for media
My system: iOS 15.2.1
App version: 1.3.2.1 Original Revision: f1e68fb Downloaded from Apple app store a few days ago
This bug report is about the right click sound played by the long tap action which simulates right click. To reproduce, open a new game of Mines, and perform a long tap on any square of the board. (Or pretty much at any time in any game, that's just one example.)
My phone has two volume controls: media and ringer. Media volume is in the control center which is accessed by swiping down from the top right. Ringer volume is in settings -> sound and haptics -> Ringer and alerts. Typically, ringer volume determines the playback volume of ringer and alerts while media volume controls the volume of video playback, music, and games.
The expected behavior is for games to use the media volume to for the long tap sound. The actual behavior is that this app uses the ringer volume. This means that in order to hear the long tap sound clearly (it is a very faint sound and very important for gameplay) I need to turn my ringer volume all the way up, and then my phone rings loudly if I get a call.
Glad to provide more details if needed, thanks for maintaining this package :)
-
Game ids inaccessible
The game ids and random seeds cannot be edited or copied. This problem has been going on for at least a few months, but I’m not sure when it started exactly. I’ve had it on both an iPhone SE (the old SE) and an iPad, on various subversions of iOS 14.
-
Tatham upstream merges
I've been keeping my own fork of your code up-to-date with Simon Tatham's updates over the years. Lots of little bugfixes, but he also added a new game at some point.
But at some point I also merged in a branch from some other guy's additional puzzles for the collection: https://github.com/x-sheep/puzzles-unreleased
Since you hadn't updated in years, I didn't think to keep a completely separate branch without those additional "x-sheep" puzzles. I did, however, keep my iOS build file changes in a separate branch. That separate branch is the one I've been using to build and then locally install on my iPhone and iPad. So this PR should produce a clean build that only incorporates 5 years' worth of upstream merges. It does have the x-sheep files in the source, but they're not incorporated into the build.
If you're interested in those additional puzzles, I can make different PR that includes the changes to
Puzzles.xcodeproj/project.pbxproj
I've been using to include them in the build.If you're interested in the upstream merges but not the x-sheep puzzles, and you'd prefer a nice clean PR without the extra garbage, then I can make a cleaner PR for you.
If you're not interested in any of this at all, then I'll just say "thanks" for creating this iOS build in the first place :)
iPhone and iPod Touch version of Skeleton Key: is an addictive and unique puzzle game in which you shift keys around the board unlocking treasure chests. Made with cocos2d-iphone.
Skeleton Key (iOS) Skeleton Key is an addictive and unique puzzle game in which you shift keys around the board unlocking treasure chests. It's availa
Gamer-s-Collection - An app for searching and saving favorite games using rawg.io api and Core Data
Gamer-s-Collection - An app for searching and saving favorite games using rawg.io api and Core Data
TraceLog is a highly configurable, flexible, portable, and simple to use debug logging system for Swift and Objective-C applications running on Linux, macOS, iOS, watchOS, and tvOS.
Please star this github repository to stay up to date. TraceLog Introduction TraceLog is a highly configurable, flexible, portable, and simple to use
Owl is a portable Wayland compositor written in Objective-C, using Cocoa as its backend.
Owl is a portable Wayland compositor written in Objective-C, using Cocoa as its backend. Owl primarily targets Mac OS X, but also supports a varie
🦁 🃏 📱 An animal matching puzzle card game– built with turn-based game engine boardgame.io and React-Native + React-Native-Web
Matchimals.fun an animal matching puzzle card game ?? ?? ?? Download for iOS from the App Store ?? Download for Android from the Google Play Store ??
iPhone and iPod Touch version of Skeleton Key: is an addictive and unique puzzle game in which you shift keys around the board unlocking treasure chests. Made with cocos2d-iphone.
Skeleton Key (iOS) Skeleton Key is an addictive and unique puzzle game in which you shift keys around the board unlocking treasure chests. It's availa
Solution to the Giant Pyramid puzzle
Giant Pyramid Solver This is a repository for the solver and the solution for the Giant Pyramid puzzle I bought mine around 2000. As of 2017 it is no
Blueprints is a collection of flow layouts that is meant to make your life easier when working with collection view flow layouts.
Blueprints is a collection of flow layouts that is meant to make your life easier when working with collection view flow layouts. It comes
Modern-collection-view - Modern collection view for swift
Modern collection view Sample application demonstrating the use of collection vi
A collection useful tips for the Swift language
SwiftTips The following is a collection of tips I find to be useful when working with the Swift language. More content is available on my Twitter acco
A collection of Swift tips & tricks that I've shared on Twitter
⚠️ This list is no longer being updated. For my latest Swift tips, checkout the "Tips" section on Swift by Sundell. Swift tips & tricks ⚡️ One of the
A Collection of PropertyWrappers to make custom Serialization of Swift Codable Types easy
CodableWrappers Simplified Serialization with Property Wrappers Move your Codable and (En/De)coder customization to annotations! struct YourType: Coda
ChainPageCollectionView A custom View with two level chained collection views and fancy transition animation
ChainPageCollectionView A custom View with two level chained collection views and fancy transition animation. Demo Requirements iOS 9.0+ Xcode 8 Insta
Gradients 🌔 A curated collection of 180 splendid gradients made in swift
Gradients ?? A curated collection of 180 splendid gradients made in swift 180 splendid Gradients inspired by itmeo/webgradients View all the gradients
DTPhotoViewerController - A fully customizable photo viewer ViewController to display single photo or collection of photos, inspired by Facebook photo viewer.
DTPhotoViewerController Example Demo video: https://youtu.be/aTLx4M4zsKk DTPhotoViewerController is very simple to use, if you want to display only on
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
Features • Classes and Extensions Compatibility • Requirements • Communication • Contributing • Installing and Usage • Documentation • Changelog • Exa
A collection of functions for statistical calculation written in Swift.
σ (sigma) - statistics library written in Swift This library is a collection of functions that perform statistical calculations in Swift. It can be us
CryptoSwift is a growing collection of standard and secure cryptographic algorithms implemented in Swift
CryptoSwift Crypto related functions and helpers for Swift implemented in Swift. (#PureSwift) Note: The master branch follows the latest currently rel
💾 A collection of classic-style UI components for iOS
A collection of classic-style UI components for UIKit, influenced by Windows 95 Introduction This is a little exploration into applying '90s-era desig
A collection of awesome loading animations
NVActivityIndicatorView ⚠️ Check out LoaderUI (ready to use with Swift Package Mananger supported) for SwiftUI implementation of this. ?? Introduction