Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
因此,我正在为我的java类创建Kevin Bacon游戏。
这些是我要使用的名称文件
演员:
关系:
这是我现在拥有的程序:
我的getBaconNumber()需要一些帮助,我需要程序来查找演员并计算最终到达凯文·培根时的培根数。
这是教授要求该程序的内容:
1.在哈希图中查找参与者关系
2.将当前关系打印到控制台
3.与关系中的第二个参与者递归调用该方法(确保您增加了培根数)。
这种方法使我感到困惑,我无法完成它。
我需要它来打印这样的东西:
如果有人可以帮忙,我真的需要帮助吗
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
因此,我正在为我的java类创建Kevin Bacon游戏。
这些是我要使用的名称文件
演员:
Leonardo Dicaprio
Susan Sarandon
Tom Hanks
Robert De Niro
Barack Obama
Helen Keller
Katharine Cornell
Helen Hayes
John Laughlin
Mark Zuckerberg
Joe Lipari
Welker White
关系:
Susan Sarandon | Tom Hanks : Cloud Atlas
Tom Hanks | Kevin Bacon : Apollo 13
Leonardo Dicaprio | Kevin Bacon : This Boy's Life
Robert De Niro | Kevin Bacon : This Boy's Life
Barack Obama | Tom Hanks : the Road We've Traveled
Helen Keller | Katharine Cornell : Helen Keller in Her Story
Katharine Cornell | Helen Hayes : Stage Door Canteen
Helen Hayes | John Laughlin : Murder with Mirrors
John Laughlin | Kevin Bacon : Footloose
Mark Zuckerberg | Joe Lipari : Terms and Conditions May Apply
Joe Lipari | Welker White : Eat Pray Love
Welker White | Kevin Bacon : Lemon Sky
这是我现在拥有的程序:
package Game;
import java.io.*;
import java.util.HashMap;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
* @author
*
*/
public class BaconNumber
{
/**
* @param args
*/
private HashMap<String,String> relationships;
private HashMap<String,String> actors;
public static void main(String[] args)
throws FileNotFoundException
{
Scanner input = new Scanner(new File("relationships"));
HashMap<String, String> relationships = new HashMap<String, String>();
while (input.hasNextLine()) {
String[] columns = input.nextLine().split(Pattern.quote(" | "));
relationships.put(columns[0], columns[1]);
}
System.out.println(relationships);
}
public BaconNumber()
{
relationships = new HashMap<String,String>();
actors = new HashMap<String,String>();
}
public void printActors() throws FileNotFoundException
{
Scanner input = new Scanner(new File("actors"));
while (input.hasNextLine())
{
System.out.println(input.nextLine());
}
}
public int getBaconNumber( String actor , int number)
{
if( actor == "Kevin Bacon")
{
return number;
}
else
{
relationships.get(actor);
System.out.println(actor + " starred in " + relationships.value + "with" + relationships.value );
System.out.println( " The Bacon Number for " + actor + " is " + number );
return number; // fix this
}
relationships.containsKey("Kevin Bacon")
// {
// number++;
// System.out.println(" The bacon number for" + actor + " is " + number );
// }
// else
// {
//
// }
}
}
我的getBaconNumber()需要一些帮助,我需要程序来查找演员并计算最终到达凯文·培根时的培根数。
这是教授要求该程序的内容:
1.在哈希图中查找参与者关系
2.将当前关系打印到控制台
3.与关系中的第二个参与者递归调用该方法(确保您增加了培根数)。
这种方法使我感到困惑,我无法完成它。
我需要它来打印这样的东西:
Helen Keller
Helen Keller starred in "Helen Keller in her story" with Katherine Cornell.
Katherine Cornell starred in " Stage Door Canteen " with Helen Hayes.
Helen Hays starred in "Murder with mirrors" with John Laughlin.
John Laughlin starred in " FootLoose" with Kevin Bacon.
The bacon number for Helen Keller is 4
如果有人可以帮忙,我真的需要帮助吗
最佳答案
由于这是一项任务,因此我将提供一些概念和想法,但是您需要将其转变为某种东西。
-您可以将所有内容加载到[开始人,结束人,电影]数组中,并多次遍历数组,直到找到结束人为止。
-使用像您一样工作的哈希图,只是仅加载单个行仅表示一个方向(请看Susan Sarandon和Barack Obama)。而且您不能将每一行加载两次,因为您会有重复的键。您可以有两个数组,但不一定是最有效的。
-您可以阅读信息并创建无向图,然后遍历该图以获取推荐的起点和终点(可能有死胡同,您必须考虑这些死胡同)
您最大的决定是1)如何表示数据,以及2)如何遍历数据。任何数量的解决方案。将其绘制在纸上,看看如何解决并将其转化为解决方案可能是值得的。
10-07 16:20