美文网首页java自学
五、面向对象练习——猜数字

五、面向对象练习——猜数字

作者: 孙浩j | 来源:发表于2017-11-20 13:42 被阅读7次
/*猜数字游戏,这个游戏设计到GuessGame 和Player两个类对象,game会产生0-9之间的随机数

三个player会猜测0-9的随机数,三个player产生的随机数与game产生的进行比较,如果又一个猜对

则输入,如何没有猜对的进入循环,直至猜对。

*/

/*

思路:先创建player类,类中有猜测数字的属性和猜测的方法,猜测方法调用后,属性改变,

此对象猜测的数字更改

之后创建GuessGame类,类中创建三个player对象,创建一个游戏开始的方法

方法内创建一个接收猜测数字的变量和一个猜测正误的变量

方法内产生游戏需要猜测的随机数,与玩家猜测的相对比

当猜对时,猜测正误的变量变为true,当三个玩家有一个猜对的时候,输出谁猜对,结束循环,

若没有猜对的继续循环直至猜对。

创建一个测试类,调用游戏类的gg.startGame()方法

*/

public class Demo8

{

public static void main(String[] args)

{

GuessGame gg=new GuessGame();

gg.startGame();

}

}

class GuessGame    //

{

Player p1=new Player();//创建三个玩家的对象

Player p2=new Player();

Player p3=new Player();

public void startGame(){

int guess1=0;          //创建三个变量用来接收三个玩家猜测的数

int guess2=0;

int guess3=0;

boolean guessRight1=false;  //创建三个变量来接收玩家猜测的正误

boolean guessRight2=false;

boolean guessRight3=false;

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

System.out.println("随机数是"+num);

while(true){

p1.guess();

p2.guess();

p3.guess();

guess1=p1.number;

System.out.println("p1猜测的是"+p1.number);

guess2=p2.number;

System.out.println("p3猜测的是"+p2.number);

guess3=p3.number;

System.out.println("p2猜测的是"+p3.number);

if(p1.number==num){

guessRight1=true;

}

if(p2.number==num){

guessRight2=true;

}

if(p3.number==num){

guessRight3=true;

}

if(guessRight1||guessRight2||guessRight3){

System.out.println("Player one got it right?"+guessRight1);

System.out.println("Player two got it right?"+guessRight2);

System.out.println("Player three got it right?"+guessRight3);

break;

}

else{

System.out.println("you will try again");

}

}

}

}

class Player

{

int number;

public void guess(){

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

System.out.println("I guess the number is "+number);

}

}

分析代码题:此题考得是,每次new的都是一个新的对象,对象里的属性和方法互不影响,对象一的属性加1,但是对象二的属性并没有变化

public class Mix4 {                            

int counter = 0 ;                                          //定义一个计数器

public static void main (String [] args ){

int count = 0;                                                       //再定义一个计数器

Mix4 [] m4a = new Mix4[20];                         //定义一个MIX4类的数组,长度为20,名字叫m4a

int x = 0;

while (x<9){

m4a[x] = new Mix4 ();                        //将新建的一个MIX4加入到m4a[x](x刚开始为0)数组中

m4a[x].counter = m4a[x].counter +1;  //将m4a[x]中的放着的MIX4类的计数器加一 ,因为每次调用m4a[x].counter时候每个对象counter的初始值都为0,所以打印出来的counter总为1

count = count +1;                                       //COUNT加1

count = count + m4a[x].maybeNew(x);  /调用自己的meybeNew()方法,将count与meybeNew()的返回值1或者0相加

x = x+1;     //循环一次,x+1

}

System.out.println (count + " " + m4a[1].counter);

}

public int maybeNew(int index ) {  //这个方法是将传入的x的值与5比较,比5小,返回1,同时将counter的值+1,因为每次调用m4a[x].counter时候总是会想将counter的值设为0,所以打印出来的counter总为1,大于等于5则返回0

if (index <5){

Mix4 m4 = new Mix4 ();

m4.counter = m4.counter + 1;

return 1 ;

}
return 0;
}
}

相关文章

  • 五、面向对象练习——猜数字

  • 面向对象练习

    1、定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数] 方法:a. 获取学生的姓...

  • JavaScript高级

    1 面向对象操作 - 回顾对象的基本概念 - 面向对象的相关概念 - 面向对象的特征和操作的实现方式 - 小练习 ...

  • 那些年出现的作业

    Java面向对象之类的练习之模拟计算器 demo Java面向对象之类的练习之ArrayBox封装 demo

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • 面向对象的核心

    面向对象和函数式不是对立的。 面向对象语言的分类 纯面向对象语言:一切都是对象,包括数字、字符串也是对象,如 Py...

  • 第七篇 面向对象编程

    一、复习 二、time模块的补充 三、面向对象 四、初始面向对象和类 五、面向对象之间的交互 六、面向对象的组合 ...

  • 阿里P8资深架构师耗时一年整理19年Java工程师成神之路

    1、基础篇 01:面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • Java 工程师成神之路 | 2019正式版

    一.基础篇 01 面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • JavaScript之面向对象编程

    五、面向对象编程 目录:面向对象原型继承、面向对象class继承(ES6引入的) 1.面向对象原型继承 类:模板 ...

网友评论

    本文标题:五、面向对象练习——猜数字

    本文链接:https://www.haomeiwen.com/subject/zmrrvxtx.html