做個基本練習,怎樣想猜數字應該是蠻適合的。


JAVA-猜數字  


---------------------------------------------------------------------------------------------

 

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class twobutton extends JFrame {

/**
* @param args
*/

private JButton start = null;
private JButton again = null;
private JButton ans = null;
private JTextField input1 = null;
private JLabel lab_input1 =null;
private JLabel lab_input2 =null;
private JLabel lab_msg =null;
private JPanel panel1=null;
private JPanel panel2=null;

private int a1=0,a2=0,a3=0,a4=0;
private String Str1=null;

public twobutton(){

framesize();
reStart();
}

private void framesize(){

this.setSize(400, 220);
this.setResizable(false);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setContentPane(getJContentPane());
this.setLocation(screenSize.width / 2 - this.getWidth() / 2,
screenSize.height / 2 - this.getHeight() / 2);//在螢幕哪個位置顯示
this.setTitle("猜數字遊戲");
this.setVisible(true);


}

private JPanel getJContentPane() {
if (panel1 == null) {
panel1 = new JPanel();
panel1.setLayout(null);
panel1.add(getInput1(), null);

panel1.add(lab_input1(), null);
panel1.add(lab_input2(), null);
panel1.add(lab_output(), null);
panel1.add(getstart(), null);
panel1.add(getagain(), null);
panel1.add(getans(), null);

}
return panel1;
}

public void reStart() {
this.lab_input1.setText("<html>請輸入4個不同的數字<br/>(不包含0)</html>");
this.lab_input2.setText("<html>遊戲規則:如數字相同且位置相同則為A,數字相同位置不同則為B,<br/>均不同則不顯示</html>");
this.lab_msg.setText("");
this.input1.setText("");

for (int f=0;f<=2 ;f++ )
{
//產生亂數
double a = Math.random()*10;
int m1 = (int)a;
double b = Math.random()*10;
int m2 = (int)b;
double c = Math.random()*10;
int m3 = (int)c;
double d = Math.random()*10;
int m4 = (int)d;
if (m1==m2||m1==m3||m1==m4||m2==m3||m2==m4||m3==m4)
{
f=0;
}else{
this.a1=m1;
this.a2=m2;
this.a3=m3;
this.a4=m4;
}

}



this.getInput1().requestFocus();


}

private JTextField getInput1() {
if (input1 == null) {

input1 = new JTextField();
input1.setBounds(new Rectangle(140, 10, 100, 20));
input1.setFont(new Font("Dialog", Font.PLAIN, 14));
input1.setHorizontalAlignment(JTextField.CENTER);
input1.setText("");
}
return input1;
}


private JLabel lab_input1(){

if (lab_input1 == null) {
lab_input1 = new JLabel();
lab_input1.setBounds(new Rectangle(2, 2, 200, 35));
lab_input1.setFont(new Font("Dialog", Font.PLAIN, 12));

lab_input1.setText("");
}
return lab_input1;

}

private JLabel lab_input2(){

if (lab_input2 == null) {
lab_input2 = new JLabel();
lab_input2.setBounds(new Rectangle(2, 140, 400, 35));
lab_input2.setFont(new Font("Dialog", Font.PLAIN, 12));

lab_input2.setText("");
}
return lab_input2;

}

private JLabel lab_output(){

if (lab_msg == null) {
lab_msg = new JLabel();
lab_msg.setBounds(new Rectangle(110, 50, 400, 35));
lab_msg.setFont(new Font("Dialog", Font.PLAIN, 14));

}
return lab_msg;

}

private JButton getstart() {
if (start == null) {
start = new JButton();
start.setBounds(new Rectangle(260, 10, 80, 25));
start.setText("我猜");
start.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
twobutton frame = ((twobutton) ((JButton) e.getSource())
.getTopLevelAncestor());
frame.domath();
}
});
}
return start;
}

private JButton getagain() {
if (again == null) {
again = new JButton();
again.setBounds(new Rectangle(11, 92, 80, 36));
again.setText("again");

again.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {
twobutton frame = ((twobutton) ((JButton) e.getSource())
.getTopLevelAncestor());
frame.reStart();
}
}
);
}
return again;

}

private JButton getans() {
if (ans == null) {
ans = new JButton();
ans.setBounds(new Rectangle(110, 92, 80, 36));
ans.setText("ANS");

ans.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {
twobutton frame = ((twobutton) ((JButton) e.getSource())
.getTopLevelAncestor());
frame.doans();
}
}
);
}
return ans;

}

public void doans(){

if(this.a1==0||this.a2==0||this.a3==0||this.a4==0){

return;
}else{
lab_msg.setText(""+this.a1+this.a2+this.a3+this.a4);

this.getInput1().setText("");
this.getInput1().requestFocus();}

}

 


private void domath(){

String Str1=new String();
int e=0;


for (int z=0;z<=4 ;z++)
{
try {
e = Integer.parseInt(this.getInput1().getText());
Str1=Integer.toString(e);
} catch (Exception ex) { 
lab_msg.setText("你輸入的不是數字,請重新輸入!!");
return;
}



if(z==0)//先確認是否符合4個數字的輸入 
{




int len = Str1.length();//取得字串長度
if (len<4||len>4)//防呆;輸入非4個數字時
{
lab_msg.setText("你輸入的數字,不是四位數,請重新輸入!!");
return;
}

}


int e1 =e/1000;
int e2 =e%1000/100;
int e3 =e%100/10;
int e4 =e%10;
int y=z=0;

if(e1==e2||e2==e3||e1==e3||e1==e4||e2==e4||e3==e4){

lab_msg.setText("你輸入相同數字,請重新輸入!!");
return;
}

if (e1==a1)//判斷幾A幾B
{
z=z+1;
}
else if (e1==a2 || e1==a3 || e1==a4)
{
y=y+1;
}
if (e2==a2)
{
z=z+1;
}
else if (e2==a1 || e2==a3 || e2==a4)
{
y=y+1;
}
if (e3==a3)
{
z=z+1;
}
else if (e3==a1 || e3==a2 ||e3==a4)
{
y=y+1;
}
if (e4==a4)
{
z=z+1;
}
else if (e4==a1 || e4==a2 || e4==a3)
{
y=y+1;
}
if(z==4){
lab_msg.setText("恭喜你答對了");
}else{
lab_msg.setText("電腦提示: "+z+"A"+y+"B");
}
break;

}
this.getInput1().setText("");
this.getInput1().requestFocus();
}




public static void main(String[] args) {
// TODO Auto-generated method stub

new twobutton();

}

}

 

arrow
arrow
    全站熱搜

    joy20050701 發表在 痞客邦 留言(1) 人氣()