All pastes #2107617 Raw Edit

Someone

public text v1 · immutable
#2107617 ·published 2012-01-30 01:24 UTC
rendered paste body
//
// Console 7 Segment Display 
// Author: Gökhan Erdoğdu
// Date: 30/01/2012
//

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

namespace ConsoleApplication1
{
    public enum EnumDisplay
    {
        Number0 = 63,
        Number1 = 6,
        Number2 = 91,
        Number3 = 79,
        Number4 = 102,
        Number5 = 109,
        Number6 = 125,
        Number7 = 7,
        Number8 = 127,
        Number9 = 111
    }
    public class Display
    {
        public Display()
        {
            m_bMX = new bool[66];
            SetLed((int)EnumDisplay.Number0);
        }
        public Display(int number)
        {
            m_bMX = new bool[66];
            SetNumber(0);
        }
        public void SetNumber(int number)
        {
            switch (number)
            {
                case 0: SetLed((int)EnumDisplay.Number0); break;
                case 1: SetLed((int)EnumDisplay.Number1); break;
                case 2: SetLed((int)EnumDisplay.Number2); break;
                case 3: SetLed((int)EnumDisplay.Number3); break;
                case 4: SetLed((int)EnumDisplay.Number4); break;
                case 5: SetLed((int)EnumDisplay.Number5); break;
                case 6: SetLed((int)EnumDisplay.Number6); break;
                case 7: SetLed((int)EnumDisplay.Number7); break;
                case 8: SetLed((int)EnumDisplay.Number8); break;
                case 9: SetLed((int)EnumDisplay.Number9); break;
            }
        }
        public bool GetCell(int x, int y)
        {
            int index = (y * 6) + x;
            return m_bMX[index];
        }
        public void DrawDisplay()
        {
            Console.BackgroundColor = ConsoleColor.Black;
            Console.Clear();
            for (int y = 0; y < 11; y++)
            {
                for (int x = 0; x < 6; x++)
                {
                    if (GetCell(x, y))
                    {
                        Console.BackgroundColor = ConsoleColor.White;
                    }
                    else
                    {
                        Console.BackgroundColor = ConsoleColor.Black;
                    }
                    Console.Write(" ");
                }
                Console.WriteLine("");
            }
        }
        private void SetLed(int index)
        {
            for (int i = 0; i < 66; i++) m_bMX[i] = false;

            if ((index & 1) == 1) { m_bMX[1] = m_bMX[2] = m_bMX[3] = m_bMX[4] = true; }
            if ((index & 2) == 2) { m_bMX[11] = m_bMX[17] = m_bMX[23] = m_bMX[29] = true; }
            if ((index & 4) == 4) { m_bMX[41] = m_bMX[47] = m_bMX[53] = m_bMX[59] = true; }
            if ((index & 8) == 8) { m_bMX[61] = m_bMX[62] = m_bMX[63] = m_bMX[64] = true; }
            if ((index & 16) == 16) { m_bMX[36] = m_bMX[42] = m_bMX[48] = m_bMX[54] = true; }
            if ((index & 32) == 32) { m_bMX[6] = m_bMX[12] = m_bMX[18] = m_bMX[24] = true; }
            if ((index & 64) == 64) { m_bMX[31] = m_bMX[32] = m_bMX[33] = m_bMX[34] = true; }
        }
        private bool[] m_bMX;
    }
    class Program
    {
        static void Main(string[] args)
        {
            Display diplay = new Display(0);
            int i = 0;
            for (; ; )
            {
                diplay.SetNumber(i);
                i = ((i + 1) % 10);
                diplay.DrawDisplay();
                Thread.Sleep(1000);
            }
            Console.ReadLine();
        }
    }
}