我正在尝试制作一个程序,将给定数量的玩家放入给定数量的团队中。之后他们应该被随机选择(例如,你掷“骰子”和 Team 3 的 Player 42 并与 Team 4 的 Player 22 战斗(所有玩家随机进入不同的队伍,仅限于 Gamemaster 的选择) )。
在我的代码中,我有基本的输出和结构。它说的是:
球队 1 现在拥有球员 43 球队 2 现在拥有球员 12 球队 4 现在拥有球员 1 球队 3 现在拥有球员 54
但我的问题是,如何 - 基于代码 - 我可以保存这些信息以及我如何(之后)让玩家随机战斗?同一支球队的成员不应该互相战斗,并且在每次战斗之后,我希望玩家以某种方式进入“黑名单”,他们不能再被滚动。
到目前为止我的代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int mitglieder, teams, teameins = 0, teamzwei = 0, teamdrei = 0, teamvier = 0;
printf("Teamcreation\n");
printf("\nNumber of Players: ");
scanf("%d", &mitglieder);
printf("\nNumber of Teams: ");
scanf("%d", &teams);
printf("\nThere are ");
printf("%d", mitglieder);
printf(" Player in ");
printf("%d", teams);
printf(" Teams. \n");
int array[mitglieder];
for (int i = 0; i < mitglieder; i++)
{ // fill array
array[i] = i;
}
printf("The Player are in the following Teams: \n ");
for (int i = 0; i < mitglieder; i++)
{ // shuffle array
int temp = array[i];
int randomIndex = rand() % mitglieder;
array[i] = array[randomIndex];
array[randomIndex] = temp;
}
for (int i = 0; i < mitglieder; i++)
{ // print array
int random_number = rand() % teams + 1;
int tp = random_number;
if(tp == 1)
{
teameins+1;
}
else if(tp == 2)
{
teamzwei+1;
}
else if(tp == 3)
{
teamdrei+1;
}
else if(tp == 4)
{
teamvier+1;
}
printf("Team %d - Spieler: %d\n ",random_number,array[i] + 1);
}
if( (teamvier == 0) && (teamdrei == 0) )
{
printf("\n%d Mitglieder in Team 1 und %d Mitglieder in Team2",teameins,teamzwei);
}
else if((teamvier == 0) && (teamdrei < 0))
{
printf("\n%d Mitglieder in Team 1, %d Mitglieder in Team2 und %d Mitglieder in Team3.",teameins,teamzwei,teamdrei);
}
else if(teamvier < 0)
{
printf("\n%d Mitglieder in Team 1, %d Mitglieder in Team2, %d Mitglieder in Team 3 und %d Mitglieder in Team4.",teameins,teamzwei,teamdrei,teamvier);
}
return 0;
}