Мне нужно добавить значение, которое будет либо p1 (выплата один), либо p2 (выплата два) для окружающих четырех соседей значения в матрице, которое затем будет напечатано в новую матрицу массива. Если это 1, тогда p1 нужно будет добавить к его соседям или, если его 0, тогда p2 будет добавлено к его соседям. Я пытался сделать этот подход с вложенным для l oop, но мое утверждение «если» в моем для l oop дает мне ошибки, и я не уверен, куда дальше go с ним.
class MainClass
{
static void Main(string[] args)
{
int m, n, i, j, p1, p2;
// rows and columns of the matrix+
m = 3;
n = 3;
//Payoff matrix
p1 = 10; //cheat payoff matrix
p2 = 5; //co-op payoff matrix
int[,] arr = new int[3, 3];
Console.Write("To enter 1 it means to co-operate" );
Console.Write("To enter 0 it means to cheat");
Console.Write("Enter elements of the Matrix: ");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
arr[i, j] = Convert.ToInt16(Console.ReadLine());
}
}
Console.WriteLine("Printing Matrix: ");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
Console.Write(arr[i, j] + "\t");
}
Console.WriteLine();
}
// how to change the values of the matrix
int[] payoffMatrix = new int[4];
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if(arr[i,j] == 1)
{
arr[i, j] = arr[i - 1, j] , arr[i + 1, j] , arr[i, j - 1] , arr[i, j + 1];
}
}
Console.WriteLine();
}
Результат соседних значений должен быть напечатан в матрице выплат, а также