mercredi 3 juin 2015

Erste Schritte Random Wert auslesen und ausgeben

Huhu,

bin neu hier. Hab zwar vor einigen Jahren mal in der Ausbildung programmiert, aber würde mich trotzdem als blutigen Anfänger bezeichnen, weil ich es seitdem nie wieder genutzt habe :D

Parallel während des Übens habe ich angefangen ein kleines Random Duell Spiel zu programmieren. Für euch wahrscheinlich nichts Aufwändiges, für mich aber eine gute Methode um gelernte Dinge einzubinden und im Kopf zu behalten.

Wie ihr im Code vllt. erkennt, machen der Spieler und der Gegner zufälligen Schaden und genau diesen Schaden würde ich gerne in jeder Runde auslesen und ausgeben (Zeile 79/80), aber ich habe keine Ahnung wie das gehen soll. (Habe erst vor wenigen Stunden genau verstanden was Getter/Setter sind und wie man mit mehreren Klassen arbeitet). Was ihr hier an Code seht ist also mein aktueller Wissensstand. Es ist hier und da evtl. noch ein wenig unordentlich und ich könnte noch was auslagern usw. und sofort :D

Die Klasse Game
Java Code:

  1. package DotR;
  2.  
  3. import java.util.Random;
  4. import java.util.Scanner;
  5.  
  6.  
  7. public class Game {
  8.  
  9. @SuppressWarnings("resource")
  10. public static void main (String[] args) throws InterruptedException
  11. {
  12.  
  13. //Variablendeklaration
  14. String name;
  15. String eingabe = "";
  16. String[] gegnernamen = {"Throw Ranger", "Outworld Belieber", "Keeper of some Light", "Skyrage Mage", "Blyat Cyka"};
  17. Scanner sc = new Scanner(System.in);
  18. Random ran = new Random();
  19. Kampf fight = new Kampf();
  20.  
  21.  
  22. //Startausgabe
  23. System.out.println("Mein Gott, welch Zufall. Du bist in diesem unfassbaren Abenteuer \n"
  24. + "gelandet und wirst dich nun einem Duell stellen müssen. \n");
  25. System.out.println("Wie lautet dein Name, Duellant?");
  26.  
  27. //Eingabe Name
  28. name = sc.next();
  29.  
  30. //Ausgabe Name
  31. System.out.println("Hallo " + name +"! Schoen dich hier anzutreffen.");
  32. System.out.println();
  33.  
  34. do {
  35. int lebenspunktegegner = 100;
  36. int lebenspunktespieler = 100;
  37. int counter = 1;
  38. int runde;
  39. System.out.println("Moechtest du dir nun deinen Gegner zuweisen lassen? <y/n>");
  40. eingabe = sc.next();
  41.  
  42. int x = ran.nextInt(5);
  43.  
  44. if(eingabe.equalsIgnoreCase("y"))
  45. System.out.println("Sehr gut. Dein Gegner ist " + gegnernamen[x] + ".");
  46. else {
  47. System.out.println("Wie schade. Das Programm wird in 5 Sekunden beendet.");
  48. {
  49. Thread.sleep(5000);
  50. }
  51. System.exit(0);
  52. }
  53.  
  54.  
  55. do{
  56.  
  57. runde = counter++;
  58.  
  59. //Holt zufälligen Schadenswert aus Kampf.java und zieht diesen von Lebenspunkten ab
  60. lebenspunktegegner -= fight.getSchaden();
  61. lebenspunktespieler -= fight.getSchaden();
  62.  
  63.  
  64. //Abfragen ob Lebenspunkte in den negativen Bereich gehen. Wenn ja, auf 0 setzen.
  65. if(lebenspunktegegner < 1)
  66. {
  67. lebenspunktegegner = 0;
  68. }
  69.  
  70. if(lebenspunktespieler < 1)
  71. {
  72. lebenspunktespieler = 0;
  73. }
  74.  
  75.  
  76.  
  77. System.out.println("-----Runde " + runde +"-----");
  78. System.out.println("-----------------------------------------------------");
  79. System.out.println("Lebenspunkte von " + gegnernamen[x] + ": " + lebenspunktegegner + " || Dmg: ");
  80. System.out.println("Lebenspunkte von " + name + ": " + lebenspunktespieler + " || Dmg: ");
  81. System.out.println();
  82. {
  83. Thread.sleep(500);
  84. }
  85.  
  86.  
  87.  
  88.  
  89. }while ( lebenspunktegegner >= 1 && lebenspunktespieler >= 1);
  90.  
  91. if(lebenspunktegegner == 0 && lebenspunktespieler == 0)
  92. {
  93. System.out.println("Unentschieden!");
  94. }
  95. else if(lebenspunktegegner >= 1) {
  96. System.out.println("Schade, du hast verloren.");
  97. System.out.println("Moechtest du von vorne beginnen? <y|n>");
  98. eingabe = sc.next();
  99. }
  100. else {
  101. System.out.println("Glueckwunsch, du hast gewonnen!");
  102. System.out.println("Moechtest du von vorne beginnen? <y|n>");
  103. eingabe = sc.next();
  104. }
  105.  
  106. }while(eingabe.equalsIgnoreCase("y"));
  107.  
  108. }
  109.  
  110.  
  111. }


Die Klasse Kampf
Java Code:

  1. package DotR;
  2. import java.util.Random;
  3.  
  4.  
  5. public class Kampf {
  6.  
  7.  
  8. Random ran = new Random();
  9. private int schaden;
  10. private int dmgdealt;
  11.  
  12. //get & set
  13. public int getSchaden() {
  14. return ran.nextInt(20)+1;
  15. }
  16. public void setSchaden(int schaden) {
  17. this.schaden = schaden ;
  18. }
  19. }


Erste Schritte Random Wert auslesen und ausgeben

0 commentaires:

Enregistrer un commentaire