家庭作业

猜数字游戏:
生成一个4位的随机数,每一位都在0-9之间,每位必须不同。用户在外部输入一个猜测的4位数字,系统判断后返回结果。判断规则如下:如果用户猜测的数字正确且位置正确,则返回一个A;如果用户猜测的数字正确但是位置不正确,则返回B;
例如:随机数为:1234。如果用户输入1357,则返回1A1B(1的数字和位置正确,3的数字正确但是位置不正确);如果用户输入2468,则返回0A2B(2和4这个两个数字正确,但是位置都不对。);如果用户输入6789,则返回0A0B(用户没有猜对任何数字);只有用户输入1234,即返回4A0B的情况,才算用户猜对。
用户每次游戏共有7次机会。

利用面向对象编程

一.

public class Machine {

public static void main(String[] args){

User user=new User();
user.theOutput();

}
}

二.

public class Randomnumber {
private int [] Randomnumber=new int[4];

public int[] getRandomnumber() {
return Randomnumber;
}
public void setRandomnumber(int[] randomnumber) {
Randomnumber = randomnumber;
}

//随机产生四个数
public Randomnumber(){
for(int j=0;j<3;j++){
Randomnumber[j]=(int) (Math.random()*10);

switch(j){
case 0:
break;
case 1:
if(Randomnumber[j]==Randomnumber[j-1]){
j--;
}
break;
case 2:
if(Randomnumber[j]==Randomnumber[j-1]&&Randomnumber[j]==Randomnumber[j-2]){
j--;
}
break;
case 3:
if(Randomnumber[j]==Randomnumber[j-1]&&Randomnumber[j]==Randomnumber[j-2]&&Randomnumber[j]==Randomnumber[j-3]){
j--;
}
break;
}
}
}

}

三.

import java.util.Scanner;

public class User {
private int[] number=new int[4];
private int[] Randomnum=new int[4];
Scanner scan = new Scanner(System.in);

//输入数

public void theNumber(){

System.out.println("请输入四个不重复的数");

for(int i=0;i<4;i++){
System.out.println("请输入第"+(i+1)+"数");
number[i]=scan.nextInt();
switch(i){
case 0:
break;
case 1:
if(number[i]==number[i-1]){
System.out.println("有相同数字,请重新输入");
i-=1;
}
break;
case 2:
if(number[i]==number[i-1]&&number[i]==number[i-2]){
System.out.println("有相同数字,请重新输入");
i-=1;
}
break;

case 3:
if(number[i]==number[i-1]&&number[i]==number[i-2]&&number[i]==number[i-3]){
System.out.println("有相同数字,请重新输入");
i-=1;
}
break;
}
}

}

//比较
public String toCompare(int A,int B){
Randomnumber Randomnumber= new Randomnumber();
this.Randomnum=new Randomnumber().getRandomnumber();
for(int s=0;s<4;s++){
//randomnum数组的下标
for(int n=0;n<4;n++){ //number数组的下标
if(this.number[n]==this.Randomnum[s]){

if(n==s){
A++;
}
else{
B++;
}
}

else{
continue;
}

} //内层for语句结束

} //外层for语句结束
return A+"A"+B+"B";
}

//输出
public void theOutput(){
int A=0;
int B=0;
for(int m=1;m<8;m++){ //机会
theNumber();
String str=toCompare(0,0);
if(A!=4){
System.out.println(str+"您还有"+(7-m)+"次机会");
}
else{
System.out.println(str);
System.out.println("恭喜你成功了!");
break;
}

}
//结束
System.out.println("game over");
if(A!=4){
System.out.println("很遗憾,你的机会以用完");
}
System.out.println("欢迎下次光临");
System.exit(0);
}

}

转载于:https://www.cnblogs.com/-xhx/p/5518068.html

munbergame相关推荐

最新文章

  1. mysql dml ddldcl权限_MySQL中的DML、DDL、DCL到底是什么呢?
  2. WinForm 之 程序启动不显示主窗体
  3. 2020年视频号发展白皮书
  4. koa上传文件处理403
  5. 3.2 神经网络表示
  6. SCOM管理包模板的介绍及使用
  7. 《Greenplum5.0 最佳实践》 系统监控与维护 (五)
  8. [机器学习实战]决策树
  9. tomcat7 IP限制配置
  10. linux执行ksh文件,关于linux:KSH shell,它对目录中的文件行进行计数
  11. 《程序设计导引及在线实践》开始
  12. RPA案例 | 电商使用超自动化平台提升运营精细化
  13. CAD中角度如何平分、CAD特性匹配的作用是什么?
  14. Ubuntu16.04安装steam
  15. AG9311/AG9310 Type-C转HDMI设计方案|替代AG9310/AG9311芯片|GSV2201可完全替代兼容AG9310/AG9311
  16. 【知乎高赞】软件测试工程师应该怎样规划自己?成为年薪30W+测试工程师(乾坤未定,皆是黑马)
  17. 战略决定结构是什么意思?
  18. rpm mysql 忘记密码_centos7 yum安装mysql5.7并在root密码忘记的情况下重设密码
  19. 股市跷跷板—债券基金
  20. 错误集:smbclient访问Windows共享文件夹报错误:protocol negotiation failed: NT_STATUS_CONNECTION_RESET

热门文章

  1. ArduPilot之H743快速加减油门抬头现象分析
  2. BootStrap3 图标glyphicon
  3. Java 编写Validator验证器
  4. cocos2dx实现单机版三国杀(二)
  5. Python基础知识学习05--数值,字符串,列表
  6. Android Killer 高版本卡死,Android Killer反编译卡死的一个解决方案
  7. The illustrated guide to a Ph.D.
  8. crosswalk项目的维护
  9. windows查看wifi密码
  10. echarts饼状图数据过多时,数据叠加(问题篇)