Решил добавить страницу результатов к игре (скучно никак красный экранчик не дойдёт от границы с 4 дек.). Как формульно увязать три параметра результата для качественной оценки игрока в сеансе игры?
Живучесть это число полных поездок танчика за игру - характеризует тормознутость игрока при бомбометании.
Например, можно вычитать живучесть(она же тормознутость)) в процентах , из общего кол-ва очков. Напр. 100 очков, живучесть 3.
Общ равно 97. Если живучесть 100% - игрок полный лузер, 0 очков)))
Пока вижу два параметра оценивания - отношение “в цель” к “расход бомб” (идеал 1, дно около 0) и отношение “расход бомб” к “живучесть цели” (скорость бомбометания - большая плохо (> 1), малая тоже плохо (<1)).
/**
* XPT2046 touch screen buttons.
*
* It divides the touch screen into COLUMNS * LINES areas (4*2=8 buttons) and creates virtual buttons.
* if the touch screen area is pressed and prints on Serial Port 1 the X,Y coordinates.
*
* Copyright (c) 02 Dec 2015 by Vassilis Serasidis
* Home: http://www.serasidis.gr
* email: avrsite@yahoo.gr
*
* The sketch example has been created for using it with STM32Duino (http://www.stm32duino.com)
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#if defined(_VARIANT_ARDUINO_STM32_)|| defined(_BOARD_GENERIC_STM32F103C_)
/*
#define TFT_CS PB12
#define TFT_DC PB11
#define TFT_RST PB10
// SPI2
#define TFT_MOSI PB15
#define TFT_MISO PB14
#define TFT_SCLK PB13
*/
// тачскрин на SPI1
#define TFT_CS PA4 // T_CS
#define TFT_DC PB11 // не подключен
#define TFT_RST PB10 // не подключен
// SPI1
#define TFT_MOSI PA7 // T_DIN (MOSI)
#define TFT_MISO PA6 // T_DO (MISO)
#define TFT_SCLK PA5 // T_CLK
// T_IRQ не подключен
#endif
#include "XPT2046_touch.h"
#include <SPI.h>;
#define CS_PIN PA4 // Chip Select pin
#define LINES 2
#define COLUMNS 4
SPIClass mySPI(1); //Create an SPI instance on SPI1 port.
XPT2046_touch ts(CS_PIN, mySPI); // Chip Select pin, SPI port
uint16_t xy[2];
void setup() {
Serial.begin(115200);
delay(5000);
Serial.println("-------------------------------------------------");
Serial.println("XPT2046 touch screen buttons");
Serial.println("Copyright (c) 02 Dec 2015 by Vassilis Serasidis");
Serial.println("Home: http://www.serasidis.gr");
Serial.println("-------------------------------------------------");
ts.begin(); //Begin TouchScreen.
ts.setButtonsNumber(COLUMNS, LINES); //Divide the Touch screen area into 4 columns and 2 lines and make them act as buttons.
}
void loop() {
if(ts.read_XY(xy)){ //If the touch screen is preesed, read the X,Y coordinates and print them on Serial port.
uint8_t buttonNumber = ts.getButtonNumber();
if(buttonNumber > 0){
Serial.print("Button: ");
Serial.println(buttonNumber);
Serial.print("X: ");
Serial.println(xy[0]); //Print X value
Serial.print("Y: ");
Serial.println(xy[1]); //Print Y value
Serial.println();
}
delay(500);
}
}
Повысил результативность. Никак не привыкну, что нет округления, а есть отбрасывание до целого… но оказывается всё же есть округление до целого из float и тогда:
tft.println(round(OZENKA));