如何绘制有例外的数字

How to draw numbers with exceptions

如何画有异常的数字?例如我想画1到4之间的数字,但我不想画数字3.

我的随机移动功能需要它,我想防止某些移动。

void monsterMove()
{

    Random rnd = new Random();
    int movmentNumber = rnd.Next(1, 4);
    switch (movmentNumber)
    {
        case 1:
            Console.Clear();
            monster1PositionY = monster1.moveRight(monster1PositionY);
            map.movefillRightMonster(monster1PositionX, monster1PositionY);
            map.printBoard();
            break;

        case 2:
            Console.Clear();
            monster1PositionY = monster1.moveLeft(monster1PositionY);
            map.movefillLeftMonster(monster1PositionX, monster1PositionY);
            map.printBoard();
            break;

        case 3:
            Console.Clear();
            monster1PositionX = monster1.moveDown(monster1PositionX);
            map.movefillDownMonster(monster1PositionX, monster1PositionY);
            map.printBoard();
            break;

        case 4:
            Console.Clear();
            monster1PositionX = monster1.moveUp(monster1PositionX);
            map.movefillUpMonster(monster1PositionX, monster1PositionY);
            map.printBoard();
            break;
    }
}

我在 Whosebug 和其他地方寻找解决方案,但找不到答案。

您也许可以创建一个可能的抽奖数组和select一个对应于索引的随机数。

Random r = new Random();
int[] draws = new int[] {1, 2, 4};
int number = draws[r.Next(draws.Length)];

编辑:糟糕,原来 r.Next(int max) 是独占的,所以应该是 draws.Length 而不是 draws.Length-1