grid
benim tavşanlar, sincaplar, kurtlar ve çitalarla doldurmam gerekiyor. Şu anda nesneyiHarita "RABBIT" dizgisini aramak için "RABBIT"()
populate("CHEETAH", 2);
populate("WOLF", 3);
populate("SQUIRREL", 10);
populate("RABBIT", 10);
yazmak için bir ip haritalama arıyorum, ben kurtulmak istiyorum bu tekrarlayan kodu var.
CELL grid[GRIDHEIGHT][GRIDWIDTH];
void populate()
{
int num_rabbits = 0, num_squirrels = 0, num_wolves = 0, num_cheetahs = 0;
int random, randX, randY;
srand((int)time(NULL));
while (num_rabbits < 10)
{
randX = rand() % GRIDHEIGHT;
randY = rand() % GRIDWIDTH;
if (!(grid[randX][randY].Has_An_Animal()))
{
grid[randX][randY].animal = new RABBIT();
num_rabbits++;
}
}
while (num_squirrels < 10)
{
randX = rand() % GRIDHEIGHT;
randY = rand() % GRIDWIDTH;
if (!(grid[randX][randY].Has_An_Animal()))
{
grid[randX][randY].animal = new SQUIRREL();
num_squirrels++;
}
}
while (num_wolves < 3)
{
randX = rand() % GRIDHEIGHT;
randY = rand() % GRIDWIDTH;
if (!(grid[randX][randY].Has_An_Animal()))
{
grid[randX][randY].animal = new WOLF();
num_wolves++;
}
}
while (num_cheetahs < 2)
{
randX = rand() % GRIDHEIGHT;
randY = rand() % GRIDWIDTH;
if (!(grid[randX][randY].Has_An_Animal()))
{
grid[randX][randY].animal = new CHEETAH();
num_cheetahs++;
}
}
}//end
Bir doldurmak fonksiyonu parametre olarak kullanılan tipte nesneler oluşturur oluşturmak istiyor, netleştirmek için? – Stephen
Evet, ayrıntı eksikliği için özür dilerim. doldurun ("RABBIT", 2), 2 RABBIT oluşturmanız gerekir. Gerçekten, bu kodun nesneye nesne eşlemesini bazılarını kullanarak zarif bir şekilde yoğunlaştırmanın bir yolunu arıyorum. – user3487243
'("RABBIT", 2); "ve" diyelim ki, "," [-] (yeni) RABBIT();}, 2); – immibis