Skip to content

pgdr/constellation-perseus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

constellation-perseus Build Status

Mark I Colonial Viper, equipped with kinetic energy weapons and conventional missiles

Contract-driven Game development

We are using icontract for contract driven development, where we can specify class invariants with icontract.invariant:

import icontract

@icontract.invariant(lambda self: 0 <= self.damage <= 1))
@dataclass(eq=False)
class Ship(GameObject):
    owner: Player
    damage: float = 1.0

pre-conditions with icontract.require:

@icontract.require(lambda obj: isinstance(obj, GameObject))
@icontract.require(lambda pos: isinstance(pos, Position))
def assign_position(self, obj: GameObject, pos: Position) -> Position:
    pass

and post-conditions with icontract.ensure:

@icontract.ensure(lambda result: isinstance(result, Position))
def add(self, obj: GameObject, pos: Position = None, ...):
    ...

About

Mark I Colonial Viper, equipped with kinetic energy weapons and conventional missiles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages