當前位置:編程學習大全網 - 編程語言 - java猜數字遊戲代碼

java猜數字遊戲代碼

import javax.swing.UIManager;

public class MainClass

{

public MainClass()

{

}

public static void main(String args[])

{

try

{

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

}

catch (Exception exception) { }

new NumGuessing();

}

}

import java.util.ArrayList;

public class Methods

{

public Methods()

{

}

public static int[] RandomNum()

{

int guessNum[] = new int[4];

ArrayList Temp = new ArrayList();

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

guessNum[i] = -1;

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

{

do

{

float tempNum = (float)Math.random() * 10F;

if ((double)tempNum >= 9.5D)

guessNum[i] = 0;

else

guessNum[i] = Math.round(tempNum);

} while (Temp.contains(Integer.valueOf(guessNum[i])));

Temp.add(Integer.valueOf(guessNum[i]));

}

return guessNum;

}

public static boolean CheckIsFourNum(String enterString)

{

boolean IsFourNum = true;

try

{

Integer.valueOf(enterString);

}

catch (NumberFormatException e)

{

IsFourNum = false;

}

if (enterString.length() != 4)

IsFourNum = false;

return IsFourNum;

}

public static String GetResult(int Num[], String enterString)

{

String resultString = "";

int rightInAll = 0;

int rightOnlyInNum = 0;

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

{

if (Num[3 - i] == Integer.valueOf(enterString.substring(i, i + 1)).intValue())

rightInAll++;

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

if (Num[i] == Integer.valueOf(enterString.substring(j, j + 1)).intValue())

rightOnlyInNum++;

}

resultString = (new StringBuilder(String.valueOf(rightInAll))).append("A").append(rightOnlyInNum).append("B").toString();

return resultString;

}

public static boolean IsGuessed(String guessString, String guessedStrings[])

{

boolean isGuessed = false;

for (int i = 0; i < guessedStrings.length; i++)

if (guessString.equals(guessedStrings[i]))

isGuessed = true;

return isGuessed;

}

public static boolean HasSameNum(String guessString)

{

boolean hasSameNum = false;

for (int i = 0; i < guessString.length(); i++)

{

for (int j = 0; j < guessString.length(); j++)

{

if (i == j || !guessString.substring(i, i + 1).equals(guessString.substring(j, j + 1)))

continue;

hasSameNum = true;

break;

}

}

return hasSameNum;

}

}

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class NumGuessing

implements ActionListener

{

private JFrame frame;

private JPanel centerJPanel;

private JPanel southJPanel;

private JTextArea showArea;

private JTextField guessField;

private JButton commitJButton;

private Font font;

private boolean isOver;

private int guessTimeCount;

private int guessingNum[];

private String guessedNum[];

public NumGuessing()

{

isOver = false;

guessTimeCount = 0;

guessedNum = new String[10];

frame = new JFrame("NumGuessing");

frame.setSize(200, 300);

frame.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - frame.getSize().width) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - frame.getSize().height) / 2);

font = new Font(null, 2, 15);

centerJPanel = new JPanel();

southJPanel = new JPanel();

showArea = new JTextArea("以下是妳猜數字的結果:\n");

showArea.setFont(font);

showArea.setEnabled(false);

guessField = new JTextField(6);

guessField.setFont(font);

commitJButton = new JButton("Enter");

commitJButton.setFont(font);

frame.setLayout(new BorderLayout());

centerJPanel.setLayout(new GridLayout(1, 2));

centerJPanel.add(showArea);

southJPanel.add(guessField);

southJPanel.add(commitJButton);

frame.add(centerJPanel, "Center");

frame.add(southJPanel, "South");

frame.validate();

frame.setResizable(false);

frame.setVisible(true);

frame.setDefaultCloseOperation(3);

commitJButton.addActionListener(this);

guessingNum = Methods.RandomNum();

}

public void actionPerformed(ActionEvent e)

{

String guessString = guessField.getText();

if (!isOver && guessTimeCount < 10)

{

if (Methods.CheckIsFourNum(guessString))

{

if (!Methods.IsGuessed(guessString, guessedNum))

{

if (!Methods.HasSameNum(guessString))

{

showArea.append((new StringBuilder(String.valueOf(guessString))).append(" ").toString());

showArea.append((new StringBuilder(String.valueOf(Methods.GetResult(guessingNum, guessString)))).append("\n").toString());

guessField.setText(null);

guessedNum[guessTimeCount] = guessString;

guessTimeCount++;

if (Methods.GetResult(guessingNum, guessString).equals("4A4B"))

{

isOver = true;

JOptionPane.showMessageDialog(null, "You Are The Winner");

}

if (guessTimeCount >= 10)

{

isOver = true;

JOptionPane.showMessageDialog(null, "妳應經猜了十次,輸了!");

guessField.setText(null);

}

} else

{

guessField.setText(null);

JOptionPane.showMessageDialog(null, "妳輸入的數中有相同的數字,請重新填寫。");

}

} else

{

guessField.setText(null);

JOptionPane.showMessageDialog(null, "這個數字妳已經猜過了!");

}

} else

{

guessField.setText(null);

JOptionPane.showMessageDialog(null, "請輸入壹個四位數字");

}

} else

{

guessField.setEnabled(false);

}

}

}

  • 上一篇:軟件編程思想
  • 下一篇:珠海跨賽事總結珠海跨煙花無人機表演信息
  • copyright 2024編程學習大全網