@ Xalir
ja ich arbeite wirklich eher mit while, weil des für mich logischer und leichter ist.
Und des mit a++ kannte ich bisher noch nicht
@ saibot521_2
danke für die Hilfe, hat mir echt was gebracht.
Zwar hab ich jetzt noch den Fehler dass ab der
2. Zeile immer kein Öl mehr da ist aber das bekomm ich hoffentlic irgendwie hin.
Edit:
geht aber immer noch ned 100%
liegt iwie an der Zufallszahl, weil da kommt nur selten eine neue Zahl und sonst immer die gleiche :/
hier ein Beispiel
Neue Version:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int p = 0, n = 0, a = 20, b = 0, c = 1, d = 1, e = 0, f = 0, h = 0, i = 0, j = 0, k = 0;
int[,] feld = new int[60, 80];
// alles 0 setzen
while ((p <= 59 && n <= 79))
{
feld[p, n] = 0;
p = p + 1;
if (n == 79)
{
n = n + 1;
p = 0;
}
}
// Öl in der ersten Zeile und den Spalten 20 bis 59
// ... erste Zeile sind also 40 Felder mit Öl
while (a <= 59)
{
feld[0, a] = 1;
a = a + 1;
}
Console.WriteLine("Mit welcher Prozentzahl soll das Öl durchsickern? ( Zwischen 1 u 100)");
b = Convert.ToInt32(Console.ReadLine());
// Sickern
while (c <= 59)
{
while (d <= 79)
{
if (d == 0)
{
feld[c, d] = 0;
}
else
{
h = c - 1;
i = d - 1;
if (feld[h, i] == 1)
{
e = 1;
}
else
{
e = 0;
}
if (feld[h, j] == 1)
{
f = 1;
}
else
{
f = 0;
}
}
if (e == 1)
{
Random zufall = new Random();
int zz = zufall.Next(1, 100);
if (zz <= b)
{
feld[c, d] = 1;
}
Console.WriteLine(zz);
}
if (f == 1)
{
Random zufall = new Random();
int zz = zufall.Next(1, 100);
if (zz <= b)
{
feld[c, d] = 1;
}
Console.WriteLine(zz);
}
d = d + 1;
e = 0;
f = 0;
}
d = 0;
c = c + 1;
}
// Werte in ner Zeile
while ( k <= 79)
{
Console.Write(feld [22,k] +"|");
k = k + 1;
}
int x = 0, y = 0, z = 0;
while ((x <= 59))
{
Console.Write("Anzahl der betroffenen Plätze in Zeile " + x + " ................... ");
while (y <= 79)
{
if (feld[x, y] == 1)
{
z = z + 1;
}
y = y + 1;
}
Console.WriteLine(z);
z = 0;
y = 0;
x = x + 1;
}
Console.ReadLine();
}
}
}