Avatar billede Warrius909 Nybegynder
11. marts 2011 - 17:02 Der er 3 kommentarer

Lyskryds programmering.......

Hej.
Er løbet panden mod muren i mit {lille} program.
Har ikke meget forstand på C# og slet ikke på fejlfinding.
Nogen der kan hjælpe med nedenstående kode:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main()
        {
            String temp = "ja";
            // Sætter bagrundsfarven til hvid
            Console.BackgroundColor = ConsoleColor.White;
            Console.Clear();
            //Slukker for cursor
            Console.CursorVisible = false;
            // Nulstiller lys krydset
            Output(0x378, 0xC0);
            strobe();
            do
            {
              // Vælger adressen på lys nr 2
                Output(0x378, 0x02);
                strobe();
                // Tænder den røde i lys nr 2
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 3
                Output(0x378, 0x03);
                strobe();
                // Tænder den røde i lys nr 3
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 0
                Output(0x378, 0x00);
                strobe();
                //Tænder Grøn i nr 0
                Output(0x378, 0x84);
                strobe();
                // Vælger adressen på lys nr 1
                Output(0x378, 0x01);
                strobe();
                //Tænder Grøn i nr 1
                Output(0x378, 0x84);
                strobe();
                // Vælger adressen på lys nr 4
                Output(0x378, 0x04);
                strobe();
                // Tænder den røde i lys nr 4
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 5
                Output(0x378, 0x05);
                strobe();
                // Tænder den røde i lys nr 5
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 6
                Output(0x378, 0x06);
                strobe();
                // Tænder den røde i lys nr 6
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 7
                Output(0x378, 0x07);
                strobe();
                // Tænder den røde i lys nr 7
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 8
                Output(0x378, 0x08);
                strobe();
                //Tænder Grøn i nr 8
                Output(0x378, 0x84);
                strobe();
                // Vælger adressen på lys nr 9
                Output(0x378, 0x09);
                strobe();
                //Tænder Grøn i nr 9
                Output(0x378, 0x84);
                strobe();
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(20, 8);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(20, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Viser en grøn prik på skærmen
                Console.SetCursorPosition(17, 9);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                //Viser en grøn prik på skærmen
                Console.SetCursorPosition(23, 9);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");


                //Viser en grøn prik på nr 8 og 9 på skærmen
                Console.SetCursorPosition(17, 4);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(23, 4);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(17, 14);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(23, 14);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                //Viser en rød prik på nr 4, 5, 6 og 7 på skærmen
                Console.SetCursorPosition(11, 8);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 6);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 12);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 8);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 6);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 12);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Venter i 16 sekunder
                System.Threading.Thread.Sleep(16000);
                // Vælger adressen på lys nr 9
                Output(0x378, 0x09);
                strobe();
                // Tænder den røde i lys nr 9
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 8
                Output(0x378, 0x08);
                strobe();
                // Tænder den røde i lys nr 8
                Output(0x378, 0x81);
                strobe();
                //Tænder gul i nr 0 og 1.
                Output(0x378, 0x00);
                strobe();
                Output(0x378, 0x82);
                strobe();
                Output(0x378, 0x01);
                strobe();
                Output(0x378, 0x82);
                strobe();
                //Tænder rød og pil i nr. 2 og 3.
                Output(0x378, 0x02);
                strobe();
                Output(0x378, 0x89);
                strobe();
                Output(0x378, 0x03);
                strobe();
                Output(0x378, 0x89);
                strobe();
                //Slukker en rød prik på skærmen
                Console.SetCursorPosition(17, 9);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(23, 9);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser det på skærmen.
                Console.SetCursorPosition(18, 9);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Viser det på skærmen.
                Console.SetCursorPosition(22, 9);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Viser en rød prik på nr 8 og 9 på skærmen
                Console.SetCursorPosition(17, 4);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(23, 4);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(17, 14);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(23, 14);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Venter 2 sek.
                System.Threading.Thread.Sleep(2000);
                //Slukker Rød og Gul på skærmen.
                //Viser det på skærmen.
                //Venter 9 sek.
                Console.SetCursorPosition(20, 8);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                Console.SetCursorPosition(20, 7);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Slukker Rød og Gul på skærmen.
                //Viser det på skærmen.
                //Venter 9 sek.
                Console.SetCursorPosition(20, 10);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                Console.SetCursorPosition(20, 11);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(17, 9);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(23, 9);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser det på skærmen.
                Console.SetCursorPosition(18, 9);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser det på skærmen.
                Console.SetCursorPosition(22, 9);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en rød prik på nr 8 og 9 på skærmen
                Console.SetCursorPosition(17, 4);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(23, 4);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(17, 14);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(23, 14);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Tænder rød i nr 0, 1.
                Output(0x378, 0x00);
                strobe();
                Output(0x378, 0x81);
                strobe();
                Output(0x378, 0x01);
                strobe();
                Output(0x378, 0x81);
                strobe();
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(20, 8);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(20, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(18, 9);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(22, 9);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Venter 4 sek.
                System.Threading.Thread.Sleep(4000);
                //Tænder rød i nr 0 og 1.
                Output(0x378, 0x00);
                strobe();
                Output(0x378, 0x81);
                strobe();
                Output(0x378, 0x01);
                strobe();
                Output(0x378, 0x81);
                strobe();
                //Tænder rød og gul i nr 2, 3.
                Output(0x378, 0x02);
                strobe();
                Output(0x378, 0x83);
                strobe();
                Output(0x378, 0x03);
                strobe();
                Output(0x378, 0x83);
                strobe();
                //Viser en gul prik på skærmen
                Console.SetCursorPosition(20, 7);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Viser en gul prik på skærmen
                Console.SetCursorPosition(20, 11);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Venter 2 sek.
                System.Threading.Thread.Sleep(2000);
                //Tænder rød og gul i nr 2, 3.
                Output(0x378, 0x02);
                strobe();
                Output(0x378, 0x84);
                strobe();
                Output(0x378, 0x03);
                strobe();
                Output(0x378, 0x84);
                strobe();
                // Vælger adressen på lys nr 4
                Output(0x378, 0x04);
                strobe();
                // Tænder grøn i lys nr 4
                Output(0x378, 0x84);
                strobe();
                // Vælger adressen på lys nr 5
                Output(0x378, 0x05);
                strobe();
                // Tænder grøn i lys nr 5
                Output(0x378, 0x84);
                strobe();
                // Vælger adressen på lys nr 6
                Output(0x378, 0x06);
                strobe();
                // Tænder grøn i lys nr 6
                Output(0x378, 0x84);
                strobe();
                // Vælger adressen på lys nr 7
                Output(0x378, 0x07);
                strobe();
                // Tænder grøn i lys nr 7
                Output(0x378, 0x84);
                strobe();
                //Slukker en rød prik på skærmen
                Console.SetCursorPosition(20, 8);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(20, 10);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //slukker en gul prik på skærmen
                Console.SetCursorPosition(20, 7);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //slukker en gul prik på skærmen
                Console.SetCursorPosition(20, 11);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en grøn prik på 2 og 3.
                Console.SetCursorPosition(20, 6);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(20, 12);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                //Viser en grøn prik på nr 4, 5, 6 og 7 på skærmen
                Console.SetCursorPosition(11, 8);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(11, 10);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(11, 6);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(11, 12);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(29, 8);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(29, 10);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(29, 6);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                Console.SetCursorPosition(29, 12);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("█");
                //Venter 8 sek.
                System.Threading.Thread.Sleep(8000);
                // Vælger adressen på lys nr 2
                Output(0x378, 0x02);
                strobe();
                // Tænder gul i nr 2
                Output(0x378, 0x82);
                strobe();
                // Vælger adressen på lys nr 3
                Output(0x378, 0x03);
                strobe();
                // Tænder gul i nr 3
                Output(0x378, 0x82);
                strobe();
                // Vælger adressen på lys nr 4
                Output(0x378, 0x04);
                strobe();
                // Tænder den røde i lys nr 4
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 5
                Output(0x378, 0x05);
                strobe();
                // Tænder den røde i lys nr 5
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 6
                Output(0x378, 0x06);
                strobe();
                // Tænder den røde i lys nr 6
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 7
                Output(0x378, 0x07);
                strobe();
                // Tænder den røde i lys nr 7
                Output(0x378, 0x81);
                strobe();
                //Slukker en grøn prik på 2 og 3.
                Console.SetCursorPosition(20, 6);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                Console.SetCursorPosition(20, 12);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en gul prik på skærmen
                Console.SetCursorPosition(20, 7);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Viser en gul prik på skærmen
                Console.SetCursorPosition(20, 11);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Viser en rød prik på nr 4, 5, 6 og 7 på skærmen
                Console.SetCursorPosition(11, 8);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 6);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 12);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 8);
                Console.ForegroundColor = ConsoleColor.Red;
              Console.Write("█");
                Console.SetCursorPosition(29, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 6);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 12);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Venter 2 sek.
                System.Threading.Thread.Sleep(2000);
                // Vælger adressen på lys nr 2
                Output(0x378, 0x02);
                strobe();
                // Tænder rød i nr 2
                Output(0x378, 0x81);
                strobe();
                // Vælger adressen på lys nr 3
                Output(0x378, 0x03);
                strobe();
                // Tænder rød i nr 3
                Output(0x378, 0x81);
                strobe();
                //Slukker en gul prik på skærmen
                Console.SetCursorPosition(20, 7);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en gul prik på skærmen
                Console.SetCursorPosition(20, 11);
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(20, 8);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Viser en rød prik på skærmen
                Console.SetCursorPosition(20, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Venter 2 sek.
                System.Threading.Thread.Sleep(2000);
                // Vælger adressen på lys nr 0
                Output(0x378, 0x00);
                strobe();
                //Tænder rød og gul i nr 0
                Output(0x378, 0x83);
                strobe();
                // Vælger adressen på lys nr 1
                Output(0x378, 0x01);
                strobe();
                //Tænder rød og gul i nr 1
                Output(0x378, 0x83);
                strobe();
                //Viser det på skærmen.
                Console.SetCursorPosition(17, 9);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Viser det på skærmen.
                Console.SetCursorPosition(23, 9);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("█");
                //Viser en rød prik på nr 4, 5, 6 og 7 på skærmen
                Console.SetCursorPosition(11, 8);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 6);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(11, 12);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 8);
                Console.ForegroundColor = ConsoleColor.Red;
            Console.Write("█");
                Console.SetCursorPosition(29, 10);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 6);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                Console.SetCursorPosition(29, 12);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("█");
                //Venter 2 sek.
                System.Threading.Thread.Sleep(2000);
                Console.BackgroundColor = ConsoleColor.White;
                Console.Clear();
            }
            while (temp == "ja");
            }           
            Console.ReadKey();       
        }
    }
Avatar billede bvli Praktikant
12. marts 2011 - 12:15 #1
hehe.. Den var go'! :)
Avatar billede Warrius909 Nybegynder
13. marts 2011 - 23:13 #2
Tja, prg er ikke mit men har fået en MEGET HJÆLPENDE HÅND.
Nogen gode råd.
Hilsen
Søren
Avatar billede bvli Praktikant
14. marts 2011 - 11:41 #3
Du bliver simpelthen nødt til at strukturere det. Det er ulæseligt, og jeg var overbevist om, at det var en joke.

Brug mellemrum.

Hver gang du laver en kommentar som: //Tænder en prik på skærmen
så overvej om du ikke burde lave en rutine som du kan kalde. Du gør jo det samme en million gange.

Lad være med at bruge magic numbers. F.eks. hvis du kalder
Output(0x378, 0x01);
Gør i stedet:

const int Pin1 = 0x378;
const int Red  = 0x01;
Output(Pin1, Red)

Så vil man kunne læse din kode bedre (nu ved jeg ikke hvad output tager af parametre, og det er pin-nummer og farve, men det ville jeg nok kunne have læst ud af den hvis du havde lavet nogle navngivne konstanter.

Men alt i alt er det meget svært at gætte sig frem til hvad du vil have hjælp til, når du ikke har skrevet hvad dit program gør, og du ikke har skrevet hvad der ikke virker. Men ærligt talt; start med at få det struktureret.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB