Search...
FAQs
Subscribe
Pie
FAQs
Recent topics
Flagged topics
Hot topics
Best topics
Search...
Search Coderanch
Advance search
Google search
Register / Login
dylan pithia
Greenhorn
+ Follow
1
Posts
1
Threads
0
Cows
since Jan 13, 2014
Merit badge:
grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
Ranch Hand Scavenger Hunt
Number Posts (1/100)
Number Threads Started (1/100)
Number Cows Received (0/5)
Number Likes Received (0/10)
Number Likes Granted (0/20)
Set bumper stickers in profile (0/3)
Report a post to the moderators (0/1)
Edit a wiki page (0/1)
Create a post with an image (0/2)
Greenhorn Scavenger Hunt
First Post
Number Posts (1/10)
Number Threads Started (1/10)
Number Likes Received (0/3)
Number Likes Granted (0/3)
Set bumper stickers in profile (0/1)
Set signature in profile
Search for a post/thread (0/3)
Set a watch on a thread
Save thread as a bookmark
Create a post with an image (0/1)
Recent posts by dylan pithia
TicTacToe Game
Hey guys,
I trying to make a tic tac toe game without buttons. It checks if the user clicked on any of the x, y postions in any of the squared. Now actually making the game, how would I differentiate each single square?
Heres the code
import java.awt.*; import java.awt.event.*; import java.awt.geom.Line2D; import javax.swing.*; public class TicTacToe extends JPanel implements MouseListener, MouseMotionListener { private TTTSquare[] squares; public boolean playerOneTurn = true; public int xSpot, oSpot; public static void main(String[] args) { new TicTacToe(); } public TicTacToe() { squares = new TTTSquare[9]; int x = 50; int y = 110; int counter = 0; for (int i = 0; i < squares.length; i++) { counter++; squares[i] = new TTTSquare(x, y); x += 175; if (counter % 3 == 0) { y += 175; x = 50; } } setLayout(null); setBackground(Color.BLACK); addMouseListener(this); addMouseMotionListener(this); setFocusable(true); JFrame frame = new JFrame(); frame.setContentPane(this); frame.setSize(550,700); frame.setResizable(false); frame.setTitle("Tic Tac Toe"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.setLocationRelativeTo(null); } public void drawTitle(Graphics2D g2) { Font f = new Font("Stencil", Font.BOLD, 50); g2.setColor(Color.orange); g2.setFont(f); FontMetrics fm = getFontMetrics(f); int strW = fm.stringWidth("Tic Tac Toe"); g2.drawString("Tic Tac Toe", this.getWidth() / 2 - strW / 2, 50); } public void drawPlayerTurn(Graphics2D g2) { Font f = new Font("Arial Black", Font.BOLD, 20); g2.setColor(Color.white); g2.setFont(f); FontMetrics fm = getFontMetrics(f); int strW = fm.stringWidth("Player 1"); if(playerOneTurn) { g2.drawString("Player 1", this.getWidth() / 2 - strW / 2, this.getHeight() - 20); } else { g2.drawString("Player 2", this.getWidth() / 2 - strW / 2, this.getHeight() - 20); } } public void drawGrid(Graphics2D g2) { g2.draw(new Line2D.Double(this.getWidth() / 3, 75, this.getWidth() / 3, this.getHeight() - 75)); g2.draw(new Line2D.Double(this.getWidth() * 3/4 - 40, 75, this.getWidth() * 3/4 - 40, this.getHeight() - 75)); g2.draw(new Line2D.Double(25, 75 + (550 / 3), this.getWidth() - 25, 75 + (550 / 3))); g2.draw(new Line2D.Double(25, this.getHeight() * 3/4 - 70, this.getWidth() - 25, this.getHeight() * 3/4 - 70)); } public void paintComponent (Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(5)); g2.setColor(Color.RED); drawGrid(g2); drawTitle(g2); drawPlayerTurn(g2); for (int i = 0; i < squares.length; i++) { squares[i].draw(g2); } // ImageIcon o = new ImageIcon("o.png"); // g2.drawImage(o.getImage(), 50, 110, this); // // ImageIcon x = new ImageIcon("x.png"); // g2.drawImage(x.getImage(), 300, 300, this); } @Override public void mouseClicked(MouseEvent e) { for (int i = 0; i < squares.length; i++) { if (e.getX() >= squares[i].getX() && e.getX() <= squares[i].getX() + squares[i].getWidth()) { if (e.getY() >= squares[i].getY() && e.getY() <= squares[i].getY() + squares[i].getHeight()) { if(playerOneTurn) { squares[i].setImage("x"); playerOneTurn = false; } else { squares[i].setImage("o"); playerOneTurn = true; } } } } repaint(); } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseDragged(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent arg0) { // TODO Auto-generated method stub } }
import java.awt.*; import java.awt.event.*; import java.awt.geom.Line2D; import javax.swing.*; public class TicTacToe extends JPanel implements MouseListener, MouseMotionListener { private TTTSquare[] squares; public boolean playerOneTurn = true; public int xSpot, oSpot; public static void main(String[] args) { new TicTacToe(); } public TicTacToe() { squares = new TTTSquare[9]; int x = 50; int y = 110; int counter = 0; for (int i = 0; i < squares.length; i++) { counter++; squares[i] = new TTTSquare(x, y); x += 175; if (counter % 3 == 0) { y += 175; x = 50; } } setLayout(null); setBackground(Color.BLACK); addMouseListener(this); addMouseMotionListener(this); setFocusable(true); JFrame frame = new JFrame(); frame.setContentPane(this); frame.setSize(550,700); frame.setResizable(false); frame.setTitle("Tic Tac Toe"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.setLocationRelativeTo(null); } public void drawTitle(Graphics2D g2) { Font f = new Font("Stencil", Font.BOLD, 50); g2.setColor(Color.orange); g2.setFont(f); FontMetrics fm = getFontMetrics(f); int strW = fm.stringWidth("Tic Tac Toe"); g2.drawString("Tic Tac Toe", this.getWidth() / 2 - strW / 2, 50); } public void drawPlayerTurn(Graphics2D g2) { Font f = new Font("Arial Black", Font.BOLD, 20); g2.setColor(Color.white); g2.setFont(f); FontMetrics fm = getFontMetrics(f); int strW = fm.stringWidth("Player 1"); if(playerOneTurn) { g2.drawString("Player 1", this.getWidth() / 2 - strW / 2, this.getHeight() - 20); } else { g2.drawString("Player 2", this.getWidth() / 2 - strW / 2, this.getHeight() - 20); } } public void drawGrid(Graphics2D g2) { g2.draw(new Line2D.Double(this.getWidth() / 3, 75, this.getWidth() / 3, this.getHeight() - 75)); g2.draw(new Line2D.Double(this.getWidth() * 3/4 - 40, 75, this.getWidth() * 3/4 - 40, this.getHeight() - 75)); g2.draw(new Line2D.Double(25, 75 + (550 / 3), this.getWidth() - 25, 75 + (550 / 3))); g2.draw(new Line2D.Double(25, this.getHeight() * 3/4 - 70, this.getWidth() - 25, this.getHeight() * 3/4 - 70)); } public void paintComponent (Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(5)); g2.setColor(Color.RED); drawGrid(g2); drawTitle(g2); drawPlayerTurn(g2); for (int i = 0; i < squares.length; i++) { squares[i].draw(g2); } // ImageIcon o = new ImageIcon("o.png"); // g2.drawImage(o.getImage(), 50, 110, this); // // ImageIcon x = new ImageIcon("x.png"); // g2.drawImage(x.getImage(), 300, 300, this); } @Override public void mouseClicked(MouseEvent e) { for (int i = 0; i < squares.length; i++) { if (e.getX() >= squares[i].getX() && e.getX() <= squares[i].getX() + squares[i].getWidth()) { if (e.getY() >= squares[i].getY() && e.getY() <= squares[i].getY() + squares[i].getHeight()) { if(playerOneTurn) { squares[i].setImage("x"); playerOneTurn = false; } else { squares[i].setImage("o"); playerOneTurn = true; } } } } repaint(); } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseDragged(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent arg0) { // TODO Auto-generated method stub } }
show more
10 years ago
Game Development