65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
|
|
constexpr int NAME_LENGHT = 8;
|
|
|
|
/*
|
|
Un array, "characterList", contiene la lista de caracteres
|
|
Un segundo array, "characterIndex", contiene el indice a "characterList" de cada una de las letras que conforman el nombre
|
|
"pos" es la posición de "characterIndex" que se está modificando
|
|
Izquierda o derecha modifican "pos", arriba o abajo modifican el índice de "characterIndex[pos]"
|
|
Pulsar cualquier botón, mueve "pos" a la derecha. Al pulsar el botón en la ´´ultima posición se finaliza la introducción de nombres
|
|
*/
|
|
|
|
// Clase EnterName
|
|
class EnterName
|
|
{
|
|
private:
|
|
std::string character_list_; // Lista de todos los caracteres permitidos
|
|
std::string name_; // Nombre introducido
|
|
int position_; // Posición a editar del nombre
|
|
int num_characters_; // Cantidad de caracteres de la lista de caracteres
|
|
int character_index_[NAME_LENGHT]; // Indice de la lista para cada uno de los caracteres que forman el nombre
|
|
bool position_has_been_used_[NAME_LENGHT]; // Indica si en esa posición se ha puesto ya alguna letra. Se utiliza para replicar la letra anterior la primera vez
|
|
|
|
// Actualiza el nombre a partir de la lista de índices
|
|
void updateName();
|
|
|
|
// Actualiza la variable
|
|
void updateCharacterIndex();
|
|
|
|
// Encuentra el indice de un caracter en "characterList"
|
|
int findIndex(char character);
|
|
|
|
// Comprueba la posición y copia el caracter si es necesario
|
|
void checkIfPositionHasBeenUsed();
|
|
|
|
public:
|
|
// Constructor
|
|
EnterName();
|
|
|
|
// Destructor
|
|
~EnterName() = default;
|
|
|
|
// Inicializa el objeto
|
|
void init();
|
|
|
|
// Incrementa la posición
|
|
void incPosition();
|
|
|
|
// Decrementa la posición
|
|
void decPosition();
|
|
|
|
// Incrementa el índice
|
|
void incIndex();
|
|
|
|
// Decrementa el índice
|
|
void decIndex();
|
|
|
|
// Obtiene el nombre
|
|
std::string getName() const;
|
|
|
|
// Obtiene la posición que se está editando
|
|
int getPosition() const;
|
|
}; |