// Deal with button release void mouseReleased() { submit.released(); guessButton.released(); recordButton.released(); record.released(); } void keyPressed(){ if (key == 'r'){ welcome = true; training = false; getRecord = false; trainingCount = 0; getFile(); clearBack = true; } else if(key == 'o'){ openDatabase(); guessing = true; //float[] binaryPixels = getPixels(inputImage); float result = nn.feedForward(binaryPixels); // Here is the result guess = result * total; //println(guess); guess(); } else if (training && trainingComplete) { training = false; // If guessing } else if (guessing) { // No longer guessing guessing = false; // What number did user type int num = Integer.parseInt("" + key); // float[] binaryPixels = lineString; // Retrain the network according to those pixels nn.train(binaryPixels, (float)num/total); // Clear what user has drawn for next time points.clear(); } else if(key == 'v'){ startGame = true; } else if(key == 'l'){ startRecord = true; } } void mousePressed() { // Clicking the mouse exits the welcome screen /* if (welcome) { welcome = false; training = true; // Deal with the submit button } else */ if (submit.clicked(mouseX,mouseY)) { // Time to guess! int totalIn = pathGuess.size(); int want = 12; /// average network lenghts if (totalIn > want) { int skip = totalIn / want; int prevOrder = 0; guessVectorArray = new float[want*2]; int a = 0; int sum = 0; for (int j = 0; j < want/2; j++) { PVector prev = (PVector) pathGuess.get(prevOrder); PVector curr = (PVector) pathGuess.get(prevOrder+skip); prevOrder = prevOrder + skip; PVector v = PVector.sub(curr,prev); //println(v.x + " " + v.y); guessVectorArray[a] = v.x; guessVectorArray[a+1] = v.y; sum += (v.x+v.y); a +=2; } } guessing = true; // float[] binaryPixels = getPixels(inputImage);////// change it with mouse inputs // float[] binaryPixels = guessVectorArray;////// change it with mouse inputs float result = nn.feedForward(guessVectorArray); // Here is the result guess = result * (total-1); // println(guess); } else if (record.clicked(mouseX,mouseY)) { saveData(); } else if (guessButton.clicked(mouseX,mouseY)) { welcome = false; training = true; trainingComplete = false; } else if (recordButton.clicked(mouseX,mouseY)) { welcome = false; getRecord = true; } }