java 数字游戏,产生个0~9不重复的四位随即数,然后传参数猜这个数。具体如下:

数字游戏,游戏开始系统随机产生4个0-9不重复的四个数,由用户输入所猜的四个数字(保证用户输入的4个是数字,并且不能重复),按回车键查阅结果是否正确(手机以?A?B形式显... 数字游戏,游戏开始系统随机产生4个0-9不重复的四个数, 由用户输入所猜的四个数字(保证用户输入的4个是数字,并且不能重复),按回车键查阅结果是否正确(手机以?A?B形式显示).?A表示所输入的?个数字和位置都与手机的答案相同;?B表示有?个数字相同,而位置有误.
输入
显示
1234
2A0B
1564
1A0B
7834
1A2B
3984
0A2B
展开
 我来答
http_p
2013-02-19 · TA获得超过1095个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:576万
展开全部
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class Game {
private int[] nums = new int[4];

public String toString() {
StringBuffer result = new StringBuffer("");
for (int i : nums) {
result.append(i + " ");
}
return result.toString();
}

public Game() {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
list.add(i);
}
Random r = new Random();
for (int i = 0; i < 4; i++) {
int k = r.nextInt(10 - i);
nums[i] = list.get(k);
list.remove(k);
}
}

public boolean validate(String r) {
if (r.length() != 4) {
return false;
}
if (!r.matches("\\d{4}")) {
return false;
}
for (int i = 0; i < 4; i++) {
if (r.lastIndexOf(r.charAt(i)) > i) {
return false;
}
}
return true;
}

private String check1(String r) {
int count = 0;
for (int i = 0; i < r.length(); i++) {
if (nums[i] == Integer.parseInt(r.charAt(i) + "")) {
count++;
}
}
return count + "A";
}

private String check2(String r) {
int count = 0;
for (int i = 0; i < r.length(); i++) {
int temp = Integer.parseInt(r.charAt(i) + "");
for (int j = 0; j < r.length(); j++) {
if (nums[j] == temp && i != j)
count++;
}
}
return count + "B";
}

public String check(String r) {
return check1(r) + check2(r);
}

public static void main(String[] args) {
Game g = new Game();
System.out.println(g);
Scanner s = new Scanner(System.in);
while (true) {
String r = s.next();
if ("exit".equals(r))
break;
if (!g.validate(r)) {
System.out.println("输入4位数字, 且不能重复");
continue;
}
String result = g.check(r);
if ("4A0B".equals(result)) {
System.out.println("恭喜, 猜对了");
break;
} else {
System.out.println(result);
}
}
}

}

--__--
追问
啊, 明白了, 厉害厉害,
梦现明晨
2013-02-18 · 超过17用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:46.8万
展开全部
system create int number[4] (x=Math.random())
check numbers are different

input int num_input[4]
for i 0->3
 for j 0->3
if(num_input[i]==number[j]){
if(i==j) A++;
else B++;
}
具体的自己写吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小淑锅K
2013-02-18 · 超过10用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:24.1万
展开全部
分太少,做起来麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式