Offtopic topic #7

Gestart doorRik4.447 reacties12.115 weergaven

4.448 berichten · pagina 34 van 297

Berichten
15.303
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nouja, het was maar als voorbeeld.emo
Wat een genot vandaag, kan niet wachten tot volgend jaar:
Spoiler tonen
Afbeelding
emo
0
Berichten
9.953
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Wow, ik leer veel van deze source:
Spoiler tonen
/*
    Title: Tic-Tac-Toe Game
    Created: October 5, 2008
    Last Edited: pending...
    Author: Blmaster
    Changes:
        See Below...
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

public class TicTacToe implements ActionListener    {
    final String VERSION = "1.0";
//Setting up ALL the variables
    JFrame window = new JFrame("Tic-Tac-Toe " + VERSION);
    
    JMenuBar mnuMain = new JMenuBar();
    JMenuItem     mnuNewGame = new JMenuItem("New Game"),    
                    mnuInstruction = new JMenuItem("Instructions"),
                    mnuExit = new JMenuItem("Exit"), 
                    mnuAbout = new JMenuItem("About");
    
    JButton     btn1v1 = new JButton("Player vs Player"),
                btn1vCPU = new JButton("Player vs CPU"),
                btnBack = new JButton("<--back");
    JButton btnEmpty[] = new JButton[10];
    
    JPanel     pnlNewGame = new JPanel(),
                pnlNorth = new JPanel(),
                pnlSouth = new JPanel(),
                pnlTop = new JPanel(),
                pnlBottom = new JPanel(),
                pnlPlayingField = new JPanel();
    JLabel lblTitle = new JLabel("Tic-Tac-Toe");
    JTextArea txtMessage = new JTextArea();
    
    final int winCombo[][] = new int[][]    {
        {1, 2, 3},             {1, 4, 7},         {1, 5, 9},
        {4, 5, 6},             {2, 5, 8},         {3, 5, 7},
        {7, 8, 9},             {3, 6, 9}
/*Horizontal Wins*/    /*Vertical Wins*/ /*Diagonal Wins*/
    };
    final int X = 412, Y = 268, color = 190;
    boolean inGame = false;
    boolean win = false;
    boolean btnEmptyClicked = false;
    String message;
    int turn = 1;
    int wonNumber1 = 1, wonNumber2 = 1, wonNumber3 = 1;
    

    public TicTacToe()    {    //Setting game properties and layout and sytle...
    //Setting window properties:
        window.setSize(X, Y);
        window.setLocation(450, 260);
        window.setResizable(false);
        window.setLayout(new BorderLayout());
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
    //Setting Panel layouts and properties
        pnlNewGame.setLayout(new GridLayout(2, 1, 2, 10));
        pnlNorth.setLayout(new FlowLayout(FlowLayout.CENTER));
        pnlSouth.setLayout(new FlowLayout(FlowLayout.CENTER));
        
        pnlNorth.setBackground(new Color(color-20, color-20, color-20));
        pnlSouth.setBackground(new Color(color, color, color));
        
        pnlTop.setBackground(new Color(color, color, color));
        pnlBottom.setBackground(new Color(color, color, color));
        
        pnlTop.setLayout(new FlowLayout(FlowLayout.CENTER));
        pnlBottom.setLayout(new FlowLayout(FlowLayout.CENTER));
        pnlNewGame.setBackground(Color.blue);
        
    //Adding menu items to menu bar
        mnuMain.add(mnuNewGame);
        mnuMain.add(mnuInstruction);
        mnuMain.add(mnuAbout);
        mnuMain.add(mnuExit);//---->Menu Bar Complete
        
    //Adding buttons to NewGame panel
        pnlNewGame.add(btn1v1);
        pnlNewGame.add(btn1vCPU);
        
    //Adding Action Listener to all the Buttons and Menu Items
        mnuNewGame.addActionListener(this);
        mnuExit.addActionListener(this);
        mnuInstruction.addActionListener(this);
        mnuAbout.addActionListener(this);
        btn1v1.addActionListener(this);
        btn1vCPU.addActionListener(this);
        btnBack.addActionListener(this);
    
    //Setting up the playing field
        pnlPlayingField.setLayout(new GridLayout(3, 3, 2, 2));
        pnlPlayingField.setBackground(Color.black);
        for(int i=1; i<=9; i++)    {
            btnEmpty[i] = new JButton();
            btnEmpty[i].setBackground(new Color(220, 220, 220));
            btnEmpty[i].addActionListener(this);
            pnlPlayingField.add(btnEmpty[i]);
        }

    //Adding everything needed to pnlNorth and pnlSouth
        pnlNorth.add(mnuMain);
        pnlSouth.add(lblTitle);
        
    //Adding to window and Showing window
        window.add(pnlNorth, BorderLayout.NORTH);
        window.add(pnlSouth, BorderLayout.CENTER);
        window.setVisible(true);
    }


//-------------------START OF ACTION PERFORMED CLASS-------------------------//    
    public void actionPerformed(ActionEvent click)    {
        Object source = click.getSource();
        for(int i=1; i<=9; i++)    {
            if(source == btnEmpty[i] && turn <    10)    {
                btnEmptyClicked = true;
                if(!(turn % 2 == 0))
                    btnEmpty[i].setText("X");
                else
                    btnEmpty[i].setText("O");
                btnEmpty[i].setEnabled(false);
                pnlPlayingField.requestFocus();
                turn++;
            }
        }
        if(btnEmptyClicked)    {
            checkWin();
            btnEmptyClicked = false;
        }
        if(source == mnuNewGame)    {
            clearPanelSouth();
            pnlSouth.setLayout(new GridLayout(2, 1, 2, 5));
            pnlTop.add(pnlNewGame);
            pnlBottom.add(btnBack);
            pnlSouth.add(pnlTop);
            pnlSouth.add(pnlBottom);
            
        }
        else if(source == btn1v1)    {
            if(inGame)    {
                int option = JOptionPane.showConfirmDialog(null, "If you start a new game," +
                     "your current game will be lost..." + "n" +
                    "Are you sure you want to continue?", 
                    "Quit Game?" ,JOptionPane.YES_NO_OPTION);
                if(option == JOptionPane.YES_OPTION)    {
                    inGame = false;
                }
            }
            if(!inGame)    {
                btnEmpty[wonNumber1].setBackground(new Color(220, 220, 220));
                btnEmpty[wonNumber2].setBackground(new Color(220, 220, 220));
                btnEmpty[wonNumber3].setBackground(new Color(220, 220, 220));
                turn = 1;
                for(int i=1; i<10; i++)    {
                    btnEmpty[i].setText("");
                    btnEmpty[i].setEnabled(true);
                }
                win = false;
                showGame();
                
            }
        }
        else if(source == btn1vCPU)    {
            JOptionPane.showMessageDialog(null, "Coming Soon!!");
        }
        else if(source == mnuExit)    {
            int option = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit?", 
            "Exit Game" ,JOptionPane.YES_NO_OPTION);
            if(option == JOptionPane.YES_OPTION)
                System.exit(0);
        }
        else if(source == mnuInstruction || source == mnuAbout)    {
            clearPanelSouth();
            String message = "";
            txtMessage.setBackground(new Color(color, color, color));
            if(source == mnuInstruction)    {
                message =     "Instructions:nn" +
                                "Your goal is to be the first player to get 3 Xs or Os in an" +
                                "row. (horizontally, diagonally, or vertically)";
            } else    {
                message =     "About:nn" +
                                "Title: Tic-Tac-Toen" +
                                "Author: Blmastern" +
                                "Version: " + VERSION + "n";
            }
            txtMessage.setEditable(false);
            txtMessage.setText(message);
            pnlSouth.setLayout(new GridLayout(2, 1, 2, 5));
            pnlTop.add(txtMessage);
            pnlBottom.add(btnBack);
            pnlSouth.add(pnlTop);
            pnlSouth.add(pnlBottom);
        }
        else if(source == btnBack)    {
            if(inGame)
                showGame();
            else    {
                clearPanelSouth();
                pnlSouth.setLayout(new FlowLayout(FlowLayout.CENTER));
                pnlNorth.setVisible(true);
                pnlSouth.add(lblTitle);
            }
        }
        pnlSouth.setVisible(false);
        pnlSouth.setVisible(true);
    }
//-------------------END OF ACTION PERFORMED CLASS-------------------------//


/*
        ----------------------------------
        Start of all the other methods.    |
        ----------------------------------
*/
    public void showGame()    {    //    Shows the Playing Field
                                        //    *IMPORTANT*- Does not start out brand new (meaning just shows what it had before)
        clearPanelSouth();
        inGame = true;
        pnlSouth.setLayout(new BorderLayout());
        pnlSouth.add(pnlPlayingField, BorderLayout.CENTER);
        pnlPlayingField.requestFocus();
    }
    
    public void checkWin()    {    //    checks if there are 3 symbols in a row vertically, diagonally, or horizontally.
                                        //    then shows a message and disables buttons.
        for(int i=0; i<7; i++)    {
            if(
                    !btnEmpty[winCombo[i][0]].getText().equals("") &&
                    btnEmpty[winCombo[i][0]].getText().equals(btnEmpty[winCombo[i][1]].getText()) &&
                    //                                if {1 == 2 && 2 == 3}
                    btnEmpty[winCombo[i][1]].getText().equals(btnEmpty[winCombo[i][2]].getText())
                    /*
                        The way this checks the if someone won is:
                        First: it checks if the btnEmpty[x] is not equal to an empty string-    x being the array number 
                            inside the multi-dementional array winCombo[checks inside each of the 7 sets][the first number]
                        Secong: it checks if btnEmpty[x] is equal to btnEmpty[y]- x being winCombo[each set][the first number]
                            y being winCombo[each set the same as x][the second number] (So basically checks if the first and
                            second number in each set is equal to each other)
                        Third: it checks if btnEmtpy[y] is eual to btnEmpty[z]- y being the same y as last time and z being
                            winCombo[each set as y][the third number]
                        Conclusion:    So basically it checks if it is equal to the btnEmpty is equal to each set of numbers
                    */
                )    {
                win = true;
                wonNumber1 = winCombo[i][0];
                wonNumber2 = winCombo[i][1];
                wonNumber3 = winCombo[i][2];
                btnEmpty[wonNumber1].setBackground(Color.white);
                btnEmpty[wonNumber2].setBackground(Color.white);
                btnEmpty[wonNumber3].setBackground(Color.white);
                break;
            }
        }
        if(win || (!win && turn>9))    {
            if(win)    {
                if(turn % 2 == 0)
                    message = "X has won!";
                else    
                    message = "O has won!";
                win = false;
            }    else if(!win && turn>9)    {
                message = "Both players have tied!nBetter luck next time.";
            }
                JOptionPane.showMessageDialog(null, message);
            for(int i=1; i<=9; i++)    {
                btnEmpty[i].setEnabled(false);
            }
        }
    }
    
    public void clearPanelSouth()    {    //Removes all the possible panels 
                                                //that pnlSouth, pnlTop, pnlBottom
                                                //could have.    
        pnlSouth.remove(lblTitle);
        pnlSouth.remove(pnlTop);
        pnlSouth.remove(pnlBottom);
        pnlSouth.remove(pnlPlayingField);
        pnlTop.remove(pnlNewGame);
        pnlTop.remove(txtMessage);
        pnlBottom.remove(btnBack);
    }
    
    public static void main(String[] args)    {
        new TicTacToe();//    Calling the class construtor.
    }
}

/*
    Changes:
        1.0- changes below: Stable
            0.9- added back button, added comments.
            0.8- added dynamic win message.
            0.7- added game function- game playable.
            0.6- changed menu layout.
            0.5- basic functions with menu and nice GUI.
*/
0
Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ff vraagje aan de mods/beheerders
Hoeveel webhost zijn er ongeveer die niet gebruikt worden? (in procenten is ook goed)
0
Berichten
803
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Freestyle schreef:
Ff vraagje aan de mods/beheerders
Hoeveel webhost zijn er ongeveer die niet gebruikt worden? (in procenten is ook goed)
daar ben ik eigenlijk ook wel benieuwd naar!
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Jaa fijn, op msn een gesprek over trekken.. Moet gezond zijn emo
0
Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Basaapjes schreef:
Jaa fijn, op msn een gesprek over trekken.. Moet gezond zijn emo
Touwtje trekken?

@Ssander: Inddhypocrite
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Freestyle schreef:
Eerdere citaten tonen
Basaapjes schreef:
Jaa fijn, op msn een gesprek over trekken.. Moet gezond zijn emo
Touwtje trekken?

@Ssander: Inddhypocrite
Je snapt wat ik bedoel emo(Af)trekken
0
Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoezo af dan? Ik heb het een groep mensen en een andere groep mensen wie het sterksten is wint. (het midden van het touw moet over een bepaald punt heen)
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Kijk me edit smile
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Freestyle schreef:
Ff vraagje aan de mods/beheerders
Hoeveel webhost zijn er ongeveer die niet gebruikt worden? (in procenten is ook goed)

Er zullen er vast wel een aantal zijn maar we weten dit zelf ook niet precies. En al zouden we het weten: wat hebben jullie er aan om het te weten?
0
Tgrm

Lid

Berichten
2.133
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Luukvdo schreef:
Eerdere citaten tonen
Freestyle schreef:
Ff vraagje aan de mods/beheerders
Hoeveel webhost zijn er ongeveer die niet gebruikt worden? (in procenten is ook goed)

Er zullen er vast wel een aantal zijn maar we weten dit zelf ook niet precies. En al zouden we het weten: wat hebben jullie er aan om het te weten?
Je zou ze gratis weg kunnen geven schater
Grapje biggrin
0
Berichten
21.633
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Tuurlijk niet, je hebt er eenmaal voor betaald
0
Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Luukvdo schreef:
Eerdere citaten tonen
Freestyle schreef:
Ff vraagje aan de mods/beheerders
Hoeveel webhost zijn er ongeveer die niet gebruikt worden? (in procenten is ook goed)

Er zullen er vast wel een aantal zijn maar we weten dit zelf ook niet precies. En al zouden we het weten: wat hebben jullie er aan om het te weten?
Was nieuwschierig. Daarom vraag ik het ook hier.

En je kan het moeilijk precies weten. Maar je kan wel het data verkeer zien. En daar kan je wel een conclusie uit trekken (is natuurlijk niet in alle gevallen goed)
0
Berichten
21.633
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Juist emo
Maargoed, ik ga slapen
0
Berichten
1.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
deze tekst blijft leuk:

Quote:
Sinds april 2010 wordt hardrock, heavy metal en Punk door Amerikaanse elitetroepen in Afghanistan gebruikt als psychologisch wapen tegen de Taliban. De muziek van onder andere Metallica, Deicide en The Offspring is keihard in de wijde omgeving te horen om de Taliban te irriteren en op te jutten. De inwoners in de omgeving van Marjah, in de provincie Helmand, klagen over de harde muziek. De Amerikanen hopen dat de inwoners van Marjah zich tegen de Taliban zullen keren. Muziek van Metallica werd al eerder gebruikt om gevangenen in Irak te martelen.

link naar bron (wikipedia)
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren