【发布时间】:2018-12-17 16:58:15
【问题描述】:
我正在尝试使用 winforms 在 C# 中创建一个垄断游戏,我需要处理玩家图标在棋盘上移动的问题。
我本来想这样做的;
private void movePlayerToNewSquare(int playerPos)
{
int playerPosition = playerPos;
switch (playerPosition)
{
case 0:
playerIcon1.Location = pictureBox1.Location;
break;
case 1:
playerIcon1.Location = pictureBox2.Location;
break;
playerPos 来自较早的函数,是一个从 0 到 39 的整数,它们在棋盘上的位置是棋盘上所有方格列表中的那个数字,即 0 = "Go",1 = "Old Kent Road “等等。我正在考虑为板上的每个方格设置一个不同的案例。但这似乎是一种冗长的做事方式。
我想知道在 C# 中是否有一种方法可以使用 playerPosition 整数作为图片框后面的数字,可能类似于;
pictureBox(playerPosition).Location
任何帮助将不胜感激
【问题讨论】:
-
尝试使用
>的字典。 -
如果你有一个列表中的所有方块,那么只需使用列表索引:
playerIcon1.Location = squares[playerPos].Location; -
如果你有他们滚动的数字,比如
int diceValue,那么你可以这样做:playerIcon1.Location = squares[(currentPosition + diceValue) % 40].Location;