Autor Beitrag
darkangel1208
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: So 29.11.09 12:50 
Wenn ich nun gewürfelt habe und ich würfel zur Seite legen möchte, bevor ich den Rest wieder in den Becher packe und erneut zu würfel, muss ich das ja irgendwie bewerkstelligen.
Nun möchte ich wissen, kann ich in einem Array ( Wurf [5] mit {1,1,2,5,6}) einigen Zahlen vor veränderung schützen, oder brauche ich einen Merker dazu.

z.B. ich habe per random in wurf {1,1,2,5,6}. Nun klicke ich auf die Picturbox(mit dem würfel wo die 6 drinne ist) und makiere ihn somit für die Ablage ( sprich kommt nicht mehr in dne Becher) Dann würfel ich erneut und die6 soll nun geschützt sein vor veränderung. sprich das trotz radom dort noch ne 6 steht, bis ich sie aus der Ablage wieder raus nehme.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
private void wurf_Click(object sender, EventArgs e)
{
    int i;
    Random rnd = new Random();
    for (i = 0; i < 5; i++)
    {
// geschütze Zahl darf nicht ins Random
// if(wurf[i]!=geschützt)
        wurf[i] = rnd.Next(17);
// oder lieber mit merker
// if (merker[i]!= 1)  wenn merker 1 dann ist der würfel in der Ablage
        wurf[i] = rnd.Next(17);
        anzeigen(wurf);
    }
}
Kilianus
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 29.11.09 13:16 
Das musst du manuell ausimplementieren.

Im ersten Impuls würde ich sagen: stecke die würfel, die du behalten willst in ein eigenes array und zähle hinuntern, wieviele neue würfel du brauchst.

Oder: mach dir ein bool-Array, das so groß ist wie dein würfel-array und setze die stellen, die du schützen willst auf true. beim neu würfeln würfelst du dann nur die stellen aus, die im merker false sind.

ich glaube die zweite variante ist schöner und einfacher.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 29.11.09 15:21 
Mein erster Impuls war der Verweis auf List<int>, weil eine solche Liste jederzeit erweitert oder verkürzt werden kann.

Aber in der gegebenen Situation (Kniffel) ist Array vielleicht doch sinnvoller. Dann möchte ich aber auf Array.Copy hinweisen, vor allem auf die Varianten mit Teilbereichen. Das soll bedeuten: Die Würfe, die du behalten willst, kommen in ein neues Array; die noch freien Würfe werden dort hinzugefügt; nach dem Würfeln wird nur noch mit diesem Array weitergearbeitet (nicht mit Kopieren, sondern nur mit Umbenennen).

Angesichts des Zeitdrucks ist es wohl einfacher, eine funktionierende Version zu erstellen und denkbare Verbesserungen in die Kommentare zu verlagern.

Gruß Jürgen