首先在这个游戏中所用到有随机数的知识,在java语言中,产生随机数的方式有三种
new Random()
此类需要借助import java.util.Random;来产生
代码如下
import java.util.Random;
public class game {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random a=new Random();
int number=(a.nextInt(6)+1);//产生1-6的随机数,可表示骰子值
System.out.print("随机数为"+number); //产生一个随机数
}
}
Math.random()
直接调用Math库中来产生
代码如下
Math.Romdom所产生的随机数是在0-1之间的浮点数,而与Romdom类有一些相似之处
public class game {
public static void main(String[] args) {
int a;
a=(int)(Math.random()*6+1);//产生1-6之间的随机数,作为骰子值
System.out.print("随机数为"+a);
}
}
currentTimeMillis()
前两种方法比较常用,而此种产生随机数方法不太常用,这里不做介绍。
游戏代码部分
游戏主要思想为将玩家所输入的值与其电脑产生的随机数做判断
代码中已将规则,注释等写入其中
import javax.swing.JOptionPane;//对话框显示
import java.util.Random;
public class 掷骰子游戏 {
public static void main(String[] args)
throws java.io.IOException
{
JOptionPane.showMessageDialog(null,"掷骰子游戏规则\n"+"您的初始生命值为100\n"+"您先掷出一个骰子,并输入你的数值\n"+"若与电脑给出骰子同为大或同为小\n"+"则你的生命值加5,否则减10.");
int life=100; //定义生命值100
int b;
String str="";
str=JOptionPane.showInputDialog(null,"请输入您猜想的骰子值:");
JOptionPane.showMessageDialog(null,"您猜想的骰子值为"+str);
b=Integer.parseInt(str);
if(b>6)
do{
str=JOptionPane.showInputDialog(null,"您的数据不合法,请重新输入");
JOptionPane.showMessageDialog(null,"您猜想的骰子值为"+str);
b=Integer.parseInt(str);
}while(b>6); //玩家输入值
JOptionPane.showMessageDialog(null,"您猜想的骰子值为"+str);
Random a=new Random();
int number=(a.nextInt(6)+1);
JOptionPane.showMessageDialog(null,"摇出骰子值为"+number); //产生一个随机数,表示骰子值
if(b>3)
{
if(number>3){
life=life+5;
JOptionPane.showMessageDialog(null,"您的生命值还剩:"+life);
System.out.println("您的生命值:"+life);
}
else
life=life-10;
JOptionPane.showMessageDialog(null,"您的生命值还剩:"+life);
System.out.println("您的生命值:"+life);}
else
{
if(number<=3){
life=life+5;
JOptionPane.showMessageDialog(null,"您的生命值还剩:"+life);
System.out.println("您的生命值:"+life);}
else
life=life-10;
JOptionPane.showMessageDialog(null,"您的生命值还剩:"+life);
System.out.println("您的生命值:"+life);
} //判断输赢,游戏运行
if(life<=0)
{ JOptionPane.showMessageDialog(null,"GAME OVER!");
int i = JOptionPane.showConfirmDialog(null,"GAME OVER!\n是否重新开始游戏","确认消息",JOptionPane.YES_NO_OPTION);
if(i==0)
JOptionPane.showMessageDialog(null,"GAME OVER!"); //游戏结束
else
JOptionPane.showMessageDialog(null,"请您重新启动游戏!"); //重新开始游戏
}
}
}