import random
n=9
bombi_nuzhno = 7
bombi = 0
a = [[0 for i in range(n)] for j in range(n)]
#распределение бомб
while bombi < bombi_nuzhno:
i = random.randint(0,6)
j = random.randint(0,6)
if a[i][j]!="*":
a[i][j] = '*'
bombi += 1
for i in range(len(a)-2):
for j in range(len(a[i])-2):
print(a[i][j], end =' ')
print()
#цифры
z=a
for i in range(len(z)):
for j in range (len(z[i])):
if z[i][j]==0 and z[i+1][j]=="*":
z[i][j]+=1
if z[i][j]==0 and z[i-1][j]=="*":
z[i][j]+=1
if z[i][j]==0 and z[i][j+1]=="*":
z[i][j]+=1
if z[i][j]==0 and z[i+1][j-1]=="*":
z[i][j]+=1
if z[i][j]==0 and z[i+1][j+1]=="*":
z[i][j]+=1
if z[i][j]==0 and z[i-1][j-1]=="*":
z[i][j]+=1
if z[i][j]==0 and z[i-1][j+1]=="*":
z[i][j]+=1
Это код, который должен выводить поле 7 на 7. сначала расставляются бомбы, а затем цифры как в сапере. Требуется исправить ошибку выхода из массива
(это питон)
internal class Program
{
private static void Main()
{
Console.WriteLine(DoSomeThing("Как тебе живется", "цчхб"));
Console.WriteLine(DoSomeThing("Как тебе живется", "цчх"));
Console.WriteLine(DoSomeThing("Как тебе живется", "цчхи"));
Console.WriteLine(DoSomeThing("Как тебе живется", "цчахбаек"));
Console.WriteLine("Программа оконченна");
Console.ReadKey();
}
private static string DoSomeThing(string st1, string st2)
{
Console.WriteLine();
//Console.WriteLine($"{st1} - {st2}");
var i = 0;
for (var j = 0; j < st1.Length; j++)
{
//Console.WriteLine($"st1[{j}] = {st1[j]} {!st2.Contains(st1[j].ToString())}");
if (!st2.Contains(st1[j].ToString())) continue;
i = j;
break;
}
if (i == 0) return "Нет совпадений";
var s = st1.LastIndexOf(" ", i, StringComparison.Ordinal) > 0
? st1.Substring(0, st1.LastIndexOf(" ", i, StringComparison.Ordinal))
: "";
s = s +
(st1.IndexOf(" ", i, StringComparison.Ordinal) > 0
? st1.Substring(st1.IndexOf(" ", i, StringComparison.Ordinal))
: "");
return "Искомый символ - " + st1[i] + "\n" + s.Trim();
}
}