我对编程很陌生,所以这可能是一个非常基本的问题。但是,我需要帮助来缩短这个重复的代码。 我正在制作一款卡片游戏,它有大约200种不同的生物,两个甲板(你和敌人),每个甲板上有10个槽(每个甲板上有10个生物)。
在我的用户界面的卡片制作工具部分,当你真正将一个生物添加到你的套牌时,它会这样做:
if(isset($_POST["selected"])){
$selection1=$_POST["selected"];
$url=mysite.com/index.php";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $selection1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
}
?>
如果该生物是" Ariel",那么它
If CritName = "Monarch" Then
YourCreature1PictureDB.Image = DHBattleSim.My.Resources.Monarch_Icon
YourCreature1Group.BackColor = Color.Transparent
End If
等。现在,想象有两百个这样的陈述,每个陈述都是针对不同的生物。然后我需要复制那么大的代码块,并将所有的1和2改为2,然后再将2改为3等等。 10,我必须复制所有这些并改变所有" YourCreature"短语到" EnemyCreature"。显然,这是非常重复和乏味的。 我知道查找和替换功能,但我宁愿缩短代码本身,以便我不必诉诸于此。
答案 0 :(得分:3)
您可以使用此类代码
Dim resources As Object = DHBattleSim.My.Resources.ResourceManager
YourCreature1PictureDB.Image = resources.GetObject(yourVariable & "_Icon")
此,
YourCreature1Group.BackColor = Color.Transparent
可以跟随;在原始代码中,如果它始终设置为“透明”,则不需要在每个if
中显示。
答案 1 :(得分:1)
创建一个用于设置图像的子项:
Public Sub SetCreatureImage(critName As String)
YourCreature1PictureDB.Image = DHBattleSim.My.Resources.ResourceManager.GetObject(critName + "_Icon")
YourCreature1Group.BackColor = Color.Transparent
End Sub