public class Solist extends Trolley {static final long serialVersionUID = 8962277232270632278L; public Solist() { super(); } public Solist(Solist solist) { super(solist); }   public void main() {

    debugger.SolistDebugger.getSolistDebugger().trace(0);Fruit[] fruits = stay();
    debugger.SolistDebugger.getSolistDebugger().trace(1,"Fruit[]","fruits",fruits);while (debugger.SolistDebugger.getSolistDebugger().traceB(2,"Fruit[]","fruits",fruits) && (getNumberOfCapturedFruits() + 
           getNumberOfNotCapturedFruits()  < 100)) {debugger.SolistDebugger.getSolistDebugger().trace(3,"Fruit[]","fruits",fruits);{
        debugger.SolistDebugger.getSolistDebugger().trace(4,"Fruit[]","fruits",fruits);Fruit fruit = calcFruit(fruits);
        debugger.SolistDebugger.getSolistDebugger().trace(5,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);if (fruit != null) {debugger.SolistDebugger.getSolistDebugger().trace(6,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);{
            debugger.SolistDebugger.getSolistDebugger().trace(7,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);if (canCapture(fruit)) {debugger.SolistDebugger.getSolistDebugger().trace(8,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);{
               debugger.SolistDebugger.getSolistDebugger().trace(9,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);captureFruit(); 
               debugger.SolistDebugger.getSolistDebugger().trace(10,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);fruits = stay();
            }} else {debugger.SolistDebugger.getSolistDebugger().trace(11,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);if (fruit.column == getColumn()) {debugger.SolistDebugger.getSolistDebugger().trace(12,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);{
                debugger.SolistDebugger.getSolistDebugger().trace(13,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);fruits = stay();
            }} else {debugger.SolistDebugger.getSolistDebugger().trace(14,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);if (fruit.column < getColumn()) {debugger.SolistDebugger.getSolistDebugger().trace(15,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);{
                debugger.SolistDebugger.getSolistDebugger().trace(16,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);fruits = left();
            }} else {debugger.SolistDebugger.getSolistDebugger().trace(17,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);{
                debugger.SolistDebugger.getSolistDebugger().trace(18,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);fruits = right();
            }}}}
        }} else {debugger.SolistDebugger.getSolistDebugger().trace(19,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);{
            debugger.SolistDebugger.getSolistDebugger().trace(20,"Fruit[]","fruits",fruits,"Fruit","fruit",fruit);fruits = stay();
        }}
    }}
}

Fruit calcFruit(Fruit[] fruits) {
    debugger.SolistDebugger.getSolistDebugger().trace(21,"Fruit[]","fruits",fruits);if (fruits.length == 0) {debugger.SolistDebugger.getSolistDebugger().trace(22,"Fruit[]","fruits",fruits);{
        debugger.SolistDebugger.getSolistDebugger().trace(23,"Fruit[]","fruits",fruits);return null;
    }} else {debugger.SolistDebugger.getSolistDebugger().trace(24,"Fruit[]","fruits",fruits);{
        debugger.SolistDebugger.getSolistDebugger().trace(25,"Fruit[]","fruits",fruits);return fruits[0];
    }}
}

boolean canCapture(Fruit fruit) {
    debugger.SolistDebugger.getSolistDebugger().trace(26,"Fruit","fruit",fruit);return getColumn() == fruit.column && 
           getRow() == fruit.row;
}
 }