Örnek Console Uygumalaması: Piyano

Klavyeyi kullanarak nota seslerini çıkarmaya ne dersiniz?

Bu yazıdaki amacımız, C# ve algoritma bilgimizi geliştirmektir.

Programda enums, do-while, switch kullanılmıştır.

Program için gerekli olan nota bilgilerini bir enum için de tutararak programın okunabilirliği arttırılmıştır.

Klavyeden a'dan - j 'ye harfler sırasıyla Do-Re-Mi-Fa-Sol-La-Si notalarını çıkarmaktadır.

Nota ses süresi istenirse ayarlanabilmektedir.

 

Program kodları:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public enum Frekanslar
    {
        Do = 261,
        Re = 293,
        Mi = 329,
        Fa = 349,
        Sol = 392,
        La = 440,
        Si = 493
    }
    class Program
    {
        static void Main(string[] args)
        {
            const int sure = 100;
            bool cikis = false;

            do
            {
                ConsoleKeyInfo info = Console.ReadKey();
                switch (info.Key)
                {
                    case ConsoleKey.A:
                        Console.Beep((int)Frekanslar.Do, sure);
                        break;
                    case ConsoleKey.S:
                        Console.Beep((int)Frekanslar.Re, sure);
                        break;
                    case ConsoleKey.D:
                        Console.Beep((int)Frekanslar.Mi, sure);
                        break;
                    case ConsoleKey.F:
                        Console.Beep((int)Frekanslar.Fa, sure);
                        break;
                    case ConsoleKey.G:
                        Console.Beep((int)Frekanslar.Sol, sure);
                        break;
                    case ConsoleKey.H:
                        Console.Beep((int)Frekanslar.La, sure);
                        break;
                    case ConsoleKey.J:
                        Console.Beep((int)Frekanslar.Si, sure);
                        break;
                    case ConsoleKey.Enter:
                        cikis = true;
                        break;
                }
            } while (!cikis);
        }
    }
}

Programı indirmek için buraya tıklayınız.