Packages

  • package root
    Definition Classes
    root
  • package ostrat

    This is the root package for the Openstrat project.

    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.

    Definition Classes
    root
  • package gDeux
    Definition Classes
    ostrat
  • package gOne

    This is the package for an extremely simple simultaneous turn game.

    This is the package for an extremely simple simultaneous turn game.

    Definition Classes
    ostrat
  • package gTwo
    Definition Classes
    ostrat
  • package gUne

    This is the package for an extremely simple simultaneous turn game.

    This is the package for an extremely simple simultaneous turn game.

    Definition Classes
    ostrat
  • package 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.

    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.

    Definition Classes
    ostrat
  • package 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.

    Definition Classes
    ostrat
  • package 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.

    Definition Classes
    ostrat
  • package pAltReact
    Definition Classes
    ostrat
  • package pCanv

    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.

    Definition Classes
    ostrat
  • package pCard

    This is ancient code.

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

    Definition Classes
    ostrat
  • package pChess

    This is a package for Chess and Draughts (also known as Checkers).

    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.

    Definition Classes
    ostrat
  • package pCiv

    A civilisation development game.

    A civilisation development game.

    Definition Classes
    ostrat
  • package pCloseOrder
    Definition Classes
    ostrat
  • package pDev
    Definition Classes
    ostrat
  • package pDraughts
    Definition Classes
    ostrat
  • package pDung
    Definition Classes
    ostrat
  • package pEarth

    This package and module is for Earth maps.

    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.

    Definition Classes
    ostrat
  • package pFlags
    Definition Classes
    ostrat
  • package pGrid

    This package works with hexagonal and Square tile grids.

    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.

    Definition Classes
    ostrat
  • package pHtmlFac
    Definition Classes
    ostrat
  • package pParse

    This is the RSON package.

    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.

    Definition Classes
    ostrat
  • package pReactor

    Clone of the classic Atoms game

    Clone of the classic Atoms game

    Definition Classes
    ostrat
  • package pSJs
    Definition Classes
    ostrat
  • package pSpace
    Definition Classes
    ostrat
  • package pStrat

    Package for miscellaneous game utilities and data.

    Package for miscellaneous game utilities and data.

    Definition Classes
    ostrat
  • package pWW2

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

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

    Definition Classes
    ostrat
  • package 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.

    Definition Classes
    ostrat
  • package pZug
    Definition Classes
    ostrat
  • package prid

    An experiment.

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

    Definition Classes
    ostrat
  • GridSlateScaleExtension
  • HCAndStep
  • HCStepDL
  • HCStepDR
  • HCStepLt
  • HCStepRt
  • HCStepUL
  • HCStepUR
  • HCoord
  • HCoordLineSeg
  • HCoordReg
  • HGrid
  • HGridIrr
  • HGridReg
  • HPlayer
  • HSide
  • HVert
  • HVertBuff
  • HVerts
  • Hcen
  • HcenArr
  • HcenArrBuff
  • HcenArrOpt
  • HcenStep
  • HcenStepNone
  • HcenStepOpt
  • HexMem
  • Player
  • PlayerA
  • PlayerB
  • PlayerC
  • PlayerD
  • SqCoord
  • SqGrid
  • Sqcen
  • SqcenArr
  • SqcenArrOpt
  • SqcenStepNone
  • SqcenStepOpt
  • Sqside
  • Sqvert
  • TCoord
  • TGrid
  • TileArrOpt
  • package strat
    Definition Classes
    ostrat

package prid

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

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. prid
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. implicit class GridSlateScaleExtension[T] extends AnyRef
  2. case class HCAndStep(r1: Int, c1: Int, step: HcenStep) extends Product with Serializable
  3. trait HCoord extends TCoord

    A coordinate with in a Hex grid.

    A coordinate with in a Hex grid. It may be a Hex tile centre Hcen, a HexSide HSide or Hex tile vertice HVert.

  4. case class HCoordLineSeg(r1: Int, c1: Int, r2: Int, c2: Int) extends Product with Serializable

    A 2d line upon a HexGrid defined by its start and end HGrid HCoords.

  5. trait HCoordReg extends HCoord
  6. trait HGrid extends TGrid

    A grid of Hexs.

    A grid of Hexs. The grid may be a regular rectangle of hexs or an irregular grid with variable length rows.

  7. case class HGridIrr(unsafeArray: Array[Int]) extends HGrid with Product with Serializable
  8. class HGridReg extends HGrid
  9. case class HPlayer(value: Player, hc: Hcen) extends HexMem[Player] with Product with Serializable
  10. class HSide extends HCoordReg

    A Hex side coordinate in a Hex Grid.

    A Hex side coordinate in a Hex Grid. So Side 1 on its primary Hex tile goes from Vert 6 to 1 while it is Side 4 on its secondary Hex tile and goes from Vertex 4 to vertex 3 So Side 2 on its primary Hex tile goes from Vert 1 to 2 while it is Side 5 on its secondary Hex tile and goes from Vertex 5 to vertex 4 So Side 3 on its primary Hex tile goes from Vert 2 to 3 while it is Side 4 on its secondary Hex tile and goes from Vertex 6 to vertex 4

  11. final class HVert extends AnyVal with HCoord with ProdInt2
  12. final class HVertBuff extends AnyVal with BuffProdInt2[HVert, HVerts]
  13. final class HVerts extends AnyVal with ArrProdInt2[HVert]

    An array[Int] based collection for HVert.

  14. class Hcen extends HCoordReg

    A Hex tile centre HexGrid coordinate.

  15. class HcenArr[A <: AnyRef] extends AnyRef

    An array of hex tile or hex centre data.

  16. class HcenArrBuff[A <: AnyRef] extends AnyRef
  17. final class HcenArrOpt[A <: AnyRef] extends AnyVal

    An immutable Arr of Opt Tile data for a specific hex tile grid HGrid.

    An immutable Arr of Opt Tile data for a specific hex tile grid HGrid. This is specialised for OptRef[A]. The tileGrid can map the Hcen coordinate of the tile to the index of the Arr. Hence most methods take an implicit HGrid hex grid parameter.

  18. sealed trait HcenStep extends HcenStepOpt

    A Hex tile Step can take 6 values

  19. sealed trait HcenStepOpt extends AnyRef

    An optional hex tile step.

    An optional hex tile step. Represents the relative move from a hex tile to one of its six neighbours or the non move value. It can be one of the 6 HCStep values or the HCStepNone value.

  20. trait HexMem[A] extends AnyRef
  21. case class Player(char: Char, colour: Colour) extends Product with Serializable

    A Player has a very simple token with a letter and colour for recognition.

  22. trait SqCoord extends TCoord
  23. final class SqGrid extends TGrid
  24. case class Sqcen(r: Int, c: Int) extends SqCoord with Product with Serializable

    A Square tile centre square grid SqGrid coordinate.

  25. class SqcenArr[A <: AnyRef] extends AnyRef

    An array of hex tile or hex centre data.

  26. final class SqcenArrOpt[A <: AnyRef] extends AnyVal
  27. sealed trait SqcenStepOpt extends AnyRef

    An optional hex tile step.

    An optional hex tile step. Represents the relative move from a hex tile to one of its six neighbours or the non move value. It can be one of the 6 HCStep values or the HCStepNone value.

  28. class Sqside extends SqCoord

    A Square tile side square grid SqGrid coordinate.

  29. class Sqvert extends SqCoord

    A Square tile vertex square grid SqGrid coordinate.

  30. trait TCoord extends Any

    A coordinate in a TileGrid.

    A coordinate in a TileGrid. Not sure how useful this trait is.

  31. trait TGrid extends AnyRef

    A TileGrid is a description of an abstract TileGrid.

    A TileGrid is a description of an abstract TileGrid. It contains no data for the elements of any particular TileGrid. The Data for TileGrids is stored in flat arrays. The TileGrid gives the dimensions of a tileGrid. It has methods to interpret the data in flat Arrays created for that TileGrid specification. It has methods to map the elements of an Array to the the 2 dimensional geometry of the Tile Grid. On its own a TileGrid can produce the outlines of the grid, coordinates vector positions and other pure mathematical data. Combined with a simple function it can for example produce a Chess board. Combined with a 64 length array it can produce a Chess board position. For anything but the most simple games, you will probably want multiple arrays to describe the game state. The terrain for example may remain invariant, so the terrain data does not need to be reproduced with every move.

    A TileGrid is for use cases where the proportions of the Grid predetermine the proportions of the visual representation, as opposed to a use case where the proportions of the enclosing space are a factor in determining the proportions of the grid. For example the various grid layouts of the Stars on the American flag.

  32. trait TileArrOpt[A] extends Any

Value Members

  1. val hcStepSomes: Arr[HcenStep]
  2. val hcSteps: Arr[HcenStepOpt]
  3. def holding: String
  4. case object HCStepDL extends HcenStep with Product with Serializable
  5. case object HCStepDR extends HcenStep with Product with Serializable
  6. case object HCStepLt extends HcenStep with Product with Serializable
  7. case object HCStepRt extends HcenStep with Product with Serializable
  8. case object HCStepUL extends HcenStep with Product with Serializable
  9. case object HCStepUR extends HcenStep with Product with Serializable
  10. object HCoord
  11. object HCoordLineSeg extends Serializable
  12. object HGrid
  13. object HGridReg

    Companion object for the HGridReg class.

    Companion object for the HGridReg class. Contains an applr method that corrects the r and Y minimum and maximum values.

  14. object HSide

    Companion object for the HSide class, provides an apply factory method that throws an exception for an invalid Hex side coordinate.

  15. object HVert
  16. object HVerts extends ProductI2sCompanion[HVert, HVerts]
  17. object Hcen
  18. object HcenArr

    Companion object for HcenArr, contains an apply factory method.

  19. object HcenArrBuff
  20. case object HcenStepNone extends HcenStepOpt with Product with Serializable
  21. object Player extends Serializable
  22. object PlayerA extends Player
  23. object PlayerB extends Player
  24. object PlayerC extends Player
  25. object PlayerD extends Player
  26. object SqGrid

    Companion object for the HGridReg class.

    Companion object for the HGridReg class. Contains an applr method that corrects the r and Y minimum and maximum values.

  27. object SqcenArr
  28. case object SqcenStepNone extends SqcenStepOpt with Product with Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped