Formatted with Google Java Formatter

This commit is contained in:
github-actions
2020-11-22 18:07:16 +00:00
parent 52ab5fbc3e
commit d63f470e7a

View File

@ -1,16 +1,16 @@
import java.awt.*;
import java.awt.event.*;
import java.util.*; import java.util.*;
import javax.swing.*; import javax.swing.*;
import javax.swing.Timer; import javax.swing.Timer;
import java.awt.*;
import java.awt.event.*;
public class Hanoi extends JFrame{ public class Hanoi extends JFrame {
public static int ONE_SECOND = 1000; public static int ONE_SECOND = 1000;
int number_of_disks=0; int number_of_disks = 0;
int game_counter = 0; int game_counter = 0;
int i=0; int i = 0;
/* GUI COMPONENTS */ /* GUI COMPONENTS */
public JButton move_button = new JButton(); public JButton move_button = new JButton();
@ -18,7 +18,6 @@ public class Hanoi extends JFrame{
public JButton replay_button = new JButton(); public JButton replay_button = new JButton();
public JButton auto_button = new JButton(); public JButton auto_button = new JButton();
/* BACKEND COMPONENTS */ /* BACKEND COMPONENTS */
public ArrayList<String> movements = new ArrayList<String>(); public ArrayList<String> movements = new ArrayList<String>();
public StringBuilder stringBuilder = new StringBuilder(); public StringBuilder stringBuilder = new StringBuilder();
@ -28,33 +27,32 @@ public class Hanoi extends JFrame{
public ArrayList<Integer> Stack3 = new ArrayList<Integer>(); public ArrayList<Integer> Stack3 = new ArrayList<Integer>();
public void updateStacks() { public void updateStacks() {
if(game_counter!=movements.size()) { if (game_counter != movements.size()) {
String temp = movements.get(game_counter); String temp = movements.get(game_counter);
System.out.println(temp); System.out.println(temp);
if(temp.charAt(1)=='A') { if (temp.charAt(1) == 'A') {
if(temp.charAt(2)=='B') { if (temp.charAt(2) == 'B') {
int x = Stack1.get(Stack1.size()-1); int x = Stack1.get(Stack1.size() - 1);
Stack1.remove(Stack1.size()-1); Stack1.remove(Stack1.size() - 1);
Stack2.add(x); Stack2.add(x);
} }
} }
if(temp.charAt(1)=='C') { if (temp.charAt(1) == 'C') {
if(temp.charAt(2)=='B') { if (temp.charAt(2) == 'B') {
int x = Stack3.get(Stack3.size()-1); int x = Stack3.get(Stack3.size() - 1);
Stack3.remove(Stack3.size()-1); Stack3.remove(Stack3.size() - 1);
Stack2.add(x); Stack2.add(x);
} }
} }
if(temp.charAt(1)=='B') { if (temp.charAt(1) == 'B') {
if(temp.charAt(2)=='C') { if (temp.charAt(2) == 'C') {
int x = Stack2.get(Stack2.size()-1); int x = Stack2.get(Stack2.size() - 1);
Stack2.remove(Stack2.size()-1); Stack2.remove(Stack2.size() - 1);
Stack3.add(x); Stack3.add(x);
} } else if (temp.charAt(2) == 'A') {
else if(temp.charAt(2)=='A') { int x = Stack2.get(Stack2.size() - 1);
int x = Stack2.get(Stack2.size()-1); Stack2.remove(Stack2.size() - 1);
Stack2.remove(Stack2.size()-1);
Stack1.add(x); Stack1.add(x);
} }
} }
@ -67,36 +65,36 @@ public class Hanoi extends JFrame{
public void paint(Graphics canvas) { public void paint(Graphics canvas) {
super.paint(canvas); super.paint(canvas);
//Drawing pedestels // Drawing pedestels
for(int i=0;i<3;i++) { for (int i = 0; i < 3; i++) {
canvas.drawRect(30+i*230,670,200,20); canvas.drawRect(30 + i * 230, 670, 200, 20);
canvas.setColor(new Color(76,174,227)); //Blue Accent canvas.setColor(new Color(76, 174, 227)); // Blue Accent
canvas.fillRect(30+i*230,670,200,20); canvas.fillRect(30 + i * 230, 670, 200, 20);
canvas.fillRect(130+i*230-2,670-170,4,170); canvas.fillRect(130 + i * 230 - 2, 670 - 170, 4, 170);
canvas.setColor(new Color(150,0,0)); //Arseny canvas.setColor(new Color(150, 0, 0)); // Arseny
canvas.fillRect(130+i*230-2,670-170,4,170); canvas.fillRect(130 + i * 230 - 2, 670 - 170, 4, 170);
} }
//Disks in stack1 // Disks in stack1
for(int i=1;i<=Stack1.size();i++) { for (int i = 1; i <= Stack1.size(); i++) {
canvas.drawRect(130-Stack1.get(i-1)*10,670-i*12,Stack1.get(i-1)*20,10); canvas.drawRect(130 - Stack1.get(i - 1) * 10, 670 - i * 12, Stack1.get(i - 1) * 20, 10);
canvas.setColor(new Color(64,26,0)); //Brown Wolfers canvas.setColor(new Color(64, 26, 0)); // Brown Wolfers
canvas.fillRect(130-Stack1.get(i-1)*10,670-i*12,Stack1.get(i-1)*20,10); canvas.fillRect(130 - Stack1.get(i - 1) * 10, 670 - i * 12, Stack1.get(i - 1) * 20, 10);
} }
//Disks in stack2 // Disks in stack2
for(int i=1;i<=Stack2.size();i++) { for (int i = 1; i <= Stack2.size(); i++) {
canvas.drawRect(360-Stack2.get(i-1)*10,670-i*12,Stack2.get(i-1)*20,10); canvas.drawRect(360 - Stack2.get(i - 1) * 10, 670 - i * 12, Stack2.get(i - 1) * 20, 10);
canvas.setColor(new Color(64,26,0)); //Brown Wolfers canvas.setColor(new Color(64, 26, 0)); // Brown Wolfers
canvas.fillRect(360-Stack2.get(i-1)*10,670-i*12,Stack2.get(i-1)*20,10); canvas.fillRect(360 - Stack2.get(i - 1) * 10, 670 - i * 12, Stack2.get(i - 1) * 20, 10);
} }
//Disks in stack3 // Disks in stack3
for(int i=1;i<=Stack3.size();i++) { for (int i = 1; i <= Stack3.size(); i++) {
canvas.drawRect(590-Stack3.get(i-1)*10,670-i*12,Stack3.get(i-1)*20,10); canvas.drawRect(590 - Stack3.get(i - 1) * 10, 670 - i * 12, Stack3.get(i - 1) * 20, 10);
canvas.setColor(new Color(64,26,0)); //Brown Wolfers canvas.setColor(new Color(64, 26, 0)); // Brown Wolfers
canvas.fillRect(590-Stack3.get(i-1)*10,670-i*12,Stack3.get(i-1)*20,10); canvas.fillRect(590 - Stack3.get(i - 1) * 10, 670 - i * 12, Stack3.get(i - 1) * 20, 10);
} }
} }
@ -104,16 +102,16 @@ public class Hanoi extends JFrame{
public void initialize() { public void initialize() {
move_button.setIcon(new ImageIcon("../Resources/rsz_move.png")); move_button.setIcon(new ImageIcon("../Resources/rsz_move.png"));
move_button.setBounds(130,0,50,50); move_button.setBounds(130, 0, 50, 50);
auto_button.setIcon(new ImageIcon("../Resources/rsz_loop.png")); auto_button.setIcon(new ImageIcon("../Resources/rsz_loop.png"));
auto_button.setBounds(260,0,50,50); auto_button.setBounds(260, 0, 50, 50);
replay_button.setIcon(new ImageIcon("../Resources/rsz_replay.jpg")); replay_button.setIcon(new ImageIcon("../Resources/rsz_replay.jpg"));
replay_button.setBounds(390,0,50,50); replay_button.setBounds(390, 0, 50, 50);
exit_button.setIcon(new ImageIcon("../Resources/rsz_exit.png")); exit_button.setIcon(new ImageIcon("../Resources/rsz_exit.png"));
exit_button.setBounds(520,0,50,50); exit_button.setBounds(520, 0, 50, 50);
add(move_button); add(move_button);
add(exit_button); add(exit_button);
@ -121,7 +119,7 @@ public class Hanoi extends JFrame{
add(auto_button); add(auto_button);
setLayout(null); setLayout(null);
setSize(720,720); setSize(720, 720);
setVisible(true); setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }
@ -130,24 +128,27 @@ public class Hanoi extends JFrame{
super("restricted tower of hanoi"); super("restricted tower of hanoi");
initialize(); initialize();
//MOVE BUTTON ACTION LISTENER // MOVE BUTTON ACTION LISTENER
move_button.addActionListener(new ActionListener() { move_button.addActionListener(
new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
updateStacks(); updateStacks();
} }
}); });
//EXIT BUTTON ACTION LISTENER // EXIT BUTTON ACTION LISTENER
exit_button.addActionListener(new ActionListener() { exit_button.addActionListener(
new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
System.exit(0); System.exit(0);
} }
}); });
//REPLAY BUTTON ACTION LISTENER // REPLAY BUTTON ACTION LISTENER
replay_button.addActionListener(new ActionListener() { replay_button.addActionListener(
new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
startGame(); startGame();
@ -155,19 +156,23 @@ public class Hanoi extends JFrame{
} }
}); });
//AUTOMATIC PLAY BUTTON ACTION LISTENER // AUTOMATIC PLAY BUTTON ACTION LISTENER
auto_button.addActionListener(new ActionListener() { auto_button.addActionListener(
new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
timer.start(); timer.start();
if(game_counter == movements.size()) { if (game_counter == movements.size()) {
timer.stop(); timer.stop();
} }
} }
}); });
} }
Timer timer = new Timer(ONE_SECOND,new ActionListener() { Timer timer =
new Timer(
ONE_SECOND,
new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
updateStacks(); updateStacks();
} }
@ -185,11 +190,11 @@ public class Hanoi extends JFrame{
movements = new ArrayList<String>(); movements = new ArrayList<String>();
game_counter = 0; game_counter = 0;
for(int i=0;i<number_of_disks;i++) { for (int i = 0; i < number_of_disks; i++) {
Stack1.add(number_of_disks-i); Stack1.add(number_of_disks - i);
} }
towerOfHanoi(number_of_disks,'A','C','B'); towerOfHanoi(number_of_disks, 'A', 'C', 'B');
} }
public static void main(String args[]) { public static void main(String args[]) {
@ -203,7 +208,7 @@ public class Hanoi extends JFrame{
}*/ }*/
} }
//Recursive function to formulate restricted tower of hanoi. // Recursive function to formulate restricted tower of hanoi.
public void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod) { public void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod) {
if (n == 1) { if (n == 1) {
stringBuilder.setLength(0); stringBuilder.setLength(0);
@ -211,29 +216,29 @@ public class Hanoi extends JFrame{
stringBuilder.append(from_rod); stringBuilder.append(from_rod);
stringBuilder.append(aux_rod); stringBuilder.append(aux_rod);
movements.add(stringBuilder.toString()); movements.add(stringBuilder.toString());
//System.out.println("Move disk 1 from rod " + from_rod + " to rod " + aux_rod); // System.out.println("Move disk 1 from rod " + from_rod + " to rod " + aux_rod);
stringBuilder.setLength(0); stringBuilder.setLength(0);
stringBuilder.append(Integer.toString(n)); stringBuilder.append(Integer.toString(n));
stringBuilder.append(aux_rod); stringBuilder.append(aux_rod);
stringBuilder.append(to_rod); stringBuilder.append(to_rod);
movements.add(stringBuilder.toString()); movements.add(stringBuilder.toString());
//System.out.println("Move disk 1 from rod " + aux_rod + " to rod " + to_rod); // System.out.println("Move disk 1 from rod " + aux_rod + " to rod " + to_rod);
return; return;
} }
towerOfHanoi(n-1, from_rod, to_rod, aux_rod); towerOfHanoi(n - 1, from_rod, to_rod, aux_rod);
stringBuilder.setLength(0); stringBuilder.setLength(0);
stringBuilder.append(Integer.toString(n)); stringBuilder.append(Integer.toString(n));
stringBuilder.append(from_rod); stringBuilder.append(from_rod);
stringBuilder.append(aux_rod); stringBuilder.append(aux_rod);
movements.add(stringBuilder.toString()); movements.add(stringBuilder.toString());
//System.out.println("Move disk " + n + " from rod " + from_rod + " to rod " + aux_rod); // System.out.println("Move disk " + n + " from rod " + from_rod + " to rod " + aux_rod);
towerOfHanoi(n-1, to_rod, from_rod, aux_rod); towerOfHanoi(n - 1, to_rod, from_rod, aux_rod);
stringBuilder.setLength(0); stringBuilder.setLength(0);
stringBuilder.append(Integer.toString(n)); stringBuilder.append(Integer.toString(n));
stringBuilder.append(aux_rod); stringBuilder.append(aux_rod);
stringBuilder.append(to_rod); stringBuilder.append(to_rod);
movements.add(stringBuilder.toString()); movements.add(stringBuilder.toString());
//System.out.println("Move disk " + n + " from rod " + aux_rod + " to rod " + to_rod); // System.out.println("Move disk " + n + " from rod " + aux_rod + " to rod " + to_rod);
towerOfHanoi(n-1, from_rod, to_rod, aux_rod); towerOfHanoi(n - 1, from_rod, to_rod, aux_rod);
} }
} }