java猜数字代码包含猜的次数_谁能给我一个猜数字游戏的源代码4个数字猜十次的规格...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

yizhe9898

2014.01.17

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:45%    等级:12

已帮助:6920人

//java版

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import javax.swing.event.CaretEvent;

import javax.swing.event.CaretListener;

public class Guess extends JFrame{

private int count;

private String rs="";

private JTextField trs;

private JTextField tinput;

private JTextArea ta;

private int a;

private int b;

private JLabel msg;

public static void main(String[] args) {

new Guess();

}

public Guess(){

initMenu();

JLabel l1=new JLabel(" 最终结果 ");

trs=new JTextField(5);

trs.setEditable(false);

trs.setEnabled(false);

JLabel l2=new JLabel("请输入数字");

tinput=new JTextField(5);

tinput.setEditable(false);

ta=new JTextArea(12,30);

ta.setEditable(false);

final JButton ok=new JButton("OK");

ok.setEnabled(false);

JPanel pa=new JPanel();

add(pa,"Center");

pa.add(l1);

pa.add(trs);

pa.add(l2);

pa.add(tinput);

tinput.addCaretListener(new CaretListener(){

public void caretUpdate(CaretEvent e) {

if(validate_input())

ok.setEnabled(true);

else

ok.setEnabled(false);

}

});

tinput.addKeyListener(new KeyListener(){

public void keyPressed(KeyEvent e) {

if(e.getKeyCode() == KeyEvent.VK_ENTER)

ok.doClick();

}

public void keyReleased(KeyEvent arg0) {

// TODO Auto-generated method stub

}

public void keyTyped(KeyEvent arg0) {

// TODO Auto-generated method stub

}

});

pa.add(ok);

pa.add(ta);

msg=new JLabel("请点击菜单开始游戏");

pa.add(msg);

ok.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

setAB();

count++;

ta.setText(ta.getText()+"第"+count+"次尝试:"+tinput.getText()+" >>>>>>>>> "+a+"A"+b+"B\n");

tinput.setText("");

if(count==10){

JOptionPane.showMessageDialog(null, "GAME OVER");

tinput.setEditable(false);

msg.setText("请点击菜单开始游戏");

trs.setText(rs);

rs="";

}

if(a==4){

JOptionPane.showMessageDialog(null, "YOU WIN");

tinput.setEditable(false);

msg.setText("请点击菜单开始游戏");

trs.setText(rs);

rs="";

}

a=0;b=0;

}

});

setSize(350,400);

setLocation(500,300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

public void initMenu(){

JMenuBar mb=new JMenuBar();

JMenu m=new JMenu("功能");

mb.add(m);

JMenuItem mi1=new JMenuItem("开始游戏");

JMenuItem mi2=new JMenuItem("退出");

m.add(mi1);

m.add(mi2);

mi1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

begin();

}

});

mi2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

dispose();

}

});

mb.setVisible(true);

add(mb,"North");

}

public void begin(){

for(int i=0;rs.length()<4;i++){

int ran=(int)(Math.random()*10);

if(!rs.contains(String.valueOf(ran)))

rs+=String.valueOf(ran);

}

trs.setText("****");

tinput.setEditable(true);

count=0;

ta.setText(null);

msg.setText(null);

}

public boolean validate_input(){

String input=tinput.getText();

return input.matches("\\d{4}");

}

public void setAB(){

String input=tinput.getText();

for(int i=0;i<4;i++){

if(rs.charAt(i)==input.charAt(i))

a++;

}

String flag="";

for(int i=0;i<4;i++){

for(int j=0;j<4;j++)

if(rs.charAt(i)==input.charAt(j) &&!flag.contains(input.substring(j,j+1))){

b++;

flag+=input.substring(j,j+1);

}

}

b-=a;

}

}

01分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值