作者yDoOw (想你)
看板java
标题[问题] 一个不会形容的问题(新手 附程式码)
时间Thu Apr 3 13:59:27 2008
我是自学java的新手 刚学到ArrayList
想说要自己写个猜地雷的程式玩玩 (0-9数字中随机挑三个放地雷)
compile後没有error 也可以正常的运作
只是偶尔会出现使用者从0猜到9都没有猜到地雷的状况
想请问板上的大大可不可以提供一些方向 让我知道大概是什麽地方写错
或是对於我的写法有其他建议也请不吝指教 先谢谢大家!
p.s. jdk为1.6.0_05版本
程式码的部份:
import java.util.ArrayList;
public class LandMineGame
{
public static void main(String[] args) throws java.io.IOException
{
LandMine game = new LandMine();
game.setLocations();
//0-9间随机指定三个数字放置地雷
game.guess();
//让使用者输入并检查是否有猜中
game.getRank();
//根据使用者猜测的次数评分
}
}
class LandMine
{
ArrayList<Integer> locations=new ArrayList<Integer>();
//存地雷的位置
ArrayList<Integer> guessedNum=new ArrayList<Integer>();
//存使用者猜过
的位置
int numOfHits;
//猜中地雷的次数
int numOfGuess;
//总共猜测的次数
public void setLocations()
//0-9间随机指定三个数字放置地雷
{
int a=(int)(Math.random()*10);
int b=(int)(Math.random()*10);
int c=(int)(Math.random()*10);
boolean checkNum=(a!=b && a!=c && b!=c);
if(checkNum==true)
//避免三个地雷放再同一个位置
{
locations.add(a);
locations.add(b);
locations.add(c);
}
}
public void guess() throws java.io.IOException
//让使用者输入并检查是否
有猜中
{
while (numOfHits<3)
{
java.io.BufferedReader keyin;
keyin=new java.io.BufferedReader(new java.io.InputStrea
mReader(System.in));
System.out.print("请猜出地雷的位置(0-9):");
Integer playerguess=Integer.parseInt(keyin.readLine());
numOfGuess++;
if (locations.contains(playerguess))
{
System.out.println("Bingo!");
numOfHits++;
locations.remove(playerguess);
}
else if (guessedNum.contains(playerguess))
{
System.out.println("The place has been checked");
guessedNum.remove(playerguess);
numOfGuess--;
}
else
{
System.out.println("Wrong! Please guess again");
}
guessedNum.add(playerguess);
//将使用者猜的数字存起来
}
System.out.println("Congratulations! You took "+numOfGuess+" ti
mes to finish the game");
}
public void getRank()
//根据使用者猜测的次数评分
{
int grade=(int)((100*(10-numOfGuess))/7);
System.out.println("Your grade is "+grade);
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.70.63