Im в настоящее время застрял на части моего задания, которое я не могу понять. Это связано с тем, что я устанавливаю игровое поле, используя панель tablelayoutpanel в качестве игрового поля.Поместите объекты в ячейки tablelayoutpanel в определенном порядке
До сих пор я отобразили плитка «Квадраты» на борту, но плитки (клетки) не в порядке, так:
Мне нужен стартовый тайл, который будет отображаться в нижний левый и отделка, чтобы быть в правом верхнем углу, с клетками в середине, чтобы таким образом:
методы, относящиеся к этой части таковы:
///// Этот метод устанавливает игровой доски, используя и массив «Квадраты», (все еще в стадии разработки, но в основном сделано)
private void SetupGameBoard() {
for (int i = 0; i <= 41; i++) {
SquareControl squareCreate = new SquareControl(Board.Squares[i], null);
int coloumn = 0;
int row = 0;
MapSquareNumToScreenRowAndColumn(i, out coloumn, out row);
boardTableLayoutPanel.Controls.Add(squareCreate, coloumn, row);
}
}// SetupGameBaord
И это,
private static void MapSquareNumToScreenRowAndColumn(int squareNumber, out int rowNumber, out int columnNumber) {
// ######################## Add more code to this method and replace the next two lines by something more sensible. ###############################
rowNumber = 0; // Use 0 to make the compiler happy for now.
columnNumber = 0; // Use 0 to make the compiler happy for now.
}//end MapSquareNumToScreenRowAndColumn
Что я понял до сих пор, так это то, что в MapSquareToScreenRowandcColumn - это то, где должен произойти мой расчет выяснения того, где квадраты встают на свои места.
Было бы очень приятно некоторые советы/советы/помощь/что-либо на этом.
Если вам нужна дополнительная информация, то дайте мне знать.
Спасибо!
EDIT:
Так я понял, то, как это сделать, просто интересно о лучшем способе сделать это. В MapSqauretoScreenRowandColumn я ставлю это мало, если заявление, только для проверки:
if (squareNumber >= 0 && squareNumber <= 5) {
rowNumber = 6;
}
Так что, если sqaurenumber больше 0 и меньше 5, размещенные в правом ряду. Мой вопрос: есть ли лучший способ сделать это для остальных? вместо того, чтобы писать кучу строк для этого, есть ли способ сделать это в нескольких?
Спасибо за ответ, но действительно ли порядок, в котором я их положил? Я думал, что это будет больше связано с фактическим расчетом в MapSquareNumtoScreen (и т. Д.) – user3496101
Также, пожалуйста, просмотрите мое редактирование в OP, спасибо! – user3496101
@ user3496101 Я не вижу в вашем коде, как вы вычисляете столбец и значение строки. Но мой ответ касался того факта, что вы смешиваете свои столбцы и строки. Я бы подумал, что было бы проще просто иметь два цикла: 'fox y = 0 для строк, а затем для x = 0 для столбцов внутри. – LarsTech