?>
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();
}
}