Hey
,
/*
vorab, bitte keine Vorschläge, wie ändere doch die Programmiersprache, da das in (Python, C#,C++) alles viel einfacher ist. Es geht mir hier ums Prinzip, dass das ganze in Java umsetzbar ist und es ist meine erste "komplexere Programmierung", auch wenn ich noch eher neu im Coden bin. Außerdem seid bitte freundlich zu allen hier, beleidigende Kommentare oder ähnliches helfen NICHT weiter. Aber jetzt los:
*/
Ich bin gerade dabei auf eigene Faust zu programmieren (Künstliche Intelligenz) und möchte jetzt die grundlagen für das spätere Programm schreiben. Das Programm, an dem ich im Moment arbeite soll später automatisch 500 Zeilen lange Programme erstellen, die dann ausgeführt werden und in einem Stresstest eine Stunde lang auf Abstürze überprüft werden. Dabei werden bestimmte Schreibmöglichkeiten vorgegeben, die zufällig zusammengesetzt werden sollen. Es werden 50 Programme parallel geschrieben. Nachdem jedes von ihnen getestet wurde, wird das Programm mit der kleinsten Absturzrate für einen zweiten Durchgang kopiert und dann auf Basis von dem, was ausgewählt wurde zum schreiben, zufällig die Schreibmöglichkeiten 49 mal neu ausgewählt. Wenn ihr jetzt verwirrt seit, verlinke ich euch ein Projektdiagramm, in dem das ganze anschaulicher aufgeschrieben ist (.pap Datei(gezipt), sonst der link für das .pap als einzelne Fotos:Seite 1, Seite 2, Seite 3, Seite 4). Die Programme, die entstehen werden, werden alle einzeln in einen Ordner gespeichert (als .txt Dateien). Um diese zu schreiben, habe ich mir die Robots Bibliothek zunutze gemacht(Code ist verlinkt). Nun habe ich eine Funktion entworfen, die die Tastatureingaben für einzelne Buchstaben faked, wenn diese in einem String gespeichert werden. Das funktioniert nun aber nur für einen einzigen Buchstaben. Sobald der String z.B. hi enthält wird nichts mehr ausgegeben(Ich habe versucht in einer for schleife immer 1 von dem String zu entfernen und dann einmal den Robot den Buchstaben schreiben lassen, aber das hat nicht so recht funktioniert). Außerdem wird Klammer auf und Klammer zu (()) von Java nicht erkannt und spuckt nur Fehler aus. Hier frage ich euch: Wie kann ich den Robot so kompatibel machen, dass mir nicht entweder immer nur ein Buchstabe oder ganz viele, bis der PC abstürtzt ausgeben wird und wie kann ich mit der Robot library Klammern, vorallendingen auch geschweifte Klammern ({}) und eckige Klammern ([]) schreiben.
Ich freue Mich auf euere Vorschläge!
~Redacted
/*
vorab, bitte keine Vorschläge, wie ändere doch die Programmiersprache, da das in (Python, C#,C++) alles viel einfacher ist. Es geht mir hier ums Prinzip, dass das ganze in Java umsetzbar ist und es ist meine erste "komplexere Programmierung", auch wenn ich noch eher neu im Coden bin. Außerdem seid bitte freundlich zu allen hier, beleidigende Kommentare oder ähnliches helfen NICHT weiter. Aber jetzt los:
*/
Ich bin gerade dabei auf eigene Faust zu programmieren (Künstliche Intelligenz) und möchte jetzt die grundlagen für das spätere Programm schreiben. Das Programm, an dem ich im Moment arbeite soll später automatisch 500 Zeilen lange Programme erstellen, die dann ausgeführt werden und in einem Stresstest eine Stunde lang auf Abstürze überprüft werden. Dabei werden bestimmte Schreibmöglichkeiten vorgegeben, die zufällig zusammengesetzt werden sollen. Es werden 50 Programme parallel geschrieben. Nachdem jedes von ihnen getestet wurde, wird das Programm mit der kleinsten Absturzrate für einen zweiten Durchgang kopiert und dann auf Basis von dem, was ausgewählt wurde zum schreiben, zufällig die Schreibmöglichkeiten 49 mal neu ausgewählt. Wenn ihr jetzt verwirrt seit, verlinke ich euch ein Projektdiagramm, in dem das ganze anschaulicher aufgeschrieben ist (.pap Datei(gezipt), sonst der link für das .pap als einzelne Fotos:Seite 1, Seite 2, Seite 3, Seite 4). Die Programme, die entstehen werden, werden alle einzeln in einen Ordner gespeichert (als .txt Dateien). Um diese zu schreiben, habe ich mir die Robots Bibliothek zunutze gemacht(Code ist verlinkt). Nun habe ich eine Funktion entworfen, die die Tastatureingaben für einzelne Buchstaben faked, wenn diese in einem String gespeichert werden. Das funktioniert nun aber nur für einen einzigen Buchstaben. Sobald der String z.B. hi enthält wird nichts mehr ausgegeben(Ich habe versucht in einer for schleife immer 1 von dem String zu entfernen und dann einmal den Robot den Buchstaben schreiben lassen, aber das hat nicht so recht funktioniert). Außerdem wird Klammer auf und Klammer zu (()) von Java nicht erkannt und spuckt nur Fehler aus. Hier frage ich euch: Wie kann ich den Robot so kompatibel machen, dass mir nicht entweder immer nur ein Buchstabe oder ganz viele, bis der PC abstürtzt ausgeben wird und wie kann ich mit der Robot library Klammern, vorallendingen auch geschweifte Klammern ({}) und eckige Klammern ([]) schreiben.
Ich freue Mich auf euere Vorschläge!
~Redacted
Code:
package de.brain.java;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.Console;
import java.io.IOException;
import java.util.logging.ConsoleHandler;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Date;
import java.util.Scanner;
import java.sql.Time;
import java.time.*;
import java.util.concurrent.TimeUnit;;
public class CoreOfBrain {
public static boolean Zeit() {
int Sekunden = 0;
while(true){
Sekunden= Sekunden + 1;
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Sekunden);
}
}
public static int random() {
int d=(int) ((Math.random()*1000)%101);
System.out.println(d);
return d;
}
public static void stringify(String s) throws AWTException {
/*
Method yet only implemented for letters a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
. and spacebar
*/
Robot r = new Robot();
Scanner scanner = new Scanner(System.in);
for(int o=s.length(); o>0; o--){
String character= s.trim();
String u = character;
//String u=s;
if(u.contains(" "))
{
r.keyPress(KeyEvent.VK_SPACE);
r.keyRelease(KeyEvent.VK_SPACE);
}
if(u.contains("a"))
{
r.keyPress(KeyEvent.VK_A);
r.keyRelease(KeyEvent.VK_A);
}
if(u.contains("b"))
{
r.keyPress(KeyEvent.VK_B);
r.keyRelease(KeyEvent.VK_B);
}
if(u.contains("c"))
{
r.keyPress(KeyEvent.VK_C);
r.keyRelease(KeyEvent.VK_C);
}
if(u.contains("d"))
{
r.keyPress(KeyEvent.VK_D);
r.keyRelease(KeyEvent.VK_D);
}
if(u.contains("e"))
{
r.keyPress(KeyEvent.VK_E);
r.keyRelease(KeyEvent.VK_E);
}
if(u.contains("f"))
{
r.keyPress(KeyEvent.VK_F);
r.keyRelease(KeyEvent.VK_F);
}
if(u.contains("g"))
{
r.keyPress(KeyEvent.VK_G);
r.keyRelease(KeyEvent.VK_G);
}
if(u.contains("h"))
{
r.keyPress(KeyEvent.VK_H);
r.keyRelease(KeyEvent.VK_H);
}
if(u.contains("i"))
{
r.keyPress(KeyEvent.VK_I);
r.keyRelease(KeyEvent.VK_I);
}
if(u.contains("j"))
{
r.keyPress(KeyEvent.VK_J);
r.keyRelease(KeyEvent.VK_J);
}
if(u.contains("k"))
{
r.keyPress(KeyEvent.VK_K);
r.keyRelease(KeyEvent.VK_K);
}
if(u.contains("l"))
{
r.keyPress(KeyEvent.VK_L);
r.keyRelease(KeyEvent.VK_L);
}
if(u.contains("m"))
{
r.keyPress(KeyEvent.VK_M);
r.keyRelease(KeyEvent.VK_M);
}
if(u.contains("n"))
{
r.keyPress(KeyEvent.VK_N);
r.keyRelease(KeyEvent.VK_N);
}
if(u.contains("o"))
{
r.keyPress(KeyEvent.VK_O);
r.keyRelease(KeyEvent.VK_O);
}
if(u.contains("p"))
{
r.keyPress(KeyEvent.VK_P);
r.keyRelease(KeyEvent.VK_P);
}
if(u.contains("q"))
{
r.keyPress(KeyEvent.VK_Q);
r.keyRelease(KeyEvent.VK_Q);
}
if(u.contains("r"))
{
r.keyPress(KeyEvent.VK_R);
r.keyRelease(KeyEvent.VK_R);
}
if(u.contains("s"))
{
r.keyPress(KeyEvent.VK_S);
r.keyRelease(KeyEvent.VK_S);
}
if(u.contains("t"))
{
r.keyPress(KeyEvent.VK_T);
r.keyRelease(KeyEvent.VK_T);
}
if(u.contains("u"))
{
r.keyPress(KeyEvent.VK_U);
r.keyRelease(KeyEvent.VK_U);
}
if(u.contains("v"))
{
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_V);
}
if(u.contains("w"))
{
r.keyPress(KeyEvent.VK_W);
r.keyRelease(KeyEvent.VK_W);
}
if(u.contains("x"))
{
r.keyPress(KeyEvent.VK_X);
r.keyRelease(KeyEvent.VK_X);
}
if(u.contains("y"))
{
r.keyPress(KeyEvent.VK_Y);
r.keyRelease(KeyEvent.VK_Y);
}
if(u.contains("z"))
{
r.keyPress(KeyEvent.VK_Z);
r.keyRelease(KeyEvent.VK_Z);
}
if (u.contentEquals("("))
{
r.keyPress(KeyEvent.VK_OPEN_BRACKET);
r.keyRelease(KeyEvent.VK_OPEN_BRACKET);
}
if (u.contentEquals(")"))
{
r.keyPress(KeyEvent.VK_CLOSE_BRACKET);
r.keyRelease(KeyEvent.VK_CLOSE_BRACKET);
}
if (u.contentEquals("."))
{
r.keyPress(KeyEvent.VK_PERIOD);
r.keyRelease(KeyEvent.VK_PERIOD);
}
}
scanner.close();
}
/*
public static void zero() throws AWTException {
}
*/
public static void main(String[] args) throws AWTException{
try {
Runtime.getRuntime().exec("notepad");
} catch (IOException e) {
e.printStackTrace();
System.err.println("Caught IOException: " + e.getMessage());
}
stringify("..");
/*
random(999999);
if (System.out.append((char) 0) != null){zero();}
*/
}
}




Anhänge
Zuletzt bearbeitet: