average_angela Ответов: 1

Попытка написать код для функции на языке Си


i'm trying write the code for a minesweeper game. trying to write a function in the c language to reveal the tiles around the selected tile if the selected tile has no bombs around it. i think this can be done recursively but got no clue about how to do it that way. the thing is i don't know if this can be done by one recursive function because it has to check every direction and reveal them if there are no bombs around them and stop until it reaches a tile which has at least a bomb around it can someone explain how i can create this function. and an another problem is how can i make it evaluate all of the tiles around it? can someone help me and it doesn't have to be a recursive solution because i'm guessing that would be way more confusing.

Что я уже пробовал:

ребята мне очень жаль но я просто не имею ни малейшего понятия!!!

KarstenK

используйте массив типа int playground[8][8];

1 Ответов

Рейтинг:
1

Rick York

Вот один из способов. Предположим,что ваше местоположение интереса находится в позиции (x, y). Вы можете написать функцию (или метод) под названием CheckTile и передать ей позицию для проверки. Тогда вы можете написать свою логику проверки примерно так:

CheckTile( x-1, y );  // to the left
CheckTile( x, y-1 );  // the one above
CheckTile( x+1, y );  // to the right
CheckTile( x, y+1 );  // the one below
Не забудьте убедиться, что позиция, переданная в CheckTile, является допустимой - например, отрицательные координаты недопустимы. Если вам нужно проверить соседние плитки под углом 45 градусов,то они также будут находиться в положениях (x+1, y+1), (x+1, y-1), (x-1,y-1) и (x-1,y+1).

Это всего лишь базовый алгоритм. Скорее всего, вам нужно будет передать больше параметров и вернуть что-то полезное из функции.

Чтобы сделать то, что вы описали, затем закажите поиск таким образом, чтобы он имел смысл, и вернитесь, когда будет найден первый. Например, вы можете проверить направление по часам, начиная с приведенного выше. Ключ в том, чтобы написать очень простые функции, которые вы можете легко организовать, чтобы заставить логику работать так, как ей нужно.


CPallini

5.

Rick York

Спасибо, КП.