Dartspiel mit Punkten

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Dartspiel mit Punkten

    Hallo Zusammen,
    Ich habe eine Frage, und zwar sind wir wie viele andere Schüler im Informatikunterricht dabei, ein Dartspiel zu entwerfen.
    Ich habe bis jetzt alles sehr gut hinbekommen, und es funktioniert auch super. Allerdings haben wir bis jetzt nur eindimensional gespielt, und somit ist der Pfeil immer bei der gleichen Vertikallinie stecken geblieben.
    Nun sollen wir den Pfeil überall auf der Scheibe fallen Lassen, und dies ist ja auch noch ok...
    Jedoch soll ja auch eine Punktzahl angezeigt werden, wobei ein Punktabstand zwischen dem "Bullseye" und der Pfeilspitze berechnet werden soll. Zwar ist dies Möglich mit dem Satz des Pythagoras (a²+b²=c²), aber ich kann dies nicht so gut umsetzen in Bluej... hat jemand einen Vorschlag?
    Bis jetzt sieht mein Kode so aus:

    Source Code

    1. import sum.kern.*;
    2. /**
    3. * @author dadoc
    4. * @version 2012.11.06
    5. */
    6. public class DartTheGame
    7. {
    8. // Objekte
    9. Bildschirm derBildschirm;
    10. Stift meinStift;
    11. Buntstift meinAndererStift;
    12. Maus dieMaus;
    13. // Konstruktor
    14. public DartTheGame()
    15. {
    16. derBildschirm = new Bildschirm(500,300);
    17. meinStift = new Stift();
    18. meinAndererStift = new Buntstift();
    19. dieMaus = new Maus();
    20. this.fuehreAus();
    21. }
    22. // Dienste
    23. public void zeichneScheibe()
    24. {
    25. //Einzelne Kreise
    26. meinAndererStift.setzeFarbe(0);
    27. meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
    28. meinAndererStift.zeichneKreis(50);
    29. meinAndererStift.setzeFarbe(6);
    30. meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
    31. meinAndererStift.zeichneKreis(46);
    32. meinAndererStift.setzeFarbe(10);
    33. meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
    34. meinAndererStift.zeichneKreis(30);
    35. meinAndererStift.setzeFarbe(6);
    36. meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
    37. meinAndererStift.zeichneKreis(26);
    38. meinAndererStift.setzeFarbe(5);
    39. meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
    40. meinAndererStift.zeichneKreis(10);
    41. meinAndererStift.setzeFarbe(10);
    42. meinAndererStift.setzeFuellmuster(Muster.GEFUELLT);
    43. meinAndererStift.zeichneKreis(5);
    44. meinAndererStift.setzeFarbe(0);
    45. meinAndererStift.setzeFuellmuster(Muster.DURCHSICHTIG);
    46. // Punkteabstände
    47. meinAndererStift.runter();
    48. meinAndererStift.bewegeUm(50);
    49. meinAndererStift.bewegeUm(-100);
    50. meinAndererStift.bewegeUm(50);
    51. meinAndererStift.dreheUm(342);
    52. meinAndererStift.bewegeUm(50);
    53. meinAndererStift.bewegeUm(-100);
    54. meinAndererStift.bewegeUm(50);
    55. meinAndererStift.dreheUm(342);
    56. meinAndererStift.bewegeUm(50);
    57. meinAndererStift.bewegeUm(-100);
    58. meinAndererStift.bewegeUm(50);
    59. meinAndererStift.dreheUm(342);
    60. meinAndererStift.bewegeUm(50);
    61. meinAndererStift.bewegeUm(-100);
    62. meinAndererStift.bewegeUm(50);
    63. meinAndererStift.dreheUm(342);
    64. meinAndererStift.bewegeUm(50);
    65. meinAndererStift.bewegeUm(-100);
    66. meinAndererStift.bewegeUm(50);
    67. meinAndererStift.dreheUm(342);
    68. meinAndererStift.bewegeUm(50);
    69. meinAndererStift.bewegeUm(-100);
    70. meinAndererStift.bewegeUm(50);
    71. meinAndererStift.dreheUm(342);
    72. meinAndererStift.bewegeUm(50);
    73. meinAndererStift.bewegeUm(-100);
    74. meinAndererStift.bewegeUm(50);
    75. meinAndererStift.dreheUm(342);
    76. meinAndererStift.bewegeUm(50);
    77. meinAndererStift.bewegeUm(-100);
    78. meinAndererStift.bewegeUm(50);
    79. meinAndererStift.dreheUm(342);
    80. meinAndererStift.bewegeUm(50);
    81. meinAndererStift.bewegeUm(-100);
    82. meinAndererStift.bewegeUm(50);
    83. meinAndererStift.dreheUm(342);
    84. meinAndererStift.bewegeUm(50);
    85. meinAndererStift.bewegeUm(-100);
    86. meinAndererStift.bewegeUm(50);
    87. meinAndererStift.dreheUm(342);
    88. //Kreissegmente
    89. meinAndererStift.hoch();
    90. }
    91. public void zeichneSegmentSchwarz()
    92. {
    93. do
    94. { meinAndererStift.setzeFarbe(0);
    95. meinAndererStift.bewegeBis(400,150);
    96. meinAndererStift.dreheBis(0);
    97. meinAndererStift.runter();
    98. meinAndererStift.bewegeUm(26);
    99. meinAndererStift.bewegeUm(-26);
    100. meinAndererStift.dreheUm(0.5);
    101. }while(meinAndererStift.hPosition()<160);
    102. }
    103. public void zeichnePfeil()
    104. {
    105. meinStift.runter();
    106. meinStift.zeichneKreis(2);
    107. meinStift.bewegeUm(-30);
    108. meinStift.bewegeUm(30);
    109. meinStift.hoch();
    110. }
    111. public void radierePfeil()
    112. {
    113. meinStift.radiere();
    114. this.zeichnePfeil();
    115. meinStift.normal();
    116. }
    117. public void PfeilFaellt()
    118. {
    119. this.zeichnePfeil();
    120. this.radierePfeil();
    121. meinStift.bewegeUm(0.05);
    122. }
    123. public void PfeilFliegt()
    124. {
    125. this.zeichnePfeil();
    126. this.radierePfeil();
    127. meinStift.bewegeUm(0.1);
    128. }
    129. public void PfeilDreht()
    130. {
    131. this.zeichnePfeil();
    132. this.radierePfeil();
    133. meinStift.bewegeUm(-30);
    134. meinStift.dreheUm(0.1);
    135. meinStift.bewegeUm(30);
    136. }
    137. public void fuehreAus()
    138. {
    139. // Aktionsteil
    140. meinAndererStift.bewegeBis(400,150);
    141. this.zeichneScheibe();
    142. meinStift.bewegeBis(50,0);
    143. meinStift.dreheUm(270);
    144. this.zeichneSegmentSchwarz();
    145. do
    146. {
    147. this.PfeilFaellt();
    148. }
    149. while(!dieMaus.istGedrueckt());
    150. do
    151. {
    152. this.PfeilDreht();
    153. }
    154. while(dieMaus.istGedrueckt());
    155. do
    156. {
    157. this.PfeilFliegt();
    158. }
    159. while(meinStift.hPosition()<400);
    160. if(meinStift.hPosition()>399)
    161. {
    162. this.zeichneScheibe();
    163. this.zeichnePfeil();
    164. // Bewertung
    165. if((meinStift.vPosition() < 90) || (meinStift.vPosition() > 210))
    166. {
    167. meinAndererStift.bewegeBis(100,150);
    168. meinAndererStift.schreibeText("Leider daneben...");
    169. }
    170. else
    171. {
    172. if((meinStift.vPosition() < 90) || (meinStift.vPosition() > 210))
    173. {
    174. meinAndererStift.bewegeBis(100,170);
    175. meinAndererStift.schreibeText("Knapp daneben ist auch vorbei! :)");
    176. }
    177. else
    178. {
    179. if((meinStift.vPosition() < 135) || (meinStift.vPosition() > 165))
    180. {
    181. meinAndererStift.bewegeBis(100,170);
    182. meinAndererStift.schreibeText("SUPER! Getroffen! 5 Punkte");
    183. }
    184. else
    185. {
    186. if((meinStift.vPosition() < 140) || (meinStift.vPosition() > 160))
    187. {
    188. meinAndererStift.bewegeBis(100,170);
    189. meinAndererStift.schreibeText("SUPER! Getroffen! 10 Punkte");
    190. }
    191. else
    192. {
    193. if((meinStift.vPosition() < 145) || (meinStift.vPosition() > 155))
    194. {
    195. meinAndererStift.bewegeBis(100,170);
    196. meinAndererStift.schreibeText("Sehr Gut!! Fast in die Mitte! 20 Punkte :)");
    197. }
    198. else
    199. {
    200. meinAndererStift.bewegeBis(100,170);
    201. meinAndererStift.schreibeText("PERFEKT!! MITTE!! 25 Punkte! :)");
    202. }
    203. }
    204. }
    205. }
    206. }
    207. }
    208. // Aufraeumen
    209. meinStift.gibFrei();
    210. meinAndererStift.gibFrei();
    211. derBildschirm.gibFrei();
    212. }
    213. }
    Display All


    Danke im Vorraus... :) ;)

    The post was edited 1 time, last by dadoc ().