我正在用C++編程風險遊戲。在那場比賽中,你可以向與你的國家接壤的國家宣戰。如何找到列表中的國家的鄰居?
但我能想出來測試兩個國家是否是「鄰居」的唯一方法是測試巨頭。
這裏是清單的聲明:
//Europe:
gebieden << CGebied("iceland","europe");
gebieden << CGebied("scandinavia","europe");
gebieden << CGebied("great-britain", "europe");
gebieden << CGebied("northern-europe","europe");
gebieden << CGebied("western-europe","europe");
gebieden << CGebied("southern-europe","europe");
gebieden << CGebied("ukraine", "europe");
//Asia
gebieden << CGebied("ural", "asia");
gebieden << CGebied("siberia", "asia");
gebieden << CGebied("yakutsk", "asia");
gebieden << CGebied("kamchatka", "asia");
gebieden << CGebied("irkutsk", "asia");
gebieden << CGebied("mongolia", "asia");
gebieden << CGebied("afghanistan", "asia");
gebieden << CGebied("china", "asia");
gebieden << CGebied("japan", "asia");
gebieden << CGebied("middle-east", "asia");
gebieden << CGebied("india", "asia");
gebieden << CGebied("siam", "asia");
//Australië
gebieden << CGebied("indonesia", "australia");
gebieden << CGebied("new-guinea", "australia");
gebieden << CGebied("western-australia", "australia");
gebieden << CGebied("eastern-australia", "australia");
//Africa
gebieden << CGebied("egypt", "africa");
gebieden << CGebied("north-africa", "africa");
gebieden << CGebied("east-africa", "africa");
gebieden << CGebied("congo", "africa");
gebieden << CGebied("south-africa", "africa");
gebieden << CGebied("madagascar", "africa");
//North-America
gebieden << CGebied("alaska","n-america");
gebieden << CGebied("northwest territory", "n-america");
gebieden << CGebied("alberta", "n-america");
gebieden << CGebied("ontario", "n-america");
gebieden << CGebied("quebec", "n-america");
gebieden << CGebied("greenland", "n-america");
gebieden << CGebied("western-us", "n-america");
gebieden << CGebied("eastern-us", "n-america");
gebieden << CGebied("central-america", "n-america");
//South-America
gebieden << CGebied("venezuela", "s-america");
gebieden << CGebied("brazil", "s-america");
gebieden << CGebied("peru", "s-america");
gebieden << CGebied("argentina", "s-america");
這裏是巨人的一部分,如果測試:
if(QString::compare(naam1,"alaska",Qt::CaseInsensitive) || QString::compare(naam2,"alaska", Qt::CaseInsensitive))
{
if(QString::compare(naam1,"kamchatka", Qt::CaseInsensitive) || QString::compare(naam2,"kamchatka", Qt::CaseInsensitive))
return 1;
if(QString::compare(naam1, "northwest territory", Qt::CaseInsensitive) || QString::compare(naam2, "northwest territory", Qt::CaseInsensitive))
return 1;
if(QString::compare(naam1, "alberta", Qt::CaseInsensitive) || QString::compare(naam2, "alberta", Qt::CaseInsensitive))
return 1;
}
有沒有更有效的方法? 謝謝!
創建一個「鄰居地圖」。 –
你的問題是:「嗨,我有一個我正在存儲的國家列表,據推測在一些我不會解釋的結構中,我現有的邊界國家測試效率非常低,在某些方面我也不會解釋,但我希望有人告訴我如何讓它更有效率,沒有我展示實際低效的代碼,只是模糊地將其描述爲「巨人如果測試」;所以每個人都必須使用他們神奇的頭腦射線束機爲了看看我腦海中的代碼,並告訴我如何讓它變得更好「。這是對你的問題的準確描述嗎? –
是的,這是相當準確的,我會上傳我的代碼:) – BramKel