Переписать код с Pascal на C# - C# (201585)
Формулировка задачи:
Навеяло отсюда Переписать код с Pascal на C#
А можно мне тоже, пожалуйста?
program pjan;
USES crt;
VAR
i,j,s,pi,pj:integer;
a:array[1..30,1..30] of string;
BEGIN
randomize;
pi:=30;
pj:=random(30)+1;
for i:=1 to 10 do begin
a[random(30)+1,random(30)+1]:='#';
end;
a[pi,pj]:='i';
while pi>1 do begin
for i:= 1 to 30 do begin
for j:= 1 to 30 do begin
write(a[i,j]:1);
end;
writeln;
end;
delay(1000);
clrscr;
s:=random(4);
case s of
0: if a[pi-1,pj-1]='#' then begin
a[pi,pj]:='j';
delay(2000);
a[pi,pj]:='i';
end
else if (pj<=30) and (pj>1) then begin
a[pi,pj]:='';
pi:=pi-1;
pj:=pj-1;
a[pi,pj]:='i';
end;
1:if a[pi-1,pj]='#' then begin
a[pi,pj]:='j';
delay(2000);
a[pi,pj]:='i';
end
else begin
a[pi,pj]:='';
pi:=pi-1;
a[pi,pj]:='i';
end;
2:if a[pi-1,pj+1]='#' then begin
a[pi,pj]:='j';
delay(2000);
a[pi,pj]:='i';
end
else if (pj<30) and (pj>=1) then begin
a[pi,pj]:='';
pi:=pi-1;
pj:=pj+1;
a[pi,pj]:='i';
end;
3:if a[pi+1,pj]='#' then begin
a[pi,pj]:='j';
delay(2000);
a[pi,pj]:='i';
end
else if pi<30 then begin
a[pi,pj]:='';
pi:=pi+1;
a[pi,pj]:='i';
end;
end;
end;
ReadLn;
END.Решение задачи: «Переписать код с Pascal на C#»
textual
Листинг программы
using System;
using System.Threading;
namespace Programs
{
class Program
{
private static Random _random = new Random();
static void Main(string[] args)
{
int s, pi, pj;
string[,] a = new string[30, 30];
pi = 30;
pj = _random.Next(30) + 1;
for (int i = 0; i < 11; i++)
{
a[_random.Next(31)+1, _random.Next(31)+1] = "#";
}
a[pi, pj] = "i";
while (pi > 1)
{
for (int i = 0; i < 31; i++)
for (int j = 0; j < 31; j++)
{
Console.Write("{0}", a[i, j]);
}
Console.WriteLine();
}
Thread.Sleep(1000);
Console.Clear();
s = _random.Next(4);
switch (s)
{
case 0:
if (a[pi-1, pj-1] == "#")
{
a[pi, pj]="j";
Thread.Sleep(2000);
a[pi, pj] = "i";
}
else
if ((pj <= 30) && (pj > 1))
{
a[pi, pj] = " ";
pi--;
pj--;
a[pi, pj] = "i";
}
break;
case 1:
if (a[pi - 1, pj] == "#")
{
a[pi, pj] = "j";
Thread.Sleep(2000);
a[pi, pj] = "i";
}
else
{
a[pi, pj] = "";
pi--;
pj--;
a[pi, pj] = "i";
}
break;
case 2:
if (a[pi - 1, pj + 1] == "#")
{
a[pi, pj] = "j";
Thread.Sleep(2000);
a[pi, pj] = "i";
}
else
{
if ((pj<30) && (pj>=1))
{
a[pi,pj]="";
pi--;
pj--;
a[pi,pj]="i";
}
}
break;
case 3:
if (a[pi+1,pj]=="#")
{
a[pi,pj]="j";
Thread.Sleep(2000);
a[pi,pj]="i";
}
else if (pi<30)
{
a[pi, pj] = "";
pi++;
a[pi, pj] = "i";
}
break;
}
Console.ReadKey(true);
}
}
}