۱۳۸۸ اردیبهشت ۱۹, شنبه

شیمی بازی

این نرم افزار با استفاده از یکی از سمپل های نت بینز نوشته شده که شامل پنج کلاس است!

کلاس اول:

package com.toy.anagrams.ui;

import com.toy.anagrams.lib.ChemLibrary;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import javax.swing.JFrame;

/**
* Main window of the Anagram Game application.
*/
public class Chembazi extends JFrame {

public static void main(String[] args) {
new Chembazi().setVisible(true);
}

private int wordIdx = 0;
private ChemLibrary wordLibrary;

/** Creates new form Anagrams */
public Chembazi() {
wordLibrary = ChemLibrary.getDefault();

initComponents();
getRootPane().setDefaultButton(guessButton);
scrambledWord.setText(wordLibrary.getScrambledWord(wordIdx));
pack();
guessedWord.requestFocusInWindow();
// Center in the screen
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = getSize();
setLocation(new Point((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.width) / 2));
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;

mainPanel = new javax.swing.JPanel();
scrambledLabel = new javax.swing.JLabel();
scrambledWord = new javax.swing.JTextField();
guessLabel = new javax.swing.JLabel();
guessedWord = new javax.swing.JTextField();
feedbackLabel = new javax.swing.JLabel();
buttonsPanel = new javax.swing.JPanel();
guessButton = new javax.swing.JButton();
nextTrial = new javax.swing.JButton();
mainMenu = new javax.swing.JMenuBar();
fileMenu = new javax.swing.JMenu();
aboutMenuItem = new javax.swing.JMenuItem();
exitMenuItem = new javax.swing.JMenuItem();

setTitle("شیمی بازی");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});

mainPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(12, 12, 12, 12));
mainPanel.setMinimumSize(new java.awt.Dimension(297, 200));
mainPanel.setLayout(new java.awt.GridBagLayout());

scrambledLabel.setText("نام ترکیب");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 6);
mainPanel.add(scrambledLabel, gridBagConstraints);

scrambledWord.setColumns(20);
scrambledWord.setEditable(false);
scrambledWord.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 0);
mainPanel.add(scrambledWord, gridBagConstraints);

guessLabel.setDisplayedMnemonic('Y');
guessLabel.setLabelFor(guessedWord);
guessLabel.setText("فرمول ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 6);
mainPanel.add(guessLabel, gridBagConstraints);

guessedWord.setColumns(20);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 0);
mainPanel.add(guessedWord, gridBagConstraints);

feedbackLabel.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 0);
mainPanel.add(feedbackLabel, gridBagConstraints);

buttonsPanel.setLayout(new java.awt.GridBagLayout());

guessButton.setMnemonic('G');
guessButton.setText("حدس");
guessButton.setToolTipText("Guess the scrambled word.");
guessButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
guessedWordActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
buttonsPanel.add(guessButton, gridBagConstraints);

nextTrial.setMnemonic('N');
nextTrial.setText("ترکیب جدید");
nextTrial.setToolTipText("Fetch a new word.");
nextTrial.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nextTrialActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
gridBagConstraints.weighty = 1.0;
buttonsPanel.add(nextTrial, gridBagConstraints);

gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weighty = 1.0;
mainPanel.add(buttonsPanel, gridBagConstraints);

getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);

mainMenu.setFont(new java.awt.Font("AlArabiya", 0, 13)); // NOI18N

fileMenu.setMnemonic('F');
fileMenu.setText("فایل");

aboutMenuItem.setMnemonic('A');
aboutMenuItem.setText("درباره");
aboutMenuItem.setToolTipText("About");
aboutMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
aboutMenuItemActionPerformed(evt);
}
});
fileMenu.add(aboutMenuItem);

exitMenuItem.setMnemonic('E');
exitMenuItem.setText("خروج");
exitMenuItem.setToolTipText("Quit Team, Quit!");
exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exitMenuItemActionPerformed(evt);
}
});
fileMenu.add(exitMenuItem);

mainMenu.add(fileMenu);

setJMenuBar(mainMenu);
}//


private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
new About(this).setVisible(true);
}

private void nextTrialActionPerformed(java.awt.event.ActionEvent evt) {
wordIdx = (wordIdx + 1) % wordLibrary.getSize();

feedbackLabel.setText(" ");
scrambledWord.setText(wordLibrary.getScrambledWord(wordIdx));
guessedWord.setText("");
getRootPane().setDefaultButton(guessButton);

guessedWord.requestFocusInWindow();
}

private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {
if (wordLibrary.isCorrect(wordIdx, guessedWord.getText())){
feedbackLabel.setText("درست است، بعدی!");
getRootPane().setDefaultButton(nextTrial);
} else {
feedbackLabel.setText("غلط! دوباره سعی کن!");
guessedWord.setText("");
}

guessedWord.requestFocusInWindow();
}

private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}

// Variables declaration - do not modify
private javax.swing.JMenuItem aboutMenuItem;
private javax.swing.JPanel buttonsPanel;
private javax.swing.JMenuItem exitMenuItem;
private javax.swing.JLabel feedbackLabel;
private javax.swing.JMenu fileMenu;
private javax.swing.JButton guessButton;
private javax.swing.JLabel guessLabel;
private javax.swing.JTextField guessedWord;
private javax.swing.JMenuBar mainMenu;
private javax.swing.JPanel mainPanel;
private javax.swing.JButton nextTrial;
private javax.swing.JLabel scrambledLabel;
private javax.swing.JTextField scrambledWord;
// End of variables declaration

}
۰

کلاس دوم:

package com.toy.anagrams.lib;

/**
* Implementation of the logic for the Anagram Game application.
*/
final class StaticChemLibrary extends ChemLibrary {

private static final String[] FORMULA = {
"Na2SO4",
"K2CO3",
"LiNO3",
"CaCl2",
"Ba3(PO4)2",
"MgF2",
"Al(NO2)3",
"BeCl2",
"ZnCl2",
"SO3",
"SO2",
"CO2",
"CO",
"CCl4",
"NCl3",
"NO",
"NO2",
"N2O3",
"N2O4",
"N2O5",
"Al2(CO3)3",
"PBr3",
"PBr5",
"PbO2",
"KI",
"H2SO4",
"HCl",
"HNO3",
"H3PO4",
"H2CO3",
"H2O2",
"Fe(OH)3",
"NiSO4",
"CS2",
"HNO2",
"H2SO3",
"HClO",
"HClO2",
"HClO3",
"HClO4",
"CuCl",
"CuCl2",
"AgNO3",
"NaHCO3",
"Cr2O3"};

private static final String[] PERSIAN_NAME = {
"سدیم سولفات",
"پتاسیم کربنات",
"لیتیم نیترات",
"کلسیم کلرید",
"باریم فسفات",
"منیزیم فلورید",
"آلومینیم نیتریت",
"برلیم کلرید",
"روی کلرید",
"گوگرد تری اکسید",
"گوگرد دی اکسید",
"کربن دی اکسید",
"کربن منو اکسید",
"کربن تترا کلرید",
"نیتروژن تری کلرید",
"نیتروژن منو اکسید",
"نیتروژن دی اکسید",
"دی نیتروژن تری اکسید",
"دی نیتروژن تترا اکسید",
"دی نیتروژن پنتا اکسید",
"آلومینیم کربنات",
"فسفر تری برمید",
"فسفر پنتا برمید",
"اکسید (IV) سرب",
"پتاسیم یدید",
"سولفوریک اسید",
"هیدرو کلریک اسید",
"نیتریک اسید",
"فسفریک اسید",
"کربنیک اسید",
"هیدروژن پر اکسید",
"هیدرواکسید (III) آهن",
"سولفات (II) نیکل ",
"کربن دی سولفید",
"نیترو اسید",
"سولفورو اسید",
"هیپوکلرو اسید",
"کلرو اسید",
"کلریک اسید",
"پر کلریک اسید",
"کلرید (I) مس",
"کلرید (II) مس",
"نقره نیترات",
"سدیم هیدروژن کربنات",
"اکسید (III) کروم"
};

final static ChemLibrary DEFAULT = new StaticChemLibrary();

/**
* Singleton class.
*/
private StaticChemLibrary() {
}

/**
* Gets the word at a given index.
* @param idx index of required word
* @return word at that index in its natural form
*/
public String getWord(int idx) {
return FORMULA[idx];
}

/**
* Gets the word at a given index in its scrambled form.
* @param idx index of required word
* @return word at that index in its scrambled form
*/
public String getScrambledWord(int idx) {
return PERSIAN_NAME[idx];
}

/**
* Gets the number of words in the library.
* @return the total number of plain/scrambled word pairs in the library
*/
public int getSize() {
return FORMULA.length;
}

/**
* Checks whether a user's guess for a word at the given index is correct.
* @param idx index of the word guessed
* @param userGuess the user's guess for the actual word
* @return true if the guess was correct; false otherwise
*/
public boolean isCorrect(int idx, String userGuess) {
return userGuess.equals(getWord(idx));
}

}
۰

کلاس سوم:



package com.toy.anagrams.lib;

/**
* Interface defining logic for the Anagram Game application.
*/
public abstract class ChemLibrary {
/**
* Constructor for subclasses.
*/
protected ChemLibrary() {
}

/** Getter for the default implementation of the WordLibrary.
* @return some default implementation of WordLibrary
*/
public static ChemLibrary getDefault() {
return StaticChemLibrary.DEFAULT;
}

/**
* Gets the word at a given index.
* @param idx index of required word
* @return word at that index in its natural form
*/
public abstract String getWord(int idx);

/**
* Gets the word at a given index in its scrambled form.
* @param idx index of required word
* @return word at that index in its scrambled form
*/
public abstract String getScrambledWord(int idx);

/**
* Gets the number of words in the library.
* @return the total number of plain/scrambled word pairs in the library
*/
public abstract int getSize();

/**
* Checks whether a user's guess for a word at the given index is correct.
* @param idx index of the word guessed
* @param userGuess the user's guess for the actual word
* @return true if the guess was correct; false otherwise
*/
public abstract boolean isCorrect(int idx, String userGuess);
}
۰

کلاس چهارم:





package com.toy.anagrams.lib;

import java.util.Arrays;
import junit.framework.TestCase;

/**
* Test of the functionality of {@link WordLibrary}.
*/
public class ChemLibraryTest extends TestCase {
ChemLibrary wordLibrary;

public ChemLibraryTest(String testName) {
super(testName);
}

protected void setUp() throws Exception {
wordLibrary = ChemLibrary.getDefault();
}



/**
* Test of {@link WordLibrary#isCorrect}.
*/
public void testIsCorrect() {
for (int i = 0; i < clearword =" wordLibrary.getWord(i);" scrambledword =" wordLibrary.getScrambledWord(i);" cleararray =" clearWord.toCharArray();" scrambledarray =" scrambledWord.toCharArray();">
کلاس پنجم:


package com.toy.anagrams.ui;

import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionListener;
import javax.swing.JDialog;
import javax.swing.JFrame;

/**
* About dialog of the Anagram Game application.
*/
public class About extends JDialog {

/** Creates new form About */
public About(JFrame parent) {
super(parent,true);
initComponents();
pack();
Rectangle parentBounds = parent.getBounds();
Dimension size = getSize();
// Center in the parent
int x = Math.max(0, parentBounds.x + (parentBounds.width - size.width) / 2);
int y = Math.max(0, parentBounds.y + (parentBounds.height - size.height) / 2);
setLocation(new Point(x, y));
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;

mainPanel = new javax.swing.JPanel();
copyrightTextArea = new javax.swing.JTextArea();
closeButton = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("About Anagrams");
getContentPane().setLayout(new java.awt.GridBagLayout());

mainPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(11, 11, 12, 12));
mainPanel.setLayout(new java.awt.GridBagLayout());

copyrightTextArea.setBackground(javax.swing.UIManager.getDefaults().getColor("Panel.background"));
copyrightTextArea.setColumns(25);
copyrightTextArea.setEditable(false);
copyrightTextArea.setLineWrap(true);
copyrightTextArea.setRows(8);
copyrightTextArea.setText("Created by Kian Kiani\nkiankiani1@yahoo.com\t\n09131005154\n\nSpecial thanks for \nSayesteh Alavi");
copyrightTextArea.setWrapStyleWord(true);
copyrightTextArea.setBorder(null);
copyrightTextArea.setFocusable(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(24, 0, 24, 0);
mainPanel.add(copyrightTextArea, gridBagConstraints);

closeButton.setMnemonic('C');
closeButton.setText("بستن");
closeButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
closeButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
mainPanel.add(closeButton, gridBagConstraints);

gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
getContentPane().add(mainPanel, gridBagConstraints);
}//


private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {
setVisible(false);
dispose();
}


// Variables declaration - do not modify
private javax.swing.JButton closeButton;
private javax.swing.JTextArea copyrightTextArea;
private javax.swing.JPanel mainPanel;
// End of variables declaration

}
۰

هیچ نظری موجود نیست: