我在说的是这样的:

if (game == tdm) {
  scoret1 = scoret1 - 100;
}

如果有帮助,我的代码如下:

import java.util.Random;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.Collections;
import java.util.List;

public class codGame {
  public static void main(String[] args) {
    Random me = new Random();
    ArrayList<String> gun = new ArrayList(Arrays.asList("KN-44","XR2","HVK-30","ICR-1","Man-O-War","Sheiva","M8A7"));
    ArrayList<String> player = new ArrayList(Arrays.asList("BlazeDaBlur","CoolCreeper707","BlurWINSTheGame","QTD","DomIsWhiteTiger","AdvisoryStorm","CadenGaming10","Andrew","gotem","tgg","hahsal","TheOneAndTheOnly20"));
    ArrayList<String> attachments = new ArrayList(Arrays.asList("Quickdraw","Grip","Extended Mag","Fast Mag","Rapid Fire","Suppressor","Long Barrel"));
    ArrayList<String> optics = new ArrayList(Arrays.asList("Reflex","Recon","Varix-3","Boa-3","Thermal","ELO"));
    ArrayList<String> maps = new ArrayList(Arrays.asList("Aquarium","Breach","Combine","Evac","Exodus","Fringe","Havoc","Hunted","Infection","Metro","Redwood","Stronghold","Nuk3town"));
    ArrayList<String> modes = new ArrayList(Arrays.asList("TDM","Domination","Free-For-All"));

    List<String> players = Arrays.asList("BlazeDaBlur","CoolCreeper707","BlurWINSTheGame","QTD","DomIsWhiteTiger","AdvisoryStorm","CadenGaming10","Andrew","gotem","tgg","hahsal","TheOneAndTheOnly20");

    Set guns = new HashSet(Arrays.asList(gun));
    Set play = new HashSet(Arrays.asList(player));
    Set att = new HashSet(Arrays.asList(attachments));
    Set opt = new HashSet(Arrays.asList(optics));
    Set map = new HashSet(Arrays.asList(maps));
    Set mode = new HashSet(Arrays.asList(modes));

    Collections.shuffle(players);
    Collections.shuffle(player);
    for (int i=0; i < 11; ++i) {
    player.remove(0);
    }
    Collections.shuffle(gun);
    for (int i=0; i < 6; ++i) {
    gun.remove(0);
    }
    Collections.shuffle(optics);
    for (int i=0; i < 5; ++i) {
    optics.remove(0);
    }
    Collections.shuffle(attachments);
    for (int i=0; i < 5; ++i) {
    attachments.remove(0);
    }
    Collections.shuffle(maps);
    for (int i=0; i < 12; ++i) {
    maps.remove(0);
    }
    Collections.shuffle(modes);
    for (int i=0; i < 2; ++i) {
    modes.remove(0);
    }

    int scoret1 = me.nextInt(200);
    int scoret2 = me.nextInt(200);

    List<String> blackops = players.subList(0, 6);
    List<String> cdp = players.subList(6, 12);

    System.out.println("BlackOps3 game.");
    System.out.println("");
    System.out.println("CDP team: " + cdp);
    System.out.println("");
    System.out.println("Black Ops team: " + blackops);
    System.out.println("");
    System.out.println("You are: " + play);
    System.out.println("");
    System.out.println("Your gun: " + guns + ", your attachments: " + att + ", and your optic: " + opt);
    System.out.println("");
    System.out.println("The map: " + map);
    System.out.println("");
    System.out.println("The mode: " + mode);
    System.out.println("");
    System.out.println("The score: " + scoret1 + " to " + scoret2);
    }
}

为了更详细一点,如果您曾经玩过BO3,您可能知道Free-For-All的得分限制为30,有时如果我对此进行编译,则游戏模式为Free-For-All,我得到:得分:180至100,我正在尝试解决此问题。

#1楼 票数:0 已采纳

您可以像这样直接内联:

System.out.println("The score: " + 
(mode.equals("tdm") ? scoret1 - 100 : scoret1) +
" to " + scoret2);

#2楼 票数:0

您的问题是当您生成随机数时,由于您生成的是0到199之间的数字(是的,请阅读Random类的nextInt()方法,它将返回介于0和给定界限之间的数字,第56行为200和57)。

如果要限制它,则需要在生成数字后检查,或者根据某些情况限制范围。 例如,如果用户可以选择模式,则假设有一个名为“ gameMode”的变量,它是一个int,并且用户可以从几种游戏模式中进行选择,可以使用if语句或切换结构:

int bound = 200; //default bound for Random.nextint(bound)

switch(userMode){
    case 1: //user picked game mode 1
        bound = 31; //scores between 0 and 30 
        break;
    case 2: //game mode 2
        bound = 61; //scores between 0 and 60
        break;
    case 3: //game mode 3
        bound = 101;
        break;
    //no default, we already have a default of 200 as the bound
}

您还可以以类似的方式使用if-else语句,这实际上取决于多少个模式,我想说,如果您有2-3个以上的模式,则最好使用switch结构或if-else之外的其他方式,但是不要非常重要。

int bound = 200;

if(userMode == 1)
    bound = 31;
else if(userMode == 2)
    bound = 61;
else if(userMode == 3)
    bound = 101;

哎呀,您甚至可以使用您的小Random对象来随机选择游戏模式,您可以在if-else或case语句中添加更多代码,以预定义“ gameModeString”来保存游戏模式的字符串。

同样,对随机数使用模运算符也会限制其范围。 模运算符在将左操作数除以右后返回余数。 IE 200%30将返回20。

使用模数将始终遵循以下形式:

%B在0到B-1之间,因此任何模数30都将返回0到29之间的数字。您可以对随机数进行mod运算,例如:

int score1 = (me.nextInt(200) % 31); //returns integer between 0 and 30

就是这样 我建议多读一些随机数生成器(或细读Java中的Random API)和模数运算。

  ask by translate from so

未解决问题?本站智能推荐:

1回复

根据Java中的种子制作随机整数数组

我需要创建一个整数数组(双精度和浮点数也很好,但我认为没有区别),因为我需要对它们进行某些数学运算,例如*和+。 我试图用随机种子填充数组(即1337 5443,我需要使用它们),但是我无法将随机变量转换为int,也无法添加或乘以随机变量。 因此,从本质上讲,我需要根据特定种子制作一个随机数
1回复

当与阵列的各个部分相交时,为什么“球”不改变颜色? (Java)的

这段代码是针对名为打砖块的游戏的。 与数组相交时,我试图使球变色。 我为自定义颜色的R,G,B值创建了一个int,并让这些int相交生成为1-255之间的数字 }
2回复

如何解决:用于随机彩票号码程序的布尔数组。 “无法将int转换为boolean”

我需要为带有布尔数组的类制作一个随机彩票生成器。 起初,我使用int数组制作了它,并且工作得非常好,但是当我将int数组更改为bool数组时,出现一个错误,提示“类型不匹配:无法从int转换为boolean”。 我想知道如何修复我的代码,这样就可以了。
2回复

如何在数组中存储随机数并输出它们的平均值?

我正在尝试制作一个输出30个随机数并将其存储在数组中的程序,然后它需要找到这30个数的平均值并将其输出给我。 到目前为止,我有以下内容:(很抱歉,如果我对此事不好,我是编程的新手)。
1回复

在Numpy数组中查找在特定值之上的数字

因此,我现在的代码是: 我已经弄清楚如何创建一个长度和值的自定义数组。 但是,我需要能够确定有多少个数字落在用户定义的中间点之上。 我本来是用列表来做的,但要求已更改为array
2回复

如何将整数添加到数组并获得随机数?

这是一个最喜欢的面板。 您可以选择数字(单击按钮),然后我想将此数字添加到数组中,然后从该数组中获取随机数。 我被卡住了,因为我得到了 0 - 75 之间的随机数。我想在单击按钮后从“收藏夹”数组中获得一个随机数。
3回复

如何播放歌曲数组中的下一首随机歌曲[重复]

这个问题已经在这里有了答案: 在Android 2中 使用MediaPlayer播放mp3文件的列表 我有一系列的歌曲,我的应用程序在活动打开时会随机播放歌曲,但是当歌曲播放完毕后,我想从阵列中播放另一首随机歌曲,有人可以帮忙吗?
3回复

如何使一个随机数长4个字符-Java

我需要生成一个介于0到9999之间的随机数,然后我需要将所有四个字符都设为长数字-因此,如果生成1238可以很好,但是如果生成96则需要显示0096,否则3将为0003 到目前为止,这是我的代码... }