| Calendar |
| « June 2014 » |
| Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | | 8 | 9 | 10 | 11 | 12 | 13 | 14 | | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | 22 | 23 | 24 | 25 | 26 | 27 | 28 | | 29 | 30 | |
|
Main » 2014 » June » 13 » C++ Program for MINESWEEPER
10:37:12 PM C++ Program for MINESWEEPER |
// MINESWEEPER void main() { int b; do { cout << "Enter number of squares per side (2 - 10)" << endl; cin >> b; }while(b < 1 && b >= 10); int board[b][b]; //0 - 8 = # of mines, 9 is mine int revealed[b][b]; //1 is revealed int i = 0; int j = 0; int x = 0; int y = 0; int z; //number of mines int q; int t = 0; //game over input int dead = 0; do { cout << "How many mines? (1 - " << ((b*b)-1) << ")" << endl; cin >> z; }while(z <= 0 && z >= ((b*b)-1)); for(i=0;i<b;i++) for(j=0;j<b;j++) board[i][j] = 0; i = random(i, b); j = random(j, b); cout << "Generating board..." << endl; do { i+=3; j+=6; x = random(i, b); y = random(j, b); if(board[y][x] != 9) { board[y][x] = 9; z--; if((y-1) >= 0) if(board[y-1][x] != 9) board[y-1][x]++; if((y-1) >= 0 && (x-1) >= 0) if(board[y-1][x-1] != 9) board[y-1][x-1]++; if((x-1) >= 0) if(board[y][x-1] != 9) board[y][x-1]++; if((y+1) < b) if(board[y+1][x] != 9) board[y+1][x]++; if((y+1) < b && (x+1) < b) if(board[y+1][x+1] != 9) board[y+1][x+1]++; if((x+1) < b) if(board[y][x+1] != 9) board[y][x+1]++; if((y-1) >= 0 && (x+1) < b) if(board[y-1][x+1] != 9) board[y-1][x+1]++; if((y+1) < b && (x-1) >= 0) if(board[y+1][x-1] != 9) board[y+1][x-1]++; } }while(z>0); for(i = 0; i < b; i++) for(j=0;j<b;j++) revealed[i][j]=0; //board creation end //ask for input/check squares loop do { system ("clear"); q = 0; z = 0; cout << " "; for(i=0;i<b;i++) cout << i << " "; cout << endl; for(i=0;i<b;i++) { for(j=0;j<b;j++) { if(j==0) cout << i << " |"; if(revealed[i][j]==1) reveal(board[i][j]); else cout << "_|"; if(j==(b-1)) cout << endl; if(board[i][j]!=9 && revealed[i][j]==1) q++; if(board[i][j] == 9) z++; } } if(q >= ((b*b) - z)) { cout << "You win!" << endl; dead = 1; } if(dead == 0) { cout << "X: "; cin >> x; cout << "Y: "; cin >> y; } if(board[y][x] == 9) { system ("clear"); cout << "You hit a mine!" << endl; cout << " "; for(i=0;i<b;i++) cout << i << " "; cout << endl; dead = 1; for(i=0; i<b; i++) { for(j=0;j<b;j++) { if(j==0) cout << i << " |"; if(board[i][j]==9) revealed[i][j]=1; if(revealed[i][j]==1) reveal(board[i][j]); else cout << "_|"; if(j==(b-1)) cout << endl; } }
} if(board[y][x]==0) { revealed[y][x] = 1; for(i=0;i<b;i++) { for(j=0;j<b;j++) { if(i>(y-2)&&i<(y+2)) if(j>(x-2)&&j<(x+2)) if(board[i][j]!=9) revealed[i][j]=1; } } } if(board[y][x]>0 && board[y][x]<9) revealed[y][x] = 1; } while(dead == 0); if (dead == 1) replay(); }
void replay() { char a; cout << "1) Replay 2) Quit" << endl; cin >> a; switch(a) { case '1': main(); break; case '2': cout << "Quit" << endl; break; default: cout << "Invalid input" << endl; replay(); break; } }
void reveal(int x) { if(x == 0) cout << "o|"; else if(x == 9) cout << "x|"; else cout << x << "|"; }
int random(int i, int b) { long ran; int t = time(0); int s; srand(t); s = ran; ran = rand(); ran >>= ran / (ran * i) + (i * 1337); ran = ran % b; return ran; }
|
|
Views: 2101 |
Added by: Chinnu1
| Rating: 5.0/1 |
|
|
| Statistics |
Total online: 1 Guests: 1 Users: 0 |
|