Hallo!
Ich möchte die Theorie des unendlich tippenden Affen in Java umsetzen.
Das Programm soll einen Text der getippt werden soll entgegennehmen.
Dann sollen Zeichen A-Z und Leerzeihen generiert werden, solange bis das eingegebene Wort generiert wurde.
Ich habe bisher folgendes (funktionsunfähig) es hängt sich immer auf.
P.S. Da der String in dem der generierte Text gespeichert wird, ziemlich lang werden kann (also wirklich extrem lang) sollten die bereits auf das Wort geprüften Zeichen wieder entfernt werden.
Bitte um Hilfe!
Vielen Dank.
Ich möchte die Theorie des unendlich tippenden Affen in Java umsetzen.
Das Programm soll einen Text der getippt werden soll entgegennehmen.
Dann sollen Zeichen A-Z und Leerzeihen generiert werden, solange bis das eingegebene Wort generiert wurde.
Ich habe bisher folgendes (funktionsunfähig) es hängt sich immer auf.
P.S. Da der String in dem der generierte Text gespeichert wird, ziemlich lang werden kann (also wirklich extrem lang) sollten die bereits auf das Wort geprüften Zeichen wieder entfernt werden.
Java:
package com.ludevstudio.desktop.unendlichtippenderaffe;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Main extends JFrame implements ActionListener{
private JLabel labelText, labelStatus, labelGetipptHead, labelGetippt;
private JTextArea taText;
private JButton btnStart, btnStop;
private JTextField tfText;
private int getippteZeichen = 0;
private String getippterText;
private String text;
Boolean gestoppt = false;
public static void main(String[] args) {
new Main();
}
public Main() {
setTitle("Der undendlich tippende Affe");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
setSize(500, 170);
setLocationRelativeTo(null);
initKomponenten();
setVisible(true);
}
private void initKomponenten() {
labelText = new JLabel("Zu tippender Text:");
labelText.setBounds(10, 10, 550, 30);
this.add(labelText);
btnStart = new JButton("Starten");
btnStart.setBounds(10, 75, 100, 30);
btnStart.addActionListener(this);
this.getContentPane().add(btnStart);
btnStop = new JButton("Stoppen");
btnStop.setBounds(120, 75, 100, 30);
this.getContentPane().add(btnStop);
tfText = new JTextField();
tfText.setBounds(10, 40, 212, 30);
this.getContentPane().add(tfText);
labelStatus = new JLabel("Status: Inaktiv");
labelStatus.setBounds(240, 10, 550, 30);
this.add(labelStatus);
labelGetipptHead = new JLabel("Getippte Zeichen:");
labelGetipptHead.setBounds(240, 40, 550, 30);
this.add(labelGetipptHead);
labelGetippt = new JLabel("0");
labelGetippt.setBounds(240, 60, 550, 30);
this.add(labelGetippt);
}
@Override
public void actionPerformed(ActionEvent event) {
if(event.getSource()==btnStart) {
text = tfText.getText();
starteTippen(text);
}
}
private void starteTippen(String text) {
char[] zeichen = new char[]{'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',
' '};
int counter = 0;
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i>-1; i++) {
// sb.append(zeichen[random.nextInt(26)]);
// getippterText = sb.toString();
counter++;
labelGetippt.setText(Integer.toString(counter));
if(gestoppt=true) {
// return;
}
}
}
}
Bitte um Hilfe!
Vielen Dank.