Guest User

Untitled

a guest
Nov 24th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. public class Knoten{
  2. public String name;
  3. boolean markiert = false;
  4. int x, y;
  5. int entfernung = 0;
  6. Kante [] kanten = new Kante[10];
  7. int anzahlKanten = 0;
  8. boolean pfad = false;
  9. boolean punktpfad = false;
  10.  
  11. public Knoten nachfolger, vorgaengerImPfad;
  12.  
  13. public Knoten( String name, int x, int y){
  14. this.name = name;
  15. this.x = x;
  16. this.y = y;
  17. println( "Knoten " + name + " erzeugt!" );
  18. }
  19.  
  20. public float berechneMausDistanz(int x1, int y1){
  21. int difx = x1 - x;
  22. int dify = y1 - y;
  23. float hyp = sqrt(difx * difx + dify * dify);
  24. return hyp;
  25. }
  26.  
  27. public void zeichneDich(){
  28. fill(255,255,255);
  29.  
  30. if( pfad == true){
  31. fill(0,255,90);
  32. }
  33.  
  34. if( punktpfad == true ){
  35. fill(255,0,0);
  36. }
  37.  
  38. ellipse(x,y,35,35);
  39. stroke(0,0,0);
  40. strokeWeight(2);
  41.  
  42. font = loadFont("AbadiMT-CondensedExtraBold-14.vlw");
  43. textFont(font);
  44. fill(0,0,0);
  45. text( name , x, y);
  46. }
  47.  
  48. public void markierePfad(){
  49. pfad = true;
  50. }
  51.  
  52. public void markierePunkt(){
  53. punktpfad = true;
  54. }
  55.  
  56. public void fuegeKanteHinzu( Knoten nachbar, int entfernung){
  57. kanten[anzahlKanten] = new Kante ( nachbar, entfernung) ;
  58. anzahlKanten++;
  59. }
  60.  
  61. public void markiereKnoten(){
  62. markiert = true;
  63. }
  64.  
  65. public void fuegeKnotenEin( Knoten neuerKnoten ){
  66. if ( nachfolger == null ){
  67. nachfolger = neuerKnoten;
  68. System.out.println( "Knoten mit Entfernung " + neuerKnoten.entfernung + " eingefuegt.");
  69. }
  70. else {
  71. int eneu = neuerKnoten.gibEntfernungZurueck();
  72. int enachfolger = nachfolger.gibEntfernungZurueck();
  73.  
  74. if ( enachfolger > eneu ){
  75. neuerKnoten.setzeNachfolger( nachfolger );
  76. nachfolger = neuerKnoten;
  77. System.out.println( "Knoten mit Entfernung " + neuerKnoten.entfernung + " eingefuegt.");
  78. }
  79. else {
  80. nachfolger.fuegeKnotenEin( neuerKnoten );
  81. }
  82. }
  83. }
  84.  
  85. public void gibKnotenAus(){
  86. System.out.println( "Knoten: " + name + " Entfernung bis hierhin: " + entfernung + " Vorgaenger: " + vorgaengerImPfad.name );
  87. if ( nachfolger != null ){
  88. nachfolger.gibKnotenAus();
  89. }
  90. }
  91.  
  92. public void gibPfadAus(){
  93. if ( vorgaengerImPfad != null ){
  94. vorgaengerImPfad.gibPfadAus();
  95. vorgaengerImPfad.markierePfad();
  96. System.out.println( "Knoten: " + name + " Entfernung bis hierhin: " + entfernung + " Vorgaenger: " + vorgaengerImPfad.name );
  97. }
  98. else {
  99. System.out.println( "Knoten: " + name + " Entfernung bis hierhin: " + entfernung );
  100. }
  101. }
  102.  
  103. public int gibEntfernungZurueck(){
  104. return entfernung;
  105. }
  106.  
  107. public Knoten gibNachfolgerZurueck(){
  108. return nachfolger;
  109. }
  110.  
  111. public void setzeNachfolger( Knoten nachfolgerInDerWarteschlange ){
  112. this.nachfolger = nachfolger;
  113. }
  114.  
  115. public boolean istMarkiert(){
  116. return markiert;
  117. }
  118.  
  119. public void entferneKnoten( Knoten knoten ){
  120. if ( nachfolger == null ){
  121. return ;
  122. }
  123. else{
  124. if ( nachfolger == knoten ){
  125. System.out.println( "Knoten mit Entfernung " + knoten.entfernung + " entfernt.");
  126. nachfolger = nachfolger.gibNachfolgerZurueck();
  127. }
  128. else{
  129. nachfolger.entferneKnoten( knoten );
  130. }
  131. }
  132. }
  133. }
Add Comment
Please, Sign In to add comment