TicTacToe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Also...
    Erst mal der Java-Code:

    Quellcode

    1. import sum.kern.Stift;
    2. public class TickTackToe extends EreignisAnwendung
    3. {
    4. // Bezugsobjekte
    5. Kästchen K1;
    6. Kästchen K2;
    7. Kästchen K3;
    8. Kästchen K4;
    9. Kästchen K5;
    10. Kästchen K6;
    11. Kästchen K7;
    12. Kästchen K8;
    13. Kästchen K9;
    14. Kästchen dummy;
    15. Stift stift;
    16. // Attribute
    17. private boolean Spieler;
    18. // Konstruktor
    19. public TickTackToe()
    20. {
    21. super(800,800);
    22. stift = new Stift();
    23. K1 = new Kästchen(this.bildschirm().breite()/4-25,this.bildschirm().hoehe()/4-25);
    24. K2 = new Kästchen(this.bildschirm().breite()/4*2-25,this.bildschirm().hoehe()/4-25);
    25. K3 = new Kästchen(this.bildschirm().breite()/4*3-25,this.bildschirm().hoehe()/4-25);
    26. K4 = new Kästchen(this.bildschirm().breite()/4-25,this.bildschirm().hoehe()/4*2-25);
    27. K5 = new Kästchen(this.bildschirm().breite()/4*2-25,this.bildschirm().hoehe()/4*2-25);
    28. K6 = new Kästchen(this.bildschirm().breite()/4*3-25,this.bildschirm().hoehe()/4*2-25);
    29. K7 = new Kästchen(this.bildschirm().breite()/4-25,this.bildschirm().hoehe()/4*3-25);
    30. K8 = new Kästchen(this.bildschirm().breite()/4*2-25,this.bildschirm().hoehe()/4*3-25);
    31. K9 = new Kästchen(this.bildschirm().breite()/4*3-25,this.bildschirm().hoehe()/4*3-25);
    32. Spieler = true;
    33. super.fuehreAus();
    34. }
    35. public void bearbeiteMausDruck(double pH,double pV)
    36. {
    37. if(K1.getroffen(pH,pV))
    38. {
    39. if(Spieler)
    40. {
    41. K1.kreuz();
    42. Spieler = false;
    43. }
    44. else
    45. {
    46. K1.kreis();
    47. Spieler = true;
    48. }
    49. }
    50. if(K2.getroffen(pH,pV))
    51. {
    52. if(Spieler)
    53. {
    54. K2.kreuz();
    55. Spieler = false;
    56. }
    57. else
    58. {
    59. K2.kreis();
    60. Spieler = true;
    61. }
    62. }
    63. if(K3.getroffen(pH,pV))
    64. {
    65. if(Spieler)
    66. {
    67. K3.kreuz();
    68. Spieler = false;
    69. }
    70. else
    71. {
    72. K3.kreis();
    73. Spieler = true;
    74. }
    75. }
    76. if(K4.getroffen(pH,pV))
    77. {
    78. if(Spieler)
    79. {
    80. K4.kreuz();
    81. Spieler = false;
    82. }
    83. else
    84. {
    85. K4.kreis();
    86. Spieler = true;
    87. }
    88. }
    89. if(K5.getroffen(pH,pV))
    90. {
    91. if(Spieler)
    92. {
    93. K5.kreuz();
    94. Spieler = false;
    95. }
    96. else
    97. {
    98. K5.kreis();
    99. Spieler = true;
    100. }
    101. }
    102. if(K6.getroffen(pH,pV))
    103. {
    104. if(Spieler)
    105. {
    106. K6.kreuz();
    107. Spieler = false;
    108. }
    109. else
    110. {
    111. K6.kreis();
    112. Spieler = true;
    113. }
    114. }
    115. if(K7.getroffen(pH,pV))
    116. {
    117. if(Spieler)
    118. {
    119. K7.kreuz();
    120. Spieler = false;
    121. }
    122. else
    123. {
    124. K7.kreis();
    125. Spieler = true;
    126. }
    127. }
    128. if(K8.getroffen(pH,pV))
    129. {
    130. if(Spieler)
    131. {
    132. K8.kreuz();
    133. Spieler = false;
    134. }
    135. else
    136. {
    137. K8.kreis();
    138. Spieler = true;
    139. }
    140. }
    141. if(K9.getroffen(pH,pV))
    142. {
    143. if(Spieler)
    144. {
    145. K9.kreuz();
    146. Spieler = false;
    147. }
    148. else
    149. {
    150. K9.kreis();
    151. Spieler = true;
    152. }
    153. }
    154. }
    155. public void bearbeiteMausLos(double pH,double pV){}
    156. public void bearbeiteMausDoppelKlick(double pH,double pV){}
    157. public void bearbeiteMausBewegt(double pH,double pV){}
    158. public void bearbeiteTaste(char pZeichen){}
    159. public void idle()
    160. {
    161. K1.zeichneDich();
    162. K2.zeichneDich();
    163. K3.zeichneDich();
    164. K4.zeichneDich();
    165. K5.zeichneDich();
    166. K6.zeichneDich();
    167. K7.zeichneDich();
    168. K8.zeichneDich();
    169. K9.zeichneDich();
    170. }
    171. }
    Alles anzeigen


    Es gibt also 9 Kästchen die alle beim Mausdruck überprüfen ob sie "getroffen" wurden und sich dann je nachdem wer dran ist mit Kreis oder Kreuz neu zeichnen...
    Läuft so weit auch gut, aber gibt es ne Möglichkeit zu überprüfen ob 3 in einer Reihe sind ohne das man alle möglichen Fälle auflistet :

    Quellcode

    1. If(K1.nkreis() && K2.nKreis() && K3.nkreis())
    2. {
    3. super.ende();
    4. stift.schreibeText("Kreis gewinnt");
    5. }


    Irgend ne Mathematische Gleichung oder so ?^^

    Hier noch des Kästchen:

    Quellcode

    1. import sum.kern.Stift;
    2. public class Kästchen
    3. {
    4. // Bezugsobjekte
    5. Stift S;
    6. // Attribute
    7. public boolean Kreuz;
    8. public boolean Kreis;
    9. public double zH;
    10. public double zV;
    11. // Konstruktor
    12. public Kästchen(int pH, int pV)
    13. {
    14. S = new Stift();
    15. zH = pH;
    16. zV = pV;
    17. S.bewegeBis(pH,pV);
    18. }
    19. // Dienste
    20. public void zeichneDich()
    21. {
    22. if(Kreuz)
    23. {
    24. S.zeichneRechteck(50,50);
    25. S.runter();
    26. S.bewegeBis(zH+50,zV+50);
    27. S.bewegeBis(zH,zV);
    28. }
    29. else
    30. {
    31. if(Kreis)
    32. {
    33. S.zeichneRechteck(50,50);
    34. S.bewegeBis(zH+25,zV+25);
    35. S.zeichneKreis(10);
    36. S.bewegeBis(zH,zV);
    37. }
    38. else
    39. {
    40. S.zeichneRechteck(50,50);
    41. }
    42. }
    43. }
    44. public void loescheDich()
    45. {
    46. S.radiere();
    47. this.zeichneDich();
    48. S.normal();
    49. }
    50. public boolean getroffen(double pH,double pV)
    51. {
    52. return pH > S.hPosition() && pH < S.hPosition() + 50 && pV > S.vPosition() && pV < S.vPosition() +50;
    53. }
    54. public void kreuz()
    55. {
    56. if(Kreis != true)
    57. {
    58. Kreuz = true;
    59. }
    60. }
    61. public void kreis()
    62. {
    63. if(Kreuz != true)
    64. {
    65. Kreis = true;
    66. }
    67. }
    68. public boolean nkreuz()
    69. {
    70. return Kreuz;
    71. }
    72. public boolean nkreis()
    73. {
    74. return Kreis;
    75. }
    76. public void gibFrei()
    77. {
    78. S.gibFrei();
    79. }
    80. }
    Alles anzeigen


    und die EreignisAnwendung :

    Quellcode

    1. /**
    2. * @author Philip WOltersdorf
    3. * @version 1.0
    4. */
    5. public abstract class EreignisAnwendung extends Anwendung
    6. {
    7. // Bezugsobjekte
    8. // Attribute
    9. private boolean zArbeit;
    10. private boolean MausUnten;
    11. private int zX;
    12. private int zY;
    13. // Konstruktor
    14. public EreignisAnwendung(int pB,int pH)
    15. {
    16. super(pB,pH);
    17. zArbeit = true;
    18. }
    19. // Dienste
    20. public abstract void bearbeiteMausDruck(double pH,double pV);
    21. public abstract void bearbeiteMausLos(double pH,double pV);
    22. public abstract void bearbeiteMausDoppelKlick(double pH,double pV);
    23. public abstract void bearbeiteMausBewegt(double pH,double pV);
    24. public abstract void bearbeiteTaste(char pZeichen);
    25. public abstract void idle();
    26. public void ende()
    27. {
    28. zArbeit = false;
    29. }
    30. public void fuehreAus()
    31. {
    32. do
    33. {
    34. if(this.maus().istGedrueckt() && !MausUnten)
    35. {
    36. MausUnten = true;
    37. this.bearbeiteMausDruck(this.maus().hPosition(),this.maus().vPosition());
    38. }
    39. else
    40. {
    41. if(!this.maus().istGedrueckt() && MausUnten)
    42. {
    43. MausUnten = false;
    44. this.bearbeiteMausLos(this.maus().hPosition(),this.maus().vPosition());
    45. }
    46. else
    47. {
    48. if(this.maus().doppelKlick())
    49. {
    50. this.bearbeiteMausDoppelKlick(this.maus().hPosition(),this.maus().vPosition());
    51. }
    52. else
    53. {
    54. if(this.maus().hPosition() != zX || this.maus().vPosition() != zY)
    55. {
    56. this.bearbeiteMausBewegt(this.maus().hPosition(),this.maus().vPosition());
    57. zX = this.maus().hPosition();
    58. zY = this.maus().vPosition();
    59. }
    60. else
    61. {
    62. if(this.tastatur().wurdeGedrueckt())
    63. {
    64. this.bearbeiteTaste(this.tastatur().zeichen());
    65. this.tastatur().weiter();
    66. }
    67. else
    68. {
    69. this.idle();
    70. }
    71. }
    72. }
    73. }
    74. }
    75. }while(zArbeit != false);
    76. }
    77. }
    Alles anzeigen


    Danke im Voraus =)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von möP ()

  • Etwa so ...

    Quellcode

    1. String[] spielFeld = new String[9];
    2. // Vertikal prüfen
    3. for(int i = 0; i <= 2; i++) {
    4. Ist spielFeld[i] == spielFeld[i+3] == spielFeld[i+6] ?
    5. dann spielFeld[i] + " gewinnt";
    6. }
    7. Das ganze noch für Horizontale Prüfung und die 2 Diagonalen.


    Vllt hilft dir das?!


    Gruß,
    X-Eon