import?java.util.Scanner;
//猜字符游戏
public?class?GuessingGame?{
//主方法
public?static?void?main(String[]?args)?{
Scanner?scan?=?new?Scanner(System.in);
int?count?=?0;?//猜错的次数
char[]?chs?=?generate();?//随机生成的字符数组
System.out.println(chs);?//作弊
while(true){?//自造死循环
System.out.println("猜吧!");
String?str?=?scan.next().toUpperCase();?//获取用户输入的字符串
if(str.equals("EXIT")){?//判断str是否是EXIT
System.out.println("下次再来吧!");
break;
}
char[]?input?=?str.toCharArray();?//将字符串转换为字符数组
int[]?result?=?check(chs,input);?//对比
int?score?=?chs.length*100?-?count*10;?//一个字符100分,错一次减10分
System.out.println("恭喜你猜对了,得分:"?+?score);
break;?//猜对时跳出循环
}else{?//没猜对
count++;?//猜错次数增1
System.out.println("字符对:"+result[1]+"个,位置对:"+result[0]+"个");
public?static?char[]?generate(){
char[]?letters?=?{?'A',?'B',?'C',?'D',?'E',?'F',?'G',?'H',?'I',?'J',
'K',?'L',?'M',?'N',?'O',?'P',?'Q',?'R',?'S',?'T',?'U',?'V',
'W',?'X',?'Y',?'Z'};
boolean[]?flags?=?new?boolean[letters.length];?//1.
for(int?i=0;ichs.length;i++){
int?index;
do{
chs[i]?=?letters[index];
return?chs;
//对比随机数组与用户输入的数组
public?static?int[]?check(char[]?chs,char[]?input){
for(int?j=0;jinput.length;j++){
if(chs[i]==input[j]){?//字符对
result[1]++;?//字符对个数增1
if(i==j){?//位置对
result[0]++;?//位置对个数增1
return?result;
java实现的简单猜数字游戏代码,通过随机数与逻辑判断来实现游戏功能 代码如下: import java.util.InputMismatchException; import java.util.Scanner; public class Main { public static void main(String[] args) { // 产生一个随机数 int n
public?class?Guess?{
private?static?final?int?F?=?1;
private?static?final?int?T?=?100;
int?num?=?(int)(Math.random()?*?T)?+?F;
Scanner?s?=?new?Scanner(System.?in?);
//?初始化
int?guest?=?-1;
while?(true)?{
System.out.print("请输入你猜测的数字("?+?F?+?"-"?+?T?+?"):");
//?每次输入的值,采纳即可
guest?=?s.nextInt();
if?(guest?num)?{
System.out.println(F?+?"--"?+?guest);
}?else?if?(guest?num)?{
System.out.println(guest?+?"--"?+?T);
}?else?{
System.out.println("中奖了");
s.close();
有一个java.util.Scanner类可以使用
import?java.util.Scanner;//我不想打很多,以下用到Scanner的都是java.util.Scanner
public?class?InputTest{
public?static?void?main(String[]?args){
Scanner?input=new?Scanner(System.in);//输入主要是System.in
do
int?a=input.nextInt();//此时会让执行System.in,再由Scanner转为int形态
if(a0)
{
System.out.print("你输入的值过小,请重新输入:");
continue;//回到回圈一开始
System.out.print("你输入的值过大,请重新输入:");
else?break;//如果符合就跳出回圈
}while(true);
System.out.println("你输入的值为:"+a);
希望能帮到你.
int num = (int)(Math.random()*100)+1;
Scanner sc = new Scanner(System.in);? ?
int guessNum = -1;
while (guessNum != num) {
System.out.println("请输入1-100之间整数");
guessNum = sc.nextInt();
if (guessNum == num) {
System.out.println("中啦");
} elseif (guessNum num) {
System.out.println("小啦");
} else {
System.out.println("大了");
扩展资料:
编写思路
①.、成1-100之间随机数
(int)(Math.random()*100)+1;
提示用户输入数字,
Scanner?sc=new?Scanner(System.in);
int?guessNum?= sc.nextInt();
需要将随机数和用户输入的数字进行比较.
猜一次:
Scanner sc = new Scanner(System.in);
System.out.println("请输入0-100之间整数");
int guessNum = sc.nextInt();
}?elseif?(guessNum num) {
第二段:使用while循环
publicstaticvoid main(String[] args) {
while (true) {
第三段:最后用while() 括号中的条件表达式,当用户猜测的数和系统生成的数字不相等时,就需要继续循环.
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()
ArrayList Temp = new ArrayList();
guessNum[i] = -1;
float tempNum = (float)Math.random() * 10F;
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;
Integer.valueOf(enterString);
catch (NumberFormatException e)
IsFourNum = false;
return IsFourNum;
public static String GetResult(int Num[], String enterString)
String resultString = "";
int rightInAll = 0;
int rightOnlyInNum = 0;
rightInAll++;
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;
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");
centerJPanel = new JPanel();
southJPanel = new JPanel();
showArea = new JTextArea("以下是你猜数字的结果:\n");
showArea.setFont(font);
showArea.setEnabled(false);
guessField.setFont(font);
commitJButton = new JButton("Enter");
commitJButton.setFont(font);
frame.setLayout(new BorderLayout());
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);
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++;
isOver = true;
JOptionPane.showMessageDialog(null, "You Are The Winner");
if (guessTimeCount = 10)
JOptionPane.showMessageDialog(null, "你应经猜了十次,输了!");
} else
JOptionPane.showMessageDialog(null, "你输入的数中有相同的数字,请重新填写.");
JOptionPane.showMessageDialog(null, "这个数字你已经猜过了!");
JOptionPane.showMessageDialog(null, "请输入一个四位数字");
guessField.setEnabled(false);
以上就是土嘎嘎小编为大家整理的java初学猜数字代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!