如何为多选游戏生成随机字符串

时间:2017-07-26 15:02:34

标签: android random

我正在构建一个有4个多选答案的问题的游戏(在android studio中)。我将在我的应用程序中为所有45个问题生成三个错误答案和一个正确答案。我有一个单独的方法随机生成问题(45个不同的问题)。我不太清楚如何做到这一点。

Office.initialize = function (){

        if (OfficeHelpers.Authenticator.isAuthDialog()) return;
        var authenticator = new OfficeHelpers.Authenticator();
         authenticator.endpoints.add("endpoint", {
            baseUrl: "BASE_URL",
            authorizeUrl: "Authorize_URL",
            clientId: "Client_id",
            responseType: "token",
            scope: "user",
            redirectUrl: "redirect",
        });

        var t = authenticator.authenticate("endpoint");
        t.then(function(token){

            console.log("logged");
        })
        .catch(function(error){

            console.log(error);
        })
    }

3 个答案:

答案 0 :(得分:0)

我认为最好的方法是为您提问。为你的答案准备一堂课。在您的问题类中,创建setter和getter以及构造函数以将问题添加到列表中。

在你的答案课中,有3个错误答案的setter和getter,以及正确答案的一个。在你的构造函数中,它有4个答案,其中一个是正确的答案。您可以对其进行设置,以便构造函数中的第一个String始终是正确的答案。从那里,将其添加到列表中。

您将有两个列表。 一个有问题。 一个有答案。

随机选择一个数字。 如果该数字为1,则在问题列表中的位置1处获取问题,并在位置1处获得答案。由于您知道CORRECT答案位于构造函数的第一个位置,因此您可以使用answer.getCorrectAnswer()或其他方式从列表中获取该答案。

希望这是有道理的。它应该能够从那里得到解决。

答案 1 :(得分:0)

您在寻找什么样的答案?如果问题是算术的,那么你可以为错误答案生成随机数(检查正确答案的副本)。如果答案是多年:"哪一年做了......"然后在合理范围内生成一年,再次检查它是否与正确答案不符。

如果答案更复杂,那么最好用正确的答案包含错误的答案。 Question类将包含四个字符串:rightAnswer和三个错误答案的数组:wrongAnswer[0] ... wrongAnswer[2]。您的问题库是Question的数组,每个问题都包含正确答案和三个错误答案。

如果问题相似,那么#34;哪位总统......"那么你可以将一个问题的正确答案用作不同但相似的问题的错误答案。

答案 2 :(得分:0)

我建立了一个选择题游戏。首先,您应该创建一个数组,您有多少个问题。然后创建一个随机并使用混洗。 这样。

R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United       States.1252   
 [3] LC_MONETARY=English_United States.1252   LC_NUMERIC=C                          
 [5] LC_TIME=English_United States.1252    

 attached base packages:
 [1] stats     graphics  grDevices utils     datasets  methods   base     

  other attached packages:
  [1] tidyr_0.8.2 dplyr_0.7.8

  loaded via a namespace (and not attached):
  [1] Rcpp_1.0.0       crayon_1.3.4     assertthat_0.2.0 R6_2.3.0        
   [5] magrittr_1.5     pillar_1.3.0     rlang_0.3.0.1    stringi_1.2.4   
   [9] bindrcpp_0.2.2   tools_3.4.3      glue_1.3.0       purrr_0.2.5     
   [13] compiler_3.4.3   pkgconfig_2.0.2  bindr_0.1.1           tidyselect_0.2.5
   [17] tibble_1.4.2     

我认为您应该使用二维数组。例如 int array[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; //how many question do you have for (shuffle = array.length - 1; shuffle > 0; shuffle--) { randomNumber = rnd.nextInt(20); int temp = array[randomNumber]; array[randomNumber] = array[shuffle]; array[shuffle] = temp; } 和其他索引就是这样array[0][0] = "question"

,经过改组后,您可以将其放入array [] []。