Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/04/2013, 04:53
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Que tipo de programacion seria esta ?

"... que tipo de programacion se haria esto ( con php, javscript ? )..."

Te refieres a lenguaje, y en principio en cualquier lengueje puedes hacerlo. Si dispones de acceso a base de datos mejor, pero no es imprescindible. La idea consiste en implementar un mapa de operaciones a las que se asigna la tecla de lanzamiento, de forma que cuando se detecta la pulsacion de una tecla se busca en el mapa de operaciones y se ejecuta lo necesario.

Las operaciones siempre seran las mismas (p.ej. para sumar siempre tienes una funcion que espera como argumentos los dos sumandos y retorna el resultado de la suma), lño unico que cambia es el mapa de teclas, por eso puedes guardarlo donde quieras (si tienes una bdd mejor).

P.ej. en javascript harias lo siguiente:

Código:
<script type="text/javascript">

//mapa de operaciones
var keymap = new Array("S", "R");
var oprmap = new Array(sumar, restar);
var dscmap = new Array("+", "-");

//manejador de evento keyup
document.onkeyup = function(e) {
	var keycode= (window.event) ? event.keyCode : e.keyCode;//compatible navegadores
	var caracter = String.fromCharCode(keycode);//traducimos a caracter
	
	var n1 = 5;
	var n2 = 3;
	
	for(var q = 0; q < keymap.length; q++) {
		if(keymap[q] == caracter) {
			alert(n1 + " " + dscmap[q] + " " + n2 + " = " + oprmap[q](n1, n2));
			break;
		}
	}
}

function sumar(x,y)	{return x+y;}
function restar(x, y) {return x-y;}
</script>
Los valores a operar n1 y n2 puedes estar en cualquier sitio, en este ejemplo los dejo harcoded para simplificar; de la misma forma el resultado puede redirigirse a cualquier otro sitio.

Las listas 'oprmap' y 'dscmap' siempre seran iguales (en este ejemplo, puedes maquetarlas de otra forma pero no van a variar); lo unico que puede cambiar es el mapa de caracteres 'keymap' que es el que puedes cargar de una base de datos. Con una sola pagina puedes reasignar los caracteres pero solo los guardará hasta la siguiente recarga de la pagina. Si dispones de php (o otro lenguaje servidor) podras guardar los cambios de caracteres para cada usuario y solo tendras que maquetar la lista 'keymap' con los valores seleccionados por cada usuario.

Siguiendo con el ejemplo una implementacion de reasignacion simple para javascript y una sola pagina consiste en solicitar el caracter para cada operacion y guardarlo en el mapa 'keymap'

Código:
function reasigna() {
	var q, nc;
	for(q = 0; q < dscmap.length; q++) {
		if((nc = prompt("Caracter para la operacion " + dscmap[q] + ":", keymap[q]))) {
			keymap[q] = nc.toUpperCase();
		}
	}
}
En caso de que dispongas de php (u otro lenguaje servidor) puedes enviarle este nuevo caracter para que lo guarde, de forma que en la siguiente carga el php maquetará el mapa 'keymap' tomando los nuevos datos que se guardaron.

Saludos
vosk