Código de Java - Piezas de cubos de Rubik

sin imagen de perfil

Piezas de cubos de Rubikgráfica de visualizaciones


Java

Actualizado el 18 de Diciembre del 2016 por Roque (Publicado el 9 de Diciembre del 2016)
16.050 visualizaciones desde el 9 de Diciembre del 2016
Este código sirve para proporcionar información sobre las piezas del cubo de Rubik que se indique.

Para entender el código o el resultado del código es necesario entender algunos conceptos básicos sobre los cubos de Rubik:
Pieza: Bloque indivisible por los giros permitidos que a través de dichos movimientos puede cambiar su posición respecto al núcleo del puzle.
Tipo de pieza: Son piezas del mismo tipo aquellas que pueden cambiar posiciones entre sí (a través de los giros permitidos). Sin importar la orientación con que puedan quedar y sin importar si son o no dependientes entre sí. Las más comunes y las que están el cubo clásico (3x3x3) son esquinas, aristas y centros.

De la versión 3.0 en adelante se necesita la siguiente información para completar el programa correctamente en algunos casos de los cuboides (véase mejor explicado en la descripción de la versión o en el propio programa):


*
Al ser un cubo cuyas una o varias dimensiones son igual a 1, es difícil interpretar qué tipo de pieza es cada una.
Se puede llevar a cabo la clasificación siguiendo dos criterios diferentes: comparándolo físicamente con un 3x3x3 (que al ser el cubo clásico es el que se toma como referencia)(1) o comparando el comportamiento de las piezas (si la pieza es el eje de la capa en que se encuentra, el número de orientaciones de la pieza, etcétera) con el comportamiento de las de un 3x3x3(2).

1
Esquina: es realmente el vértice o el extremo del puzle.
Arista: es tangente al menos a dos piezas (de forma que no es un extremo) y no está en el núcleo físico del puzle.
Centro: está en el núcleo físico del puzle.

2
Esquina: Según este criterio, este tipo de cuboides no tienen esquinas en ningún caso.
Arista: Tiene dos orientaciones** y colocado el puzle horizontalmente, aun sin tener en cuenta arriba y abajo, no roza piezas por todos los lados
Centro: supone el eje de una capa (la capa gira alrededor de él por lo que al finalizar el giro su posición respecto al núcleo no varía). Tiene 4 orientaciones.
Núcleo***: es el núcleo físico del cubo por lo que siempre permanecerá inmóvil. Si son varios depende de las dimensiones del puzle: si es lineal se consideran centros; si es plano son aquellos que puesto el puzle horizontalmente, están yuxtapuestos a piezas por todos lados, (excepto por arriba y por abajo). Tienen 2 o 4 orientaciones, dependiendo de si son lineales o planos, respectivamente.

**: Cuando se habla de orientaciones no implica que tenga ese número de pegatinas.
***: Hablamos de núcleo porque en algunos de estos cuboides hay piezas a la vista que se comportan como el núcleo de un 3x3x3. Véase: 3x3x1.

Requerimientos

Es un código bastante simple de Java; no creo que se necesite una versión muy alta para su correcta ejecución.
Por curiosidad aunque no es ningún requerimiento añadir que fue diseñado en Eclipse Luna.

1.0

Actualizado el 29 de Diciembre del 2016 (Publicado el 9 de Diciembre del 2016)gráfica de visualizaciones de la versión: 1.0
615 visualizaciones desde el 9 de Diciembre del 2016

2.0

Actualizado el 5 de Enero del 2017 (Publicado el 15 de Diciembre del 2016)gráfica de visualizaciones de la versión: 2.0
466 visualizaciones desde el 15 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1. En esta versión se ha agregado mucha más información sobre las piezas:

1.1 Piezas
- Número de piezas en total
- Número de esquinas
- Número de aristas
- Número de centros
1.2 Tipos de piezas
- Número de tipos de piezas en total
- Número de tipos de esquinas
- Número de tipos de aristas
- Número de tipos de centros

2. Además se ha añadido un personalizado sistema de detección de números inválidos como el cero y números negativos; también si escribes 1 se da una explicación especial.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.Scanner;
 
public class InfoCubo {
	public static void main (String[] args) {
 
		Scanner escáner = new Scanner(System.in);
 
		System.out.println("Bienvenido a InfoCubo, aquí te proporcionaremos informcaión sobre las piezas del puzle (cúbico) que usted quiera.\nPara empezar díganos cuántas piezas por fila tiene su cubo.\n");
		int p = escáner.nextInt();
 
		if (p > 1) {
 
			System.out.println("Cubo: " + p + "x" + p + "x" + p + "\n\nPIEZAS\nNúmero de piezas en total: " + (p*p*p - (p-2)*(p-2)*(p-2)) );
			System.out.println("Número de esquinas: 8");
			System.out.println("Número de aristas: " + 12*(p-2));
			System.out.println("Número de centros: " + 6*(p-2)*(p-2));
 
			int total = 0;
			int centros = 0;
 
			for (int i = 1; i <= (p+1)/2; i++) {
				total = total + i;
			}
 
			for (int i = 1; i <= (p-1)/2; i++) {
				centros = centros + i;
			}
 
			System.out.println("\nTIPOS DE PIEZAS\nNúmero de tipos de piezas en total: " + total);
			System.out.println("Número de tipos de esquinas: 1");
			System.out.println("Número de tipos de aristas: " + (((p+1)/2)-1));
			System.out.println("Número de tipos de centros: " + centros);
 
		} else{
			if (p == 1) {
				System.out.println("Un 1x1x1 solo tiene una pieza, que al carecer de forma de esquina, centro o arista, se podría calificar como núcleo");
			} else{
				System.out.println("Número carente de sentido en este contexto, prueba de nuevo");
			}
		}
 
 
		escáner.close();
	}
}



Comentarios sobre la versión: 2.0 (0)


No hay comentarios
 

Comentar la versión: 2.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

2.1

Actualizado el 9 de Enero del 2017 (Publicado el 15 de Diciembre del 2016)gráfica de visualizaciones de la versión: 2.1
683 visualizaciones desde el 15 de Diciembre del 2016

3.0
estrellaestrellaestrellaestrellaestrella(1)

Actualizado el 20 de Enero del 2017 (Publicado el 18 de Diciembre del 2016)gráfica de visualizaciones de la versión: 3.0
14.287 visualizaciones desde el 18 de Diciembre del 2016
http://lwp-l.com/s3802