OpenStrat
Members list
Packages
This is the root package for the Openstrat project. The top of this package contains, 32 bit Int based Colours, the Multiple type class, a show and persistence library using RCON (Name may change), Rich Compact Object Notation, array based compound value collections of same length elements, an Either based errors framework and general utilities.
This is the root package for the Openstrat project. The top of this package contains, 32 bit Int based Colours, the Multiple type class, a show and persistence library using RCON (Name may change), Rich Compact Object Notation, array based compound value collections of same length elements, an Either based errors framework and general utilities.
Attributes
A diceless game set in 1900, at a 320km scale.
A diceless game set in 1900, at a 320km scale.
Attributes
Hex tile grids for Earth with a hex scale of 100km, a C scale of 40km.
Hex tile grids for Earth with a hex scale of 100km, a C scale of 40km.
Attributes
Hex tile grids for Earth with a hex scale of 320km, a C scale of 80km.
Hex tile grids for Earth with a hex scale of 320km, a C scale of 80km.
Attributes
Hex tile grids for Earth with a hex scale of 80km, a C scale of 20km.
Hex tile grids for Earth with a hex scale of 80km, a C scale of 20km.
Attributes
This is the package for the first example of an extremely simple simultaneous turn tile based game. The game is created purely to illustrate and test fundamental algorithm and software patterns. It is not intended as an interesting game to play. Each player can move one hex tile step. Any move to a tile already containing a player or that one more than one player is attempting to move to fails.his is the package for the second example of simple simultaneous turn tile based games. It differs from the first in that it is on a square grid and adjacent moves take priority over diagonal tile steps.
This is the package for the first example of an extremely simple simultaneous turn tile based game. The game is created purely to illustrate and test fundamental algorithm and software patterns. It is not intended as an interesting game to play. Each player can move one hex tile step. Any move to a tile already containing a player or that one more than one player is attempting to move to fails.his is the package for the second example of simple simultaneous turn tile based games. It differs from the first in that it is on a square grid and adjacent moves take priority over diagonal tile steps.
Attributes
This is the package for the 3rd example of a simple simultaneous turn tile based game. This example introduces terrain.
This is the package for the 3rd example of a simple simultaneous turn tile based game. This example introduces terrain.
Attributes
This is the package for the second example of simple simultaneous turn tile based games. A hex based game like game One1, that introduces multi turn directives.
This is the package for the second example of simple simultaneous turn tile based games. A hex based game like game One1, that introduces multi turn directives.
Attributes
The package name has been chosen to avoid clashing with "geometry" that may be use in other libraries This package contains geometry vectors and graphics. Of particular note are the Pt2, GeomElem and GraphicElem class /traits. These are the foundation of the API and the library. A number of implementation Value classes of the Int and Double product classes defined in ostrat. 2d graphical objects for generalised use. They are of particular use for the generic canvas based classes defined in pCanv but can be used in any display framework and for printing.
The package name has been chosen to avoid clashing with "geometry" that may be use in other libraries This package contains geometry vectors and graphics. Of particular note are the Pt2, GeomElem and GraphicElem class /traits. These are the foundation of the API and the library. A number of implementation Value classes of the Int and Double product classes defined in ostrat. 2d graphical objects for generalised use. They are of particular use for the generic canvas based classes defined in pCanv but can be used in any display framework and for printing.
Attributes
This package is for global geometry.
This package is for global geometry.
Attributes
This is the beginnings of a grand strategy game starting in BC305 covering Europe, North Africa and West Asia.
This is the beginnings of a grand strategy game starting in BC305 covering Europe, North Africa and West Asia.
Attributes
This is ancient code. Not use how much is worth salvaging
This is ancient code. Not use how much is worth salvaging
Attributes
A civilisation development game.
A civilisation development game.
Attributes
This package and module is for Earth maps. In particular the tiling of the whole world in Hex grids, defining the changes over the course of history. This will be a data orientated module. It will also include terrain types to model terrain, both real and imagined for local maps and higher scales right up to 0.5 metres per tile However it won't generally include the data for these. The data for the real world will be organised according to a number of levels, which are likely to change over increasingly shorter historical time frames.
This package and module is for Earth maps. In particular the tiling of the whole world in Hex grids, defining the changes over the course of history. This will be a data orientated module. It will also include terrain types to model terrain, both real and imagined for local maps and higher scales right up to 0.5 metres per tile However it won't generally include the data for these. The data for the real world will be organised according to a number of levels, which are likely to change over increasingly shorter historical time frames.
1 Base elevation, relative to 1950 sea level, and relief. 2 Climate. 2 Sea level, shore lines, lake shore lines and river courses. 3 Land-use, both natural and human.
Attributes
This is the RSON package. Readable Succinct Object Notation. It could be just as accurately be described as Readable Succinct Data Notation, but that wouldn't scan as well and indicate it as a better replacement for JSON. RSON uses the standard semicolon separated statements combined with multilevel bracket hierarchy syntax familiar from C, C++, Java and JavaScript. Its main innovations over JSON and XML are allowing statements to be partitioned into comma delineated clauses, the empty statement, the empty clause and type inference. It uses a context free operator precedence hierarchy, with the exception of allowing the 4 ( - + ~ !) operator to be used as prefix operators. Beyond this it generally follows Scala syntax where this doesn't conflict with the preceding rules. Unlike Scala statements must finish with a semicolon unless it is the last statement of a file or a bracket block. Allowing statements to end with a newline introduces horrendous ambiguities unless one is willing to go completely down the significant whitespace route and I'm not sure if that could work even work for such a general purpose basic syntax.
This is the RSON package. Readable Succinct Object Notation. It could be just as accurately be described as Readable Succinct Data Notation, but that wouldn't scan as well and indicate it as a better replacement for JSON. RSON uses the standard semicolon separated statements combined with multilevel bracket hierarchy syntax familiar from C, C++, Java and JavaScript. Its main innovations over JSON and XML are allowing statements to be partitioned into comma delineated clauses, the empty statement, the empty clause and type inference. It uses a context free operator precedence hierarchy, with the exception of allowing the 4 ( - + ~ !) operator to be used as prefix operators. Beyond this it generally follows Scala syntax where this doesn't conflict with the preceding rules. Unlike Scala statements must finish with a semicolon unless it is the last statement of a file or a bracket block. Allowing statements to end with a newline introduces horrendous ambiguities unless one is willing to go completely down the significant whitespace route and I'm not sure if that could work even work for such a general purpose basic syntax.
The above allows it to combine a high level of human readability, succinctness, non-programmer / non-expert write-ability, programmer flexibility and composability and fast-parsing. The initial motivating use case was strategy games, which require huge amounts of modable date files. XML and JSON, the current defaults are simply not fit for purpose. RSON aims to break down the walls between game player, game modder, professional game artist, professional game scripter, professional imperative programming wizards in languages such as C / C++ and Rust and professional functional programming wizards in languages such as Scala, Haskell and Idris.
Attributes
Clone of the classic Atoms game
Clone of the classic Atoms game
Attributes
Package for miscellaneous game utilities and data.
Package for miscellaneous game utilities and data.
Attributes
I'm just trying out a new package, not sure whether will use pWeb.
I'm just trying out a new package, not sure whether will use pWeb.
Attributes
This is a package for Chess and Draughts (also known as Checkers). It has been included in the main Strat library, as useful to have code. Because they are finished games, with established rules and iconography. As opposed to applications like GOne, GTwo etc, which are super simple games merely created for the teaching of the use use of the ostrat libraries. And also as opposed to the games in the Dev module which are intended to be developed into interesting games which may at some point have their own individual repositories.
This is a package for Chess and Draughts (also known as Checkers). It has been included in the main Strat library, as useful to have code. Because they are finished games, with established rules and iconography. As opposed to applications like GOne, GTwo etc, which are super simple games merely created for the teaching of the use use of the ostrat libraries. And also as opposed to the games in the Dev module which are intended to be developed into interesting games which may at some point have their own individual repositories.
Attributes
The package attempts to encapsulate the various abstract canvas traits while the actual objects that populate a canvas go in package geom.
The package attempts to encapsulate the various abstract canvas traits while the actual objects that populate a canvas go in package geom.
Attributes
This p1783 package is the beginnings of a grand strategy development game starting in 1783.
This p1783 package is the beginnings of a grand strategy development game starting in 1783.
Attributes
The tile grid package, replacing the old pGrid package. This package works with hexagonal and Square tile grids. There are separate class for the different types of Coordinates HCen, SqCen, HSide, etc. The tile objects themselves will not in the general case the contain grid coordinates, although it may be necessary to include this data for complex tile values interacting with their wider environment. Its fundamental components are the grid data itself. This is just a linear array of tile data. Compile-time typed grid data. So for example a chess board can be represented by a 64 element Arr, its context determines that it is to be interpreted as an 8 by 8 square grid. Grid descriptions that describe the grid representation in the Array and GridFunctions which implement Cood to T. The grid and grid-gui hierarchies currently contain a mix of new and old systems.
The tile grid package, replacing the old pGrid package. This package works with hexagonal and Square tile grids. There are separate class for the different types of Coordinates HCen, SqCen, HSide, etc. The tile objects themselves will not in the general case the contain grid coordinates, although it may be necessary to include this data for complex tile values interacting with their wider environment. Its fundamental components are the grid data itself. This is just a linear array of tile data. Compile-time typed grid data. So for example a chess board can be represented by a 64 element Arr, its context determines that it is to be interpreted as an 8 by 8 square grid. Grid descriptions that describe the grid representation in the Array and GridFunctions which implement Cood to T. The grid and grid-gui hierarchies currently contain a mix of new and old systems.
The package name prid, short for package grid, was chosen to allow you to use the name "grid" in your code.
Attributes
Package for hex grids.
Package for hex grids.
Attributes
Package for square tile grids.
Package for square tile grids.
Attributes
Package offering some code for Space.
Package offering some code for Space.
Attributes
This pSimp is the beginnings of a WWII grand strategy game.
This pSimp is the beginnings of a WWII grand strategy game.