C#委托实现了小游戏

以下是一个使用委托实现的简单游戏的示例:

using System;
delegate void GameDelegate();
class Game
{
    static void Main(string[] args)
    {
        GameDelegate game = null;
        Console.WriteLine("请选择游戏:1.猜数字游戏 2.石头剪刀布游戏");
        int choice = int.Parse(Console.ReadLine());
        switch (choice)
        {
            case 1:
                game = new GameDelegate(GuessNumber);
                break;
            case 2:
                game = new GameDelegate(RockPaperScissors);
                break;
            default:
                Console.WriteLine("错误的选择");
                break;
        }
        if (game != null)
        {
            game();
        }
        Console.ReadLine();
    }
    static void GuessNumber()
    {
        Random rand = new Random();
        int secretNumber = rand.Next(1, 100);
        Console.WriteLine("猜数字游戏开始,请输入数字:");
        int guess = int.Parse(Console.ReadLine());
        while (guess != secretNumber)
        {
            Console.WriteLine("错误,请重新输入:");
            guess = int.Parse(Console.ReadLine());
        }
        Console.WriteLine("恭喜你,猜对了!");
    }
    static void RockPaperScissors()
    {
        Console.WriteLine("石头剪刀布游戏开始,请选择:1.石头 2.剪刀 3.布");
        int player = int.Parse(Console.ReadLine());
        Random rand = new Random();
        int computer = rand.Next(1, 4);
        Console.WriteLine("电脑选择了:" + computer);
        if (player == computer)
        {
            Console.WriteLine("平局");
        }
        else if (player == 1 && computer == 2 || player == 2 && computer == 3 || player == 3 && computer == 1)
        {
            Console.WriteLine("你赢了");
        }
        else
        {
            Console.WriteLine("你输了");
        }
    }
}

在此代码中,我们创建了一个 GameDelegate 类型的委托,它可以指向任何返回类型为 `void

果糖网