Serimizin 2. kodu aşağıda ve kısmen hazır...
Muhtemelen çözümü de 5 dakka 😀
Hatta işaretçi (pointer) kullanarak tek satırlık kod ile de mümkün ama o yasak! Amacımız ise (meydan okuma kısmı geliyor) en az kodla tek indeks kullanarak 2B diziye erişeceğiz. Sanırım ben 2-3 satır ekleyerek çözmüştüm.
Düzenli ve kolay olması için verimizi şu şekilde bir yapı içine aldım ve iki de hazır üye işlev yerleştirdim:
struct StaticData
{ // single index
char[t_SizeOf][6] array = [
"87654321".dup,
"ZYXWVUTS".dup,
"GNALD IH".dup,
"GnAlD iH".dup,
"gnalD iH".dup,
"gnald ih".dup
];
char getData(size_t i)
{
size_t y, x;
return array[y][x];
}
size_t length()
{
return array.length * array[0].length;
}
}
Bunların hepsi çözüm için bir şablon ve kolaylık. Hatta aşağıda klasik iç içe döngü ile erişimi de gösterdim. Yani amacımız, altındaki 2. bölüm gibi tek döngü ve indeks ile dizinin tüm elemanlarına erişmek istiyoruz. Hepsi bu!
enum t_SizeOf = 8;
import std.stdio;
void main()
{
// Classic (Nested Loops) Implement:
with(new StaticData)
{
for(size_t y = array.length; y!=0; --y)
{
for(size_t x = t_SizeOf; x!=0; --x)
{
array[y-1][x-1].write;
}
writeln;
}
// Single Index Implement:
size_t i = length - 1;
do {
getData(i).writeln(",", i);
} while(i--);
}
}/* ÇIKTISI: (Klasik kısmın!)
* hi dlang
* Hi Dlang
* Hi DlAnG
* HI DLANG
* STUVWXYZ
* 12345678
*/
Kolay gelsin...