Advertisement
JoshuaStrutt

TicTacToe

Jul 17th, 2015
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.util.Random;;
  4.  
  5. public class TicTacToe extends Frame {
  6.  
  7. int stones[][] = new int[9][3];
  8.  
  9. public TicTacToe(String title) {
  10. super(title);
  11. addWindowListener(new WindowAdapter() {
  12. public void windowClosing(WindowEvent evt) { dispose(); }
  13. });
  14. addMouseListener(new MyMouseListener());
  15. int frameWidth = 300;
  16. int frameHeight = 300;
  17. setSize(frameWidth, frameHeight);
  18. Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  19. int x = (d.width - getSize().width) / 2;
  20. int y = (d.height - getSize().height) / 2;
  21. setLocation(x, y);
  22. setResizable(true);
  23. setVisible(true);
  24. }
  25.  
  26.  
  27.  
  28. int fieldSize = 80;
  29. int fieldOffsetX = 30;
  30. int fieldOffsetY = 40;
  31.  
  32. int clickedField = -1;
  33. int player = 1;
  34.  
  35. public void paint(Graphics g){
  36. if (clickedField > -1 && stones[clickedField][2] == 0) {
  37. stones[clickedField][2] = player;
  38. if (player == 1) {
  39. player = 2;
  40. }
  41. else{
  42. player = 1;
  43. }
  44. clickedField = -1;
  45. }
  46. paintPlanes(g);
  47. paintStones(g);
  48. }
  49.  
  50. public void paintPlanes(Graphics g){
  51. for (int x = 0; x < 3;x++ ) {
  52. for (int y = 0; y < 3;y++ ) {
  53. int xPos = x*fieldSize+fieldOffsetX;
  54. int yPos = y*fieldSize+fieldOffsetY;
  55. g.drawRect(xPos,yPos,fieldSize,fieldSize);
  56. }
  57. }
  58. }
  59.  
  60. public void paintStones(Graphics g){
  61. for (int[] i : stones ) {
  62. int x = i[0]*fieldSize+fieldOffsetX;
  63. int y = i[1]*fieldSize+fieldOffsetY;
  64. int t = i[2];
  65. switch (t) {
  66. case 1:
  67. g.drawOval(x,y,fieldSize,fieldSize);
  68. break;
  69. case 2:
  70. g.drawLine(x,y,x+fieldSize,y+fieldSize);
  71. g.drawLine(x,y+fieldSize,x+fieldSize,y);
  72. }
  73. }
  74. }
  75.  
  76.  
  77. public class MyMouseListener extends MouseAdapter{
  78.  
  79. public void mouseClicked(MouseEvent e){
  80. int mX = e.getX();
  81. int mY = e.getY();
  82. int counter = 0;
  83. for (int x = 0; x < 3;x++ ) {
  84. for (int y = 0; y < 3;y++ ) {
  85. int xPos = x*fieldSize+fieldOffsetX;
  86. int yPos = y*fieldSize+fieldOffsetY;
  87. if (mX > xPos && mY > xPos && mX < xPos+fieldSize && mY < yPos+fieldSize) {
  88. clickedField = counter;
  89. }
  90. counter++;
  91. }
  92. }
  93. System.out.println(clickedField);
  94. repaint();
  95. }
  96.  
  97. }
  98.  
  99. /* public void fillRandom(){
  100. Random r = new Random();
  101. int counter = 0;
  102. for (int x = 0; x < 3;x++ ) {
  103. for (int y = 0; y < 3;y++ ) {
  104. stones[counter][0] = x;
  105. stones[counter][1] = y;
  106. stones[counter][2] = (int)(r.nextDouble()*3);
  107. counter++;
  108. }
  109. }
  110.  
  111. repaint();
  112. } */
  113.  
  114. // Anfang Methoden
  115.  
  116. public static void main(String[] args) {
  117. new TicTacToe("TicTacToe");
  118. } // end of main
  119.  
  120. // Ende Methoden
  121. } // end of class TicTacToe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement