OpenStrat

Packages

package learn
package learn.e1
package ostrat

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.

package ostrat.eg320
package ostrat.eg80
package ostrat.egrid
package ostrat.gOne

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.

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.

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.

package ostrat.gTwo
package ostrat.geom

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.

This package is for global geometry.

This package is for global geometry.

package ostrat.goft
package ostrat.p1783

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.

package ostrat.p305

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.

package ostrat.pCard

This is ancient code. Not use how much is worth salvaging

This is ancient code. Not use how much is worth salvaging

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.

package ostrat.pCiv

A civilisation development game.

A civilisation development game.

package ostrat.pDev
package ostrat.pDung

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.

package ostrat.pFx

This package is for JavaFx code.

This package is for JavaFx code.

package ostrat.pGrid

This package has been deprecated. It is being replaced by the prid package.

This package has been deprecated. It is being replaced by the prid package.

This package works with hexagonal and Square tile grids. 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 pGrid was chosen to allow you to use the name "grid" in your code.

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.

Clone of the classic Atoms game

Clone of the classic Atoms game

Package for miscellaneous game utilities and data.

Package for miscellaneous game utilities and data.

package ostrat.pWW2

This pSimp is the beginnings of a WWII grand strategy game.

This pSimp is the beginnings of a WWII grand strategy game.

package ostrat.pWeb

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.

package ostrat.pZug
package ostrat.pgui

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.

package ostrat.prid

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.

Package ofr hex grids.

Package ofr hex grids.

Pacakge for square tile grids.

Pacakge for square tile grids.

Package offering some code for Space.

Package offering some code for Space.

package ostrat.strat