在开始写一个程序时,首先要做的是需求分析。
拿骰子游戏来说,现实生活中,人们玩骰子可能需要2个或2个以上骰子(在这应该想到可以定义一个骰子类Die)。骰子上应该有6面数字分别为1到6(在这应该想到面上的数字应为骰子的属性)。这个时候,我们就实现了现实生活中的实物与代码中的类相对应起来,也就是实现了抽象。
package deigame;//定义名为deigame包
import java.util.Random;
/**
* 定义一个骰子类
* @author Angela
*
*/
public class Die {
//定义一个faceValue属性
private int faceValue;
//定义roll方法给faceValue赋值
public void roll(){
faceValue=new Random().nextInt(6)+1;
}
//定义得到骰子面值方法
public int getFaceValue(){
return faceValue;
}
}
骰子类的问题解决以后,还有一个问题,就是我们如何定义游戏的玩法,比如现实生活中我们玩两个骰子,取和,大于7就为赢,否则为输。这个时候我们就可以定义一个骰子游戏类(DieGame),在这个类里应该定义两个骰子属性,以及玩骰子的方法。
package deigame;
/**
* 骰子游戏类
* @author Angela
*
*/
public class DiceGame {
//定义骰子类类型的属性
private Die die1=new Die();
private Die die2=new Die();
/**
* 定义玩骰子游戏的方法
* @return
*/
public boolean play(){
die1.roll();
die2.roll();
int faceValue1=die1.getFaceValue();
int faceValue2=die2.getFaceValue();
int num=faceValue1+faceValue2;
System.out.println(faceValue1);
System.out.println(faceValue2);
if(num>7){
return true;
}else{
return false;
}
}
}
最后,我们要使这个程序可以运行起来,应该用主函数main(),因此最后还应该写一个可以使程序运行起来的Run类,首先new一个对象其次调用方法即可。
package deigame;
/**
*
* @author Angela
*
*/
public class Run {
/**
* @param args
*/
public static void main(String[] args) {
DiceGame diceGame=new DiceGame();
boolean flag=diceGame.play();
if(flag==true){
System.out.println("你赢了");
}else{
System.out.println("你输了");
}
}
}