˹á
 úҹ
  C/C++ new
  Java new
 Sourcecode.TV
  Android
  Blackberry
  C/C++
  Java
  Linux
  Windows Phone
  ͧͧ
 
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 Ẻ¹
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 ԡèҡ
  Դ...
  DoodeeHosting
  Ѻ͡Ẻ Ѳ䫵
  Freeware
  ѵҤɳ
  ª١
  ʶԵԼ
 Ŵ
 Ң
 дҹʹ
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
 
 дҹҹ
 ԧ
 ǡѺ
 ѵҤɳ
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
 (BerDee)
(Android)
駩غ
駩غ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ԴͺʹФѺ...
2015-07-29 13:35:58
  Ҽͧ纷ѲҴ HTML5 ...
2015-01-18 15:33:54
  Ҽͧ纷ѲҴ HTML5 ...
2015-01-18 15:32:51
  ԴͺФѺ
ҹ...

2014-01-06 12:47:38
  ѧҤ͹ ͧ֡ͧ...
2013-07-06 01:04:37
  ʹ觢ͺࢵҤҤҡ͹ФѺ...
2013-03-24 18:54:20
  ѧդѺҹԴѺ 08...
2012-12-16 19:18:14
  ʹ㨤 Դ 0905076277...
2012-11-12 11:07:46
  Ѻ礹ѡ֡ͺѷ
...

2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  ͧ gotoxy ѧ...
2017-08-28 11:45:52
  ͧҧա u...
2017-08-27 20:09:01
  #define GLUT_DISABLE_ATEXIT...
2017-08-27 12:53:17
  դԻ͹ ...
2017-08-27 10:50:02
  Ѻ ͹ matlab ¹ matlab...
2017-06-03 16:27:23
  ੾зҧҴ ͧҢ...
2017-05-25 16:18:08
  ͧ˹Ѻ os ...
2017-05-25 16:12:47
  ¹ php curl ...
2017-04-20 01:04:20
  ¹ ...
2017-03-27 12:50:54
  ʧҷ ͧѾഷ...
2017-03-27 12:37:20
  Homework comment
  ͺسҡѺ...
2017-08-16 18:27:25
  ͧ ͧ ѧ ^^...
2017-04-18 18:40:46
  ͧ ͧ ѧ ^^...
2017-04-18 18:37:54
  á flowchart ѹ...
2017-04-18 17:43:33
  ҡ flowchart ...
2017-04-18 16:25:29
  kungking ӶäѺ ?...
2017-03-18 23:28:36
  ¹ʴͧ...
2017-03-06 10:56:25
  鴷ӧҹẺ ...
2016-09-06 01:00:12
  ҡҺ鴹Ѻѧ...
2016-09-05 09:31:27
  ͧ֡¹...
2016-04-22 00:47:49
  Article comment
  [b] , ...
2017-10-22 20:24:51
  [b] , ...
2017-10-22 20:24:28
  [b] , ...
2017-10-22 20:23:52
  [b] , ...
2017-10-22 20:23:09
  [b] , ...
2017-10-21 23:35:27
  [b] , ...
2017-10-20 10:05:06
  [b]5 ...
2017-10-18 08:19:17
  - ...
2017-10-18 07:17:11
  [b] ...
2017-10-18 06:07:31
  [b] 96 ...
2017-10-18 06:05:28
  9Mcode comment
  ҡ...
2014-02-21 08:52:19

Link Exchange

ѵҤɳ
Statistics of Sourcecode in Thailand
 
 Webboard

- - - - - - - - - - - - - - ʹѺʹع- - - - - - - - - - - - - -

з #3494 [C]

͸Ժminesweeper(c++)դ ¤

áǡѺ¹ ô͸Ժ굢ҧҧչФ ͡ҺͺФسǧ˹ҹФ
#include <iostream>
#include<cstdlib>
#include<ctime>

const int DIMX = 6;
const int DIMY = 6;
const int MINES = 6;
const int MINE = -1;
const char COVERED = 'X';
const char UNCOVERED = ' ';
const char FLAG = 'F';
int state[DIMX][DIMY];
char display[DIMX][DIMY];

void init(); // initialize game states
int countSorroundingMines(int x, int y); // helper function used by init
void reveal(int x, int y);
void player(); // handle player input
void setFlag();
void uncover();
void print(); // print the minefield
void cheat(); // print out the mines
bool isWin();
bool isLose();
bool playNewGame();

int main() {
std::cout << "Welcome to MineSweeper!" << std::endl;
init();
bool playing = true;
while(playing) {
print();
player();
if(isWin()) {
std::cout << "You Win!" << std::endl;
playing = false;
} else if(isLose()) {
std::cout << "You Lose!" << std::endl;
playing = false;
}

if(!playing) {
playing = playNewGame();
if(playing) {
init();
}
}
}
std::cout << "Exiting Minesweeper!" << std::endl;
return 0;
}

void init() {
std::cout << "New Game!" << std::endl;
// set display to "uncovered"
for(int y = 0; y < DIMY; y++) {
for(int x = 0; x < DIMX; x++) {
display[x][y] = COVERED;
}
}
// initialize mines
srand(time(0));
for(int i = 0; i < MINES; i++) {
bool placed = false;
while(!placed) {
int x = rand() % DIMX;
int y = rand() % DIMY;
if(state[x][y] != MINE) { // check mine not set
placed = true;
state[x][y] = MINE;
}
}
}
// place hint numbers
for(int y = 0; y < DIMY; y++) {
for(int x = 0; x < DIMX; x++) {
state[x][y] = countSorroundingMines(x, y);
}
}
}

bool playNewGame() {
bool selected = false;
while(!selected) {
char choice;
std::cout << "Play another game? Y or N" << std::endl;
std::cin >> choice;
if(choice == 'N' || choice == 'n') {
return false;
selected = true;
} else if(choice == 'Y' || choice == 'y') {
return true;
selected = true;
} else {
std::cout << "That is not a valid choice!" << std::endl;
}
}
}

void reveal(int x, int y) {
if(x >= 0 && x < DIMX && y >= 0 && y < DIMY) { // check that x and y are valid
if(display[x][y] == UNCOVERED) {
return;
}
display[x][y] = UNCOVERED;

if(state[x][y] == MINE || state[x][y] != 0) {
return;
}
reveal(x - 1, y - 1);
reveal(x, y - 1);
reveal(x + 1, y - 1);
reveal(x - 1, y);
reveal(x + 1, y);
reveal(x - 1, y + 1);
reveal(x, y + 1);
reveal(x + 1, y + 1);
} else {
return;
}
}

/*
[x-1, y-1][x, y-1][x+1, y-1]
[x-1, y ][x, y ][x+1, y ]
[x-1, y+1][x, y+1][x+1, y+1]
*/
int countSorroundingMines(int x, int y) {
if(state[x][y] == MINE) {
return MINE;
}
int num = 0;
if(x > 0 && y > 0) { // top left
if(state[x - 1][y - 1] == MINE) {
num++;
}
}
if(y > 0) { // top
if(state[x][y - 1] == MINE) {
num++;
}
}
if(x < DIMX - 1 && y > 0) { // top right
if(state[x + 1][y - 1] == MINE) {
num++;
}
}
if(x > 0) { // left
if(state[x - 1][y] == MINE) {
num++;
}
}
if(x < DIMX - 1) { // right
if(state[x + 1][y] == MINE) {
num++;
}
}
if(x > 0 && y < DIMY - 1) { // bottom left
if(state[x - 1][y + 1] == MINE) {
num++;
}
}
if(y < DIMY - 1) { // bottom
if(state[x][y + 1] == MINE) {
num++;
}
}
if(x < DIMX - 1 && y < DIMY - 1) { // bottom right
if(state[x + 1][y + 1] == MINE) {
num++;
}
}
return num;
}

bool isWin() {
bool win = true;
for(int y = 0; y < DIMY; y++) {
for(int x = 0; x < DIMX; x++) {
win &= ((display[x][y] == UNCOVERED && state[x][y] != MINE) ||
((display[x][y] == COVERED || display[x][y] == FLAG) && state[x][y] == MINE));
}
}
return win;
}

bool isLose() {
for(int y = 0; y < DIMY; y++) {
for(int x = 0; x < DIMX; x++) {
if (display[x][y] == UNCOVERED && state[x][y] == MINE) {
return true;
}
}
}
return false;
}

void player() {
std::cout << "Commands: R => reveal square, F => set flag, C => cheat, N => New Game" << std::endl;
bool selected = false;
while(!selected) {
char choice;
std::cin >> choice;
if(choice == 'R' || choice == 'r') {
uncover();
selected = true;
} else if(choice == 'F' || choice == 'f') {
setFlag();
selected = true;
} else if(choice == 'C' || choice == 'c') {
cheat();
} else if(choice == 'N' || choice == 'n') {
init();
selected = true;
} else {
std::cout << "Invalid Choice!" << std::endl;
}
}

}

void uncover() {
bool selected = false;
while(!selected) {
int x;
int y;
std::cout << "Input X (1 - " << (DIMX) << ")" << std::endl;
std::cin >> x;
std::cout << "Input Y (1 - " << (DIMY) << ")" << std::endl;
std::cin >> y;
x--;
y--;
if(x >= 0 && x < DIMX && y >= 0 && y < DIMY) {
reveal(x, y); // call recursive reveal algorithm
selected = true;
} else {
std::cout << "(X,Y) Values out of range!" << std::endl;
}
}
}

void setFlag() {
bool selected = false;
while(!selected) {
int x;
int y;
std::cout << "Input X (1 - " << (DIMX) << ")" << std::endl;
std::cin >> x;
std::cout << "Input Y (1 - " << (DIMY) << ")" << std::endl;
std::cin >> y;
x--;
y--;
if(x >= 0 && x < DIMX && y >= 0 && y < DIMY) {
display[x][y] = FLAG;
selected = true;
} else {
std::cout << "(X,Y) Values out of range!" << std::endl;
}
}
}

void cheat() {
std::cout << "Cheating is bad!" << std::endl;
std::cout << " ";
for(int x = 0; x < DIMX; x++) {
std::cout << (x + 1) << " ";
}
std::cout << std::endl << "";
for(int x = 0; x < DIMX; x++) {
std::cout << "";
}
std::cout << std::endl;
for(int y = 0; y < DIMY; y++) {
std::cout << (y + 1) << " ";
for(int x = 0; x < DIMX; x++) {
if(state[x][y] == MINE) {
std::cout << "@ ";
} else {
if(state[x][y] == 0) {
std:: cout << " ";
} else {
std:: cout << state[x][y] << " ";
}
}
}
std::cout << std::endl;
}
}

void print() {
std::cout << " ";
for(int x = 0; x < DIMX; x++) {
std::cout << (x + 1) << " ";
}
std::cout << std::endl << "";
for(int x = 0; x < DIMX; x++) {
std::cout << "";
}
std::cout << std::endl;
for(int y = 0; y < DIMY; y++) {
std::cout << (y + 1) << " ";
for(int x = 0; x < DIMX; x++) {
if(display[x][y] == COVERED || display[x][y] == 'F') { // is it tile still uncovered
std::cout << display[x][y] << " ";
} else { // display the state
if(state[x][y] == MINE) {
std::cout << "@ ";
} else {
if(state[x][y] == 0) {
std:: cout << " ";
} else {
std:: cout << state[x][y] << " ";
}
}
}
}

std::cout << std::endl;
}
}
ҡس : pin / j_rungrat@hotmail.com [2014-02-01 15:41:56]  

27.55.35.58 Դ #29001 (ҡ IP: 27.55.35.58)
ѹ˹¡ͧɴ¹Ф ¡ѹФ Դҷ硹¤˹觹 ʹҨ¹͸Ժ´ Ңҹդô˹ٴ¹Ф
ҡس : pin [2014-02-01 16:10:16]

125.24.162.120 Դ #29002 (ҡ IP: 125.24.162.120)
.¹͸Ժ 鹤͡÷ͧ͸Ժ觷ԴͧѹЧ¡

硹¤˹ ҡ¹ ¹ 鴷 餹͸Ժ͸Ժ . ѧ

йӤ 1¹ͧ 2蹷ͧ ֡ͧТͧ
ҡس : maddog [2014-02-02 01:19:50]

27.55.7.181 Դ #29003 (ҡ IP: 27.55.7.181)
鹾¡ҧ¡ ox ͧԴŢ ٴǧ ͹ ѹҡСԹẺҡ¹ ͨ Ҿͧ ˹Ѻ͹ͧ¡ѹԴѹҡҤԴͧҧ º͡ǷҧФ úǹաԴ
ҡس : pin [2014-02-02 12:09:55]

103.5.27.31 Դ #29004 (ҡ IP: 103.5.27.31)
͡ "ԴͧѹЧ¡" ͶҾǡͧԴ͡Ť "ءҧҡѺǡͧ" ͹Һ͡仡ҡѺͧ

駩غ ǡŢ ͡

ǷҧѺԴͧ ¹ͧ ͡ ֡ Դç˹ͺ "·" դ¹ ҵͧѴ觵ͧ͹

ǹԸաþ觤蹤Ҥ ͺ . ͹㹻繷ʧ ¹ Ҥ
ͺ纺 (㹻繷Դѭ)

¹ ѡ ֡ ҹ ¹
ҡس : maddog [2014-02-02 14:56:19]
ͺз
´

- - - - - - - - - - - - - - ʹѺʹع- - - - - - - - - - - - - -

 
 
µͨ Ѻͧ macbook pro 2016 (usb-c to HDMI)
µͨ Ѻͧ macbook pro 2016 (usb-c to HDMI) ´дѺ 4K
ŧ Mini DisplayPort to HDMI Adapter ŧ Mini DisplayPort to HDMI Adapter Ѻͧ macbook air/pro, mac mini
ŧ Mini DisplayPort to HDMI Adapter Ѻͧ macbook air/pro, mac mini
µٿѧ Ъ Ѻ iPhone 7  7 Plus
µٿѧ Ъ Ѻ iPhone 7 7 Plus
ŧҡ USB-C Type  USB 3.1 Ѻ MacBook
ŧҡ USB-C Type USB 3.1 Ѻ MacBook
䢤ǧѺͧ Macbook Air/Pro
䢤ǧ Ѻͧ Macbook Air/Pro (300ҷ)
HDMI  3 ͡  1
HDMI 3 ͡ 1 (350ҷ)
Ի͹¹
¹¹ͷ
¹¹͹´
¹¹
¹¹ վʾ
¹¹
¹ҹԹء
¹¹Թ⿹
¹¹Ϊ ʤ
9M Blog ͧ͡ ¹ͧ
ԡ ҾѺԭ
OrmSin.com: ˹ѧͧҹ--չ (country crafts)
ѵҤɳ
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
ẺǨ
Freelance ѺѲ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

ʧǹԢԷ Ѵ͡ ӫ Ѵŧ ٻẺ Ѻ͹حҵѡɳѡ
Ţ¹ҳԪ硷͹ԡҡзǧҳԪ: 7100503002000
Copyright 2001 SourceCode.in.th