Для тренировки сделал сапера. Пишем столбец и строку, а в ответ получаем количество мин вокруг.
#include
#include
#include
int main() {
const int SIZE = 3;
const int ALL_MINES = 3;
bool m[SIZE+2][SIZE+2];
bool u[SIZE+2][SIZE+2];
for(int i=0; i<=SIZE+1; i++){
for(int j=0; j<=SIZE+1; j++){
m[i][j] = false;
u[i][j] = false;
}
}
srand(time(0));
int x, y;
for(int i=1; i<=ALL_MINES; i++){
do{
x = rand() % SIZE + 1;
y = rand() % SIZE + 1;
}while(m[x][y]);
m[x][y] = true;
}
int xCount = SIZE * SIZE - ALL_MINES;
while(xCount != 0){
std::cin >> x >> y;
int xMines = 0;
if(m[y][x]){
std::cout << "fail" << std::endl;
break;
}
for(int i=y-1; i<=y+1; i++){
for(int j=x-1; j<=x+1; j++){
if(m[i][j]){xMines++;}
}
}
std::cout << xMines << std::endl;
if (!u[y][x]){
xCount--;
u[y][x] = true;
}
}
if (xCount = 0){std::cout << "win" << std::endl;}
for(int i=1; i<=SIZE; i++){
for(int j=1; j<=SIZE; j++){
std::cout << m[i][j];
}
std::cout << std::endl;
}
return 0;
}
* This source code was highlighted with Source Code Highlighter.
Над кодом долго не думал :)
красава
ОтветитьУдалить