Pages: [1]   Go Down
Author Topic: Multi dim. Menü  (Read 530 times)
0 Members and 1 Guest are viewing this topic.
Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 26
Posts: 585
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi zusammen,

ich versuch gerade für ein kleines Spiel eine Menü zu basteln.
Diese soll maximal 6 Ebenen Tief sein.

Meine überlegung ist im Moment wie ich am Besten den Array austellen kann. Ich probiers gerade mit:

Code:
menu[0][0][0][0] = "Spiele";
  menu[0][1][0][0] = "0-6";
    menu[0][1][1][0] = "DO";
    menu[0][1][2][0] = "games_set";
    menu[0][1][3][0] = "6";
  menu[0][2][0][0] = "0-10";
    menu[0][2][1][0] = "DO";
    menu[0][2][2][0] = "games_set";
    menu[0][2][3][0] = "10";
  menu[0][3][0][0] = "0-X";
    menu[0][3][1][0] = "DO";
    menu[0][3][2][0] = "games_set";
    menu[0][3][3][0] = "X";
      menu[0][3][3][1] = "einlesen";      
menu[1][0][0][0] = "Kontest";
menu[2][0][0][0] = "Einstellungen";
menu[3][0][0][0] = "Standby";

Aber das scheint mir keine gute lösung zu sein, da ich viel zu viel Speicherplat reserviere.

Habt ihr das schonmal probiert ?
Oder doch lieber nicht variabel und alles mit  if und switch anweisungen ?

Variabel wäre mir lieber für die "Erweiterbarkeit" und Pflege.

Eine andere Idee war wie folgt, das funktioniert auch, aber bei 6 Ebenen werde ich sicher den überblick verlieren:

Code:
char menu_main[9][40]={
  "Spiele",               // games
  "Wettbewerb",           // contest
  "Einstellungen",        // settings
  "Standby"               // standby
};

char menu_sub_1[9][9][40] = {
  {
    {"0-6"},
    {"0-10"},
    {"0-XX"},
    {"zurueck"},
    {'S'}
  },
  {
    {"X Tore in X Minuten"},
    {"schnellster Schuss in X Minuten"},
    {"zurueck"},
    {'S'}
  },
  {
    {"Hardware"},
    {"Software"},
    {"Beleuchtung"},
    {'S'}
  },
  {
    {"DO"},
    {"do_standby"},
    {'S'}
  }
};


Gruß

Jomelo
« Last Edit: June 08, 2009, 02:38:26 pm by Jomelo » Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 588
LumiNet rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Menus mit Arrays fressen unnütz viel Speicher. Besser, Du schreibst Dir ein struct mit einem string für den Namen des Menupunkts und einem FunctionPointer, der auf die Funktion verweist, die aufgerufen werden soll, wenn der Menupunkt ausgewählt wurde. Dann erstellst Du eine verkettete Liste von solchen struct "Objekten" und fertig ist Dein Menu...

Ist ungefähr klar, wie das geht?
Logged


Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 26
Posts: 585
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jap,  verkettete Listen hatte ich letztes Semester im Studium.

Dann muss ich damit halt nur nen bischen rum "spielen" ;-)
Logged

Bremen / Germany
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo zusammen!

Da mich das Thema auch interessiert habe ich mal die Suche benutzt und einen Beitrag zum Thema Menüs gefunden. Im aktuell letzten Post auf folgender Seite kann man eine Library herunterladen:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1242443739/0#5

Ich werde es bei Gelegenheit mal testen. Müsste zuhause noch ein Display rumliegen haben...

Gruß
Poldi
Logged

Pages: [1]   Go Up
Jump to: