Tower of hanoi 3.1
Java
Publicado el 23 de Abril del 2020 por Mijail
2.004 visualizaciones desde el 23 de Abril del 2020
Juego de las torres de hanoi.
package prueba3.pkg1;
import java.awt.Color;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
/**
*
* @author msigl
*/
public class Logic2 {
public int Entropy(int X, int m1, int m2, int m3,int x1, int x2, int x3, int y1, int y2, int y3){
if((0 == m1)&&(0 == m2)&&(0 == m3)){
if((X ==x1)){return 3;
}else{ if((X - 25==x2)){return 2;
}else{ if((X- 50 == x3)){return 1;
}}}}
if((1 == m1)||(1 == m2)||(1 == m3)){
if(1==m1){return 4;
}else{ if(1==m2){return 5;
}else{ if(1==m3){return 6;
}}}}return 0;
}
public int Neguentropia(int X,int x1, int x2, int x3, int y1, int y2, int y3){
if((((X !=x1)&&(400!=y1))||((X-25 !=x2)&&(400!=y2))||((X-50 !=x3)&&(400!=y3)))){return 400;
}else{ if((((X !=x1)&&(340!=y1))||((X-25 !=x2)&&(340!=y2)))){return 340;
}else{ if((280!=y1)&&(X != x1)){return 280;
}}}return 0;
}
}
public class Prueba31 {
private int X; private int Y;
private String name;
public class Pestañas extends JFrame{
public Pestañas(){
super("new windows");
setLayout(null);
setSize(1920,1080);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public class Botones extends JButton {
public Botones(int X,int Y, String name ){
super(name);
setLayout(null);
setBounds(X,Y,100,30);
setVisible(true);
}
}
public class BRicks extends JButton {
int M;
public BRicks(int X,int Y,int a, int l){
setBounds(X,Y,a,l);
setVisible(true);
M = 0;
}
public void select(){
M = M + 1;
}
public int getM(){
return M;
}
public void setLo(int x, int y){
setLocation(x,y);
M = M - 1;
}}
/**
* {}
*/
public static void main(String[] args) {
int YB1 = 490;
Prueba31 pr = new Prueba31();
Logic2 mind = new Logic2();
Pestañas W1 = pr.new Pestañas();
Botones B1 = pr.new Botones(650,YB1,"torre 1");
Botones B2 = pr.new Botones(900,YB1,"torre 2");
Botones B3 = pr.new Botones(1150,YB1,"torre 3");
BRicks BL1 = pr.new BRicks(650,280,100,60);
BRicks BL2 = pr.new BRicks(625,340,150,60);
BRicks BL3 = pr.new BRicks(600,400,200,60);
BL1.setBackground(Color.red);BL2.setBackground(Color.green);BL3.setBackground(Color.blue);
W1.setVisible(true);
W1.add(B1); W1.add(B2);W1.add(B3);W1.add(BL1); W1.add(BL2);W1.add(BL3);
ActionListener out1;
out1 = (ActionEvent a) -> {
int X = 650;
int m1 = BL1.getM(); int m2 = BL2.getM();int m3 = BL3.getM();
int x1 = BL1.getX(); int x2 = BL2.getX();int x3 = BL3.getX();
int y1 = BL1.getY(); int y2 = BL2.getY();int y3 = BL3.getY();
int mi = mind.Entropy(X, m1, m2, m3, x1, x2, x3, y1, y2, y3);
int yi = mind.Neguentropia(X, x1, x2, x3, y1, y2, y3);
switch(mi){
case 1: BL3.select();
break;
case 2: BL2.select();
break;
case 3: BL1.select();
break;
case 4: BL1.setLo(X, yi);
break;
case 5: BL2.setLo(X-25, yi);
break;
case 6: BL3.setLo(X-50, yi);
break;
}
};
ActionListener out2;
out2 = new ActionListener(){
public void actionPerformed(ActionEvent a){
int X = 900;
int m1 = BL1.getM(); int m2 = BL2.getM();int m3 = BL3.getM();
int x1 = BL1.getX(); int x2 = BL2.getX();int x3 = BL3.getX();
int y1 = BL1.getY(); int y2 = BL2.getY();int y3 = BL3.getY();
int mi = mind.Entropy(X, m1, m2, m3, x1, x2, x3, y1, y2, y3);
int yi = mind.Neguentropia(X, x1, x2, x3, y1, y2, y3);
switch(mi){
case 1: BL3.select();
break;
case 2: BL2.select();
break;
case 3: BL1.select();
break;
case 4: BL1.setLo(X, yi);
break;
case 5: BL2.setLo(X-25, yi);
break;
case 6: BL3.setLo(X-50, yi);
break;
}
}};
ActionListener out3;
out3 = new ActionListener(){
public void actionPerformed(ActionEvent a){
int X = 1150;
int m1 = BL1.getM(); int m2 = BL2.getM();int m3 = BL3.getM();
int x1 = BL1.getX(); int x2 = BL2.getX();int x3 = BL3.getX();
int y1 = BL1.getY(); int y2 = BL2.getY();int y3 = BL3.getY();
int mi =mind.Entropy(X, m1, m2, m3, x1, x2, x3, y1, y2, y3);
int yi = mind.Neguentropia(X, x1, x2, x3, y1, y2, y3);
switch(mi){
case 1: BL3.select();
break;
case 2: BL2.select();
break;
case 3: BL1.select();
break;
case 4: BL1.setLo(X, yi);
break;
case 5: BL2.setLo(X-25, yi);
break;
case 6: BL3.setLo(X-50, yi);
break;
}
}};
B1.addActionListener(out1);
B2.addActionListener(out2);
B3.addActionListener(out3);
}
}
No hay comentarios