Java - случайная команда с номерами из списка - PullRequest
0 голосов
/ 02 июня 2018

Я новичок в Java. Я хочу создать случайную команду с числами

. Я думаю разбить этот случайный список на 3 команды, что мне делать?потому что в одной команде только 2 члена

import java.util.Arrays;
import java.util.Collections;
public class RandomTeam {
  public static void main(String[] args) {
    Integer[] arr = new Integer[8];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = i;
    }
    Collections.shuffle(Arrays.asList(arr));
    System.out.println(Arrays.toString(arr));
  }
}

Вывод

[3, 4, 2, 6, 7, 5, 0, 1]

как разбить этот случайный список на 3 команды?

Ответы [ 2 ]

0 голосов
/ 22 июня 2018

Вы можете разделить команды на 2 человека, как показано в следующем коде:

import java.util.Arrays;

public class RandomTeam {
  public static void main(String[] args) {

    int arr[] = new int[8];
    for (int i = 0; i < arr.length; i++) {
      arr[i] = i;
    }
    int numberOfTeams = 3;
    int sizeOfTeam = 2;
    int newTeam[] = new int[2];
    if (arr.length >= (numberOfTeams * sizeOfTeam)){
      for (int i = 0; i < (numberOfTeams*sizeOfTeam); i+=sizeOfTeam) {

        newTeam[0] = arr[i];
        newTeam[1] = arr[i+1];
        Printing((i+1), newTeam);
      }
    }
  }

  public static void Printing(int id, int arr[]) {
    System.out.println("Team{" +
            "id = " + id +
            ", members = " + Arrays.toString(arr) +
            '}');
  }
}

при каждой итерации цикла newTeam [] будет заменен новой командой, если вам нужно создать объект для каждогокоманда, тогда вам нужно создать отдельный класс в соответствии с вашими потребностями.

Надеюсь, это поможет вам.

0 голосов
/ 02 июня 2018

После Collections.shuffle(Arrays.asList(arr)); добавьте следующий код:

int teams = 3;
int teamSize = 2;
if (arr.length >= teams * teamSize) // check if array contains enough IDs
{
    for (int i = 0; (i < arr.length) && (i < teams * teamSize); i += teamSize) {
        System.out.println("Team: " + i/teamSize+1); // print team number
        for (int j = 0; j < teamSize; j++)           // get all team members
        {
            System.out.println(arr[i+j]);            // print ID of team member of team
        }
    }
}

Вместо того, чтобы выводить информацию на консоль, вы можете сделать с ней что-то еще.Например, создание команды-объекта.В этом случае вам сначала нужно создать командный класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...