0

我有一个应用程序,我为朋友制作了一个用于棋盘游戏随机比赛的应用程序,这样玩家每次都会随机选择一个物种。我想在更新中包含一个允许黑名单的功能,以便无法选择某些种族。解决此问题的最佳方法是什么?我会接受任何建议。非常感谢提前。

注意:该数组由名称字符串组成,我希望只要他们安装了应用程序或直到他们更改它,它就可以保持不变。

编辑:为我缺乏清晰度而道歉。我一般都知道我需要怎么做,但是如何从设置菜单中保存设置,以便在关闭和重新打开时,列入黑名单的比赛是持久的?即使应用程序关闭,重新打开时我也希望设置保持不变。这样他们下次玩游戏时(几周后),假设他们的口味没有改变,他们可以去点击而不再次列入黑名单。

4

2 回答 2

3

没有任何代码,很难确定如何去做,因为我不知道你是如何实现应用程序的其余部分的。

我能想到的一种方法是,如果您将整数与每场比赛相关联,例如通过使用常量:

public static final GIRAFFE = 1;
public static final GOOSE = 2;

然后你可以生成随机整数来随机选择每场比赛。如果您为随机整数生成创建了一个方法,那么您可以传递某些将被排除的数字。您可以继续生成一个随机整数,而生成的整数是排除的数字之一。

例如(因为它是 Android,我将用 Java 编写代码)

// assume min = smallest integer assigned to an animal,  
// and max = largest integer assigned to an animal

public static int randomNumber(int ... exclude)
{
    int random = min + (int)(Math.random() * ((max - min) + 1));
    for (int i = 0; i < exclude.length; i++)
    {
         if (exclude[i] == random)
             random = Min + (int)(Math.random() * ((Max - Min) + 1));
    }
    return random;
}

我对 StackOverflow 有点陌生,所以如果这有帮助,请告诉我。

于 2014-01-10T01:22:31.823 回答
1

您需要做的是持久化数据。您可以使用两种解决方案: 1) SharedPreferences 框架可以轻松保存键值对。请参阅此处以了解如何保存列表在 SharedPreferences 中存储列表或集合

2)使用SQL数据库。(定制解决方案)

在情况 1 中,您将保留列入黑名单的字符串,在情况 2 中,您最好创建一个包含所有字符串的表,并使用布尔值确定其是否列入黑名单。

我推荐共享首选项,因为它应该需要您 5 分钟才能完成,而除非您熟悉数据库,否则数据库解决方案将需要您一段时间才能完成。

于 2014-01-11T20:35:10.823 回答