【发布时间】:2015-02-15 03:30:38
【问题描述】:
我正在处理一个项目,并且我已经编写了我知道该怎么做的代码。我遇到了多个问题,我不知道是应该一次发布整个项目代码还是一次只关注一个问题。
游戏的指示是:“在游戏开始时,玩家和 Slick 的分数都设置为零。每一轮,玩家从池中选择一个数字。该值被添加到玩家的分数中. Slick 得到池中所有剩余数字的总和,平均分为玩家的选择。然后从池中移除玩家的选择和它的除数。对于每一轮,Slick 必须能够获得至少一个数字。如果玩家没有任何选择,游戏结束,Slick 得到池中所有剩余数字的总和。最高分获胜。
如果玩家的选择有效,则打印除数列表;如果玩家的选择无效,则应打印错误消息并再次出现提示。要使选秀权合法,它必须在池中,并且池中必须至少有一个除数。我的代码如下:
//Name : pickValidity
//Description : This funtion determines if the player's pick is valid.
//Parameters : The pool array and the user's pick, in that order.
//Return : True/false indicator.
public static boolean pickValidity(int[] pool, int size, int pick){
int low=0;
int high=size-1;
int mid;
int poolIndex=0;
boolean found=false;
boolean isValid=false;
while(low<=high && !found){
mid=(low + high) / 2;
if(pick == pool[mid]){
found = true;
}else if(pick < pool[mid]){
high = mid-1;
}else{
low = mid+1;
}
}
if(found){
while(pool[poolIndex] < pick && !isValid){
if(pick % pool[poolIndex] == 0){
isValid = true;
}else{
isValid = false;
}
poolIndex++;
}
}
return(isValid);
}
下面,我添加了我的调用语句。当我运行程序并故意输入无效选秀时,提示再次出现,但在我输入另一个数字后,程序停止。我怎样才能让它继续下去?
// User Input
printPool(pool, size);
System.out.println();
System.out.println();
System.out.println("Enter a non-prime value listed in the pool above: ");
pick=read.nextInt();
// Pick Validity
while(!(pickValidity(pool, size, pick) && poolValidity(pool, pick))){
System.out.println("Pick is invalid.");
System.out.println();
System.out.println("Enter a non-prime value listed in the pool above: ");
pick=read.nextInt();
}
// Data Processing
numDivisors = getDivisors(pool, divisors, pick);
// Output Section
printDivisors(divisors, numDivisors, pick);
System.out.println();
printScores(divisors, size, pick);
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println("Program Ended");
}
请,谢谢!
【问题讨论】:
-
首先,一次只关注一个问题。其次,我不确定你的问题到底是什么。
-
所以,对于整个项目,我创建了一个从 1-100 的随机数池,并将它们分配给一个数组,然后打印出这个数字池。然后提示玩家从池中选择一个非质数,如果池和选择的号码都是有效的,则打印该号码的除数。我的问题是测试号码池和玩家的选择是否有效。我不知道我的代码是否走在正确的轨道上,而且我还不断收到一条错误消息,指出缺少 return 语句。