Cows and
Bulls Game
Author: Dheeraj Kota
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; class prog5 extends JFrame implements ActionListener { private String s; private boolean q1=false,q2; private int a=0,b,cows=0,bulls; private int w=0; private int q[]=new int [4]; private int e[]=new int [4]; private static final String NEWLINE = System.getProperty("line.separator"); private JMenuBar menuBar; private JMenu fileMenu; private JMenu helpMenu; private JLabel won; private JLabel lost; private JTextArea textArea; private JScrollPane scrollPane; private JTextField inputLine; private JButton guess; private JButton resign; private JButton clear; private Container con; private int i=0; private int wonCount; private int lostCount; private int number; private int chances; public static void main(String args[]) { prog5 a = new prog5(); a.setVisible(true); } public void actionPerformed(ActionEvent event) { if(event.getSource() instanceof JButton) { JButton eventButton = (JButton) event.getSource(); if(eventButton.getText() == "Guess") // if(inputLine.getText()!=null) // b=Integer.parseInt(s);) guess(); else if(eventButton.getText() == "Clear") clearTextArea(); else if(eventButton.getText() == "Resign") resign(); } if(event.getSource() instanceof JTextField) { // if(inputLine.getText()!=null) guess(); } if(event.getSource() instanceof JMenuItem) { String command = event.getActionCommand(); if (command == "New Game") resign(); else if(command == "Exit") System.exit(0); else if(command == "Instructions") { Instructions a = new Instructions(); a.setVisible(true); } else if(command == "Clear stats.") clearStats(); else if(command == "About") JOptionPane.showMessageDialog(null, "You are playing Cows and bull game Designed by Dheeraj Kota."); } } private void clearStats() { int choice=JOptionPane.showConfirmDialog(this,"Are you sure you want to clear stats."); if(choice == JOptionPane.YES_OPTION) { wonCount=0; lostCount=0; won.setText("Won : " + wonCount); lost.setText("Lost : " + lostCount); } } private void guess() { if(i ==0) { do { q1=true; a=(int)(Math.floor(Math.random()*9000)+1000); s=Integer.toString(a); for(int i=0;i<4;i++) { e[i]=Integer.parseInt(s.substring(i,i+1)); } for(int i=0;i<4;i++) for(int k=i+1;k<4;k++) { if(e[i]==e[k]) { q2=false; //continue; q1=q1&q2; } else { q2=true; q1=q1&q2; } } }while(!q1); } if(i<10) { cows=0; bulls=0; s=inputLine.getText(); b=Integer.parseInt(s); w=0; while(w<4) { q[w]=Integer.parseInt(s.substring(w,w+1)); w++; } for(int y=0;y<4;y++) for(int t=0;t<4;t++) { if(e[y]==q[t] && y==t) { cows=cows+1; } if(e[y]==q[t] && y!=t) { bulls=bulls+1; } } textArea.append(s+"\t"+"cows"+cows+"\t"+"Bulls"+bulls+"\t"+"Try"+(i+1)+NEWLINE); i++; if(cows==4) { textArea.append("U Won"); wonCount++; won.setText("Won : " + wonCount); i=0; } } if(cows!=4 && i>9) { textArea.append(NEWLINE+a); //System.out.println(a); textArea.append(NEWLINE+"Sorry u lost"+NEWLINE); lostCount++; lost.setText("Lost : " + lostCount); i=0; } } private void clearTextArea() { inputLine.setText(""); textArea.setText(""); textArea.append("Try to guess the number." + NEWLINE); textArea.append("You have " + (10-i) + " chances left."+NEWLINE); } private void resign() { textArea.append("You resigned." + NEWLINE); textArea.append("The number was : " + a + NEWLINE); textArea.append(NEWLINE); textArea.append("Try to guess another number." + NEWLINE); inputLine.setText(""); //number = randomNumber(); i = 0; lostCount++; lost.setText("Lost : " + lostCount); } public prog5() { setSize(426,600); setLocation(100,100); setTitle("Cows and Bulls Game"); setDefaultCloseOperation(EXIT_ON_CLOSE); setResizable(false); con = getContentPane(); con.setLayout(null); menuBar = new JMenuBar(); createFileMenu(); createHelpMenu(); setJMenuBar(menuBar); createWonLabels(); createLostLabels(); createTextArea(); createInputLine(); createButtons(); lostCount=0; wonCount=0; chances=5; textArea.append("Try to guess a secret number." + NEWLINE); textArea.append(NEWLINE); } private void createButtons() { guess = new JButton("Guess"); guess.setBounds(10,482,100,40); con.add(guess); guess.addActionListener(this); resign = new JButton("Resign"); resign.setBounds(160,482,100,40); con.add(resign); resign.addActionListener(this); clear = new JButton("Clear"); clear.setBounds(310,482,100,40); con.add(clear); clear.addActionListener(this); } private void createInputLine() { inputLine = new JTextField(); inputLine.setBounds(10,432,400,40); con.add(inputLine); inputLine.addActionListener(this); } private void createTextArea() { textArea = new JTextArea(); textArea.setBounds(10,122,400,300); textArea.setBorder(BorderFactory.createLineBorder(Color.red)); textArea.setEditable(false); scrollPane = new JScrollPane(textArea); scrollPane.setBounds(10,122,400,300); con.add(scrollPane); } private void createLostLabels() { lost = new JLabel("Lost : 0"); lost.setBounds(304,10,100,102); con.add(lost); } private void createWonLabels() { won = new JLabel("Won : 0"); won.setBounds(102,10,100,102); con.add(won); } private void createFileMenu() { fileMenu = new JMenu("File"); JMenuItem item; item = new JMenuItem("New Game"); item.addActionListener(this); fileMenu.add(item); item = new JMenuItem("Clear stats."); item.addActionListener(this); fileMenu.add(item); fileMenu.addSeparator(); item = new JMenuItem("Exit"); item.addActionListener(this); fileMenu.add(item); menuBar.add(fileMenu); } private void createHelpMenu() { helpMenu = new JMenu("Help"); JMenuItem item; item = new JMenuItem("Instructions"); item.addActionListener(this); helpMenu.add(item); helpMenu.addSeparator(); item = new JMenuItem("About"); item.addActionListener(this); helpMenu.add(item); menuBar.add(helpMenu); } } class Instructions extends JFrame implements ActionListener { private static final String NEWLINE = System.getProperty("line.separator"); JTextArea textArea; JButton ok = new JButton("Ok"); Instructions() { setTitle("Instructions"); setLocation(200,200); setSize(450,270); Container con = getContentPane(); con.setLayout(null); setResizable(false); textArea = new JTextArea(); textArea.setBounds(10,10,420,165); textArea.setEditable(false); textArea.setBorder( BorderFactory.createTitledBorder("Instructions")); con.add(textArea); setDefaultCloseOperation(DISPOSE_ON_CLOSE); textArea.append("1. The program will think a 4 digit random number with out repitition." + NEWLINE); textArea.append(NEWLINE); textArea.append("2. You have ten chances to get that number." + NEWLINE); textArea.append(NEWLINE); textArea.append("3. The program will say there is a bull if any digit of u'r guessed number"+NEWLINE+"equals the digit in the random number generated in a different place" + NEWLINE + " Cow if the digit is at the same place. " + NEWLINE); textArea.append(NEWLINE); textArea.append("4. You can start a new game at any time if you wish to." + NEWLINE); textArea.append(NEWLINE); ok = new JButton("Ok"); ok.setBounds(160,185,100,40); con.add(ok); ok.addActionListener(this); } public void actionPerformed(ActionEvent event) { dispose(); } } Related:
Java Certification, Programming, JavaBean and Object Oriented Reference Books Return to : Java Programming Hints and Tips All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
|