diff --git a/README.md b/README.md index a9863ca..08b24b6 100755 --- a/README.md +++ b/README.md @@ -1,48 +1,44 @@ # Five In A Row -Set of applications targetting Atmel/Microchip [ATMega328P](https://www.microchip.com/en-us/product/atmega328p), implementing shooting games. +Set of two applications targetting Atmel/Microchip [ATMega328P](https://www.microchip.com/en-us/product/atmega328p), implementing shooting game. -Using a _gun_, users tries to hit _targets_ managed by a _target host_. +Using a *gun*, users tries to hit *targets*. The game is up to four players: yellow, green, red and blue. There are 5 targets. ### Game mode -Various games will be implemented. - -#### Simple shooter - -Each player shoot until the five targets are hit. Number of shoots is counted on the gun. Successful hits are counted by the target host and sent to the remote application. +#### Biathlon like +Each player turn gives 5 shots. Player tries to hit each target. Total number of shoots is counted, as well as successfull hits. ## Functional details - ### target -The **target host** application manages player points and turns. It communicates with an Android application implemented on top of [Bluetooth Electronics](https://www.keuwl.com/apps/bluetoothelectronics/) application. It manages the game logic and player points. Various games and modes can be implemented for the host. Each of these could have a specific remote UI. +The **target** application manages player points and turns. It communicates with an Android application implemented on top of [Bluetooth Electronics](https://www.keuwl.com/apps/bluetoothelectronics/) application. It manages the game logic and player points. -### Gun +### Gun The **Gun** application manages the gun. Using two buttons, it allows: -| Press | Button 1 | Button 2 | -| ----- | -------- | ------------------------------ | -| short | shoot | reset shoot count | -| long | N/A | continuous laser (calibration) | +| Press | Button 1 | Button 2 | +|-------|------------------|--------------------------------| +| short | shoot | Begin new round (give 5 shots) | +| long | power off | continuous laser (calibration) | Gun application manages following outputs: - -- Laser -- vibrator -- 128x32 I²C display +* Laser +* vibrator +* 128x32 I²C display ## Architecture details Some parts of the projet, implementing logic, can be used on both native and target platform. All that code is represented in the "domain" package below. -Current target hardware for all applications is the [ATMega328p](https://www.microchip.com/en-us/product/atmega328p) chip from Atmel/Microchip. +Both **target** and **Gun** application are run both native and cross environment. The current +target hardware for both is the [ATMega328p](https://www.microchip.com/en-us/product/atmega328p) chip from Atmel/Microchip. To facilitate testing and extension, user interface (Gui) and hardware abstraction (HAL) are provided using interfaces. Implementation exists for native and cross (i.e. testing) environments. -Note: The _BTEGui_ implementation can be used in native environment. Based on plain string exchange, if it may be difficult to interpret. +Note: The *BTEGui* implementation can be used in native environment. Based on plain string exchange, if it may be difficult to interpret. ![Architecture overview](architecture.png)