import java.util.*;
import javax.swing.*;
import java.awt.*;
public class Tower {
    String id;
    int numDiscs;
    Stack<Integer>  discs=new Stack<Integer>();
    JPanel p;
    JTextField tDisc;
    JTextField tID;
    Tower(String id, int numDiscs){
        this.id=id;
        this.numDiscs=numDiscs;
        p=new JPanel();
        p.setBorder(BorderFactory.createLineBorder(Color.RED));
        tDisc=new JTextField();
        tID=new JTextField();
        tID.setText("Tower "+ id);
        Font f=new Font("Arial", Font.BOLD, 24);
        tDisc.setFont(f);
        tID.setFont(f);
        p.setLayout(new GridLayout(1,2,5,5));
        p.add(tID);
        p.add(tDisc);
        createTower(numDiscs);
        print();
    }
    public String getID(){
        return id;
    }

    public void print( ){
        String d=discs.toString();
        tDisc.setText(d);
        try{
            Thread.sleep(1000);
        }catch(Exception e){

        }
    }
    private void createTower(int numDiscs){
        for (int i=numDiscs; i>0; i--){
            discs.push(i);
        }
    }
    public int pop() {
        if (!discs.isEmpty()){
            return discs.pop();
        }
        else{
            System.out.println("Popping from empty disc: "+id);
            return(0);
        }
    }
    public  void push(int nextDisk) {
       discs.push(nextDisk);
    }
    public JPanel getPanel(){
        return p;
    }
}
