#define DEBUG_THIS_SHITT

using System;
using System.IO;

class CoolShrankClass
{
    const int ARTIKEL_ANZAHL = 4;
    const string str_DER_PFOAD = "/home/cbx/coolshrank.rc"; 

    static int[] anArtikelAnzahl = new int[ARTIKEL_ANZAHL];
    // Zuordnung der Indizes zu Namen
    static string[] astrArtikelName = new string[ARTIKEL_ANZAHL]  {"Bier","Wein","Cola","Pizza"};

    public static void Main(string[] args)
        {
        CoolShrankFuellen();
        
        CoolShrankLaden(str_DER_PFOAD);

#if DEBUG_THIS_SHITT

        for (int i=0; i < anArtikelAnzahl.Length; i++)
            {
            Console.WriteLine("Es hat {0} {1}", anArtikelAnzahl[i], 
                               astrArtikelName[i]);
            }
#endif

        if (CoolShrankZugang())
            {
            Console.WriteLine("Access granted");
            CoolShrankMenue();
            }
        else
            {
            Console.WriteLine("Dukommsthiernetrein!");
            }
        
        CoolShrankSpeichern(str_DER_PFOAD);

        Console.WriteLine("\n\n=> Game over");
        return; 
        }



// Kühlschrank füllen
    public static void CoolShrankFuellen()
        {
        anArtikelAnzahl[0] = 10; // Bier        
        anArtikelAnzahl[1] = 3; // Wein     
        anArtikelAnzahl[2] = 5; // Cola     
        anArtikelAnzahl[3] = 6; // Pizza        
        }



    public static void CoolShrankSpeichern(string strPfoad)
        {
        StreamWriter outStream = new StreamWriter(strPfoad);
        
        for (int i=0; i < anArtikelAnzahl.Length; i++)
            {
            outStream.WriteLine(anArtikelAnzahl[i]);
            }
        
        outStream.Close();
        }



    public static void CoolShrankLaden(string strPfoad)
        {
        StreamReader inStream;
        
        try
            {
            inStream = new StreamReader(strPfoad);
            }
        catch ( FileNotFoundException ex)
            {
            Console.WriteLine("No File detected. Refilling to defaults...");
            return;
            }
        
        for (int i=0; i < anArtikelAnzahl.Length; i++)
            {
            anArtikelAnzahl[i] = Convert.ToInt32(inStream.ReadLine()); 
            }
            
        inStream.Close();   
        }
        
        
    public static bool CoolShrankZugang()
        {
        Console.Write("Entern Sie Ihre Mehladresse: ");
        
        string strEmail = Console.ReadLine();
        int nAt, nDot, nSpace;
        
        nAt = nDot = nSpace = 0;
        
        foreach (char c in strEmail)
            {
            switch (c)
                {
                case '@':
                    nAt++;
                    break;
                    
                case '.':
                    nDot++;
                    break;
                    
                case ' ':
                    nSpace++;
                    break;
                }
            }
            
        return ((nAt == 1) && (nDot >= 1) && (nSpace == 0));
        }       


    public static void CoolShrankMenue()
        {

        Console.WriteLine("\n\n *** Hauptmenü *** \n");
        
        for (int i=0; i < anArtikelAnzahl.Length; i++)
            {
            if (anArtikelAnzahl[i] > 0)
                {
                Console.WriteLine("({0})...{1} (noch {2})",
                                   i+1, astrArtikelName[i], anArtikelAnzahl[i]);
                }
            }
        }

} // class

syntax highlighted by Code2HTML, v. 0.9.1