OpenStrat

Members list

Concise view

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.

Attributes

package ostrat.dless

A diceless game set in 1900, at a 320km scale.

A diceless game set in 1900, at a 320km scale.

Attributes

package ostrat.eg160

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

package ostrat.eg320

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

package ostrat.eg80

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

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.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

package ostrat.gPlay

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

package ostrat.gTwo

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

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.

Attributes

This package is for global geometry.

This package is for global geometry.

Attributes

package ostrat.goft
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.

Attributes

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

Attributes

package ostrat.pCiv

A civilisation development game.

A civilisation development game.

Attributes

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.

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 ostrat.pSJs

Package for miscellaneous game utilities and data.

Package for miscellaneous game utilities and data.

Attributes

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.

Attributes

package ostrat.pZero

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

package ostrat.pgo
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.

Attributes

package ostrat.pnap

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

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.

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

package ostrat.pww1
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.

Attributes

package ostrat.pzug
package ostrat.strat