#include<graphics.h>
#include<Windows.h>
#include<conio.h>
#include <math.h>
#include<time.h>
#include<mmsystem.h>
#pragma comment(lib, "winmm.lib")
void hello();
void load();
void start();
void writer();
void board();
void behind();
int success(int[15][15]);
void regret(int[15][15], int[15][15]);
void machine();
int robot(int[15][15], int[15][15], int[15][15]);
void win(int);
void over();
HWND gc;
void hello() {
initgraph(800, 600);
setbkcolor(WHITE);
cleardevice();
mciSendString(TEXT(" open 音乐.mp3 alias mysong"), NULL, 0, NULL);
mciSendString(TEXT("play mysong"), NULL, 0, NULL);
load();
}
void load() {
IMAGE mg;
loadimage(&mg, "image\\loading01.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading02.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading03.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading04.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading05.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading06.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading07.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading08.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading09.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading10.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading11.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading12.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading13.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading14.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading15.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading16.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading17.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading18.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading19.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading20.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading21.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading22.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading23.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading24.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading25.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading26.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading27.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading28.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading29.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading30.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading31.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading32.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading33.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading34.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading35.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading36.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading37.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading38.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading39.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading40.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading41.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading42.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading43.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading44.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading45.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading46.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading47.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading48.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading49.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading50.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading51.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading52.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading53.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading54.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading55.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading56.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading57.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading58.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading59.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading60.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading61.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading62.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading63.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading64.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading65.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading66.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading67.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading68.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading69.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading70.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading71.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading72.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading73.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading74.jpg");
putimage(0, 0, &mg);
Sleep(80);
loadimage(&mg, "image\\loading75.jpg");
putimage(0, 0, &mg);
}
void start()
{
int cont = 0;
initgraph(600, 800);
cleardevice();
settextcolor(RED);
setbkmode(TRANSPARENT);
settextstyle(128, 0, "宋体");
outtextxy(100, 100, "五子棋");
setlinecolor(RED);
rectangle(150, 300, 450, 650);
rectangle(160, 310, 440, 640);
line(160, 420, 440, 420);
line(160, 530, 440, 530);
settextstyle(65, 0, "五子棋");
outtextxy(170, 340, "人机大战");
outtextxy(170, 450, "双人对战");
outtextxy(170, 560, "联系作者");
setlinecolor(WHITE);
settextcolor(WHITE);
IMAGE gc;
loadimage(&gc, "image//jjkk.png");
putimage(220, 660, &gc);
while (true)
{
MOUSEMSG m;
m = GetMouseMsg();
if (m.uMsg == WM_LBUTTONDOWN)
{
if (m.x <= 440 && m.x >= 160 && m.y < 640 && m.y > 530)
writer();
if (m.x <= 440 && m.x >= 160 && m.y < 530 && m.y > 420)
behind();
if (m.x <= 440 && m.x >= 160 && m.y < 420 && m.y > 310)
machine();
if (m.x <= 575 && m.x >= 528 && m.y < 75 && m.y > 25)
{
if (cont % 2 == 0)
{
mciSendString(TEXT("pause mysong"), NULL, 0, NULL);
cont++;
}
else
{
mciSendString(TEXT("resume mysong"), NULL, 0, NULL);
cont++;
}
}
}
}
}
void writer()
{
initgraph(600, 600);
setbkcolor(WHITE);
cleardevice();
IMAGE img;
loadimage(&img, "image\\writer.png");
putimage(100, 100, &img);
settextcolor(RED);
outtextxy(100, 50, "小伙子不错");
outtextxy(50, 500, "教你一招半式,走向棋坛巅峰");
settextstyle(20, 0, "宋体");
while (true)
{
MOUSEMSG m;
m = GetMouseMsg();
if (m.uMsg == WM_LBUTTONDOWN)
if (m.x <= 350 && m.x >= 250 && m.y <= 350 && m.y >= 250)
start();
}
}
void board()
{
initgraph(1200, 800);
setbkcolor(BLACK);
cleardevice();
setlinecolor(WHITE);
circle(1060, 130, 31);
for (int i = 50; i <= 750; i += 50)
{
line(i, 50, i, 750);
line(50, i, 750, i);
}
for (int i = 200; i < 800; i += 400)
{
for (int j = 200; j < 800; j += 400)
fillcircle(i, j, 5);
}
setlinecolor(RED);
rectangle(860, 400, 1140, 690);
rectangle(870, 410, 1130, 680);
line(870, 500, 1130, 500);
line(870, 590, 1130, 590);
settextstyle(50, 0, "宋体");
outtextxy(940, 435, "悔 棋");
outtextxy(940, 525, "重 来");
outtextxy(940, 615, "投 降");
outtextxy(800, 100, "玩家一:");
outtextxy(800, 250, "玩家二:");
setfillcolor(RED);
fillcircle(1060, 130, 30);
setfillcolor(WHITE);
fillcircle(1060, 270, 30);
}
void behind()
{
board();
setlinecolor(WHITE);
MOUSEMSG m;
int i = 0, x, y, q = 0, p = 0;
int red[15][15], white[15][15], stick[15][15];
while (true)
{
m = GetMouseMsg();
x = m.x % 50;
y = m.y % 50;
setrop2(R2_COPYPEN);
if (m.uMsg == WM_LBUTTONDOWN)
{
if (i % 2 == 0 && m.x <= 1130 && m.y < 680 && m.x >= 860 && m.y > 590)
win(1);
if (i % 2 == 1 && m.x <= 1130 && m.y < 680 && m.x >= 860 && m.y > 590)
win(2);
if (m.x <= 1130 && m.y < 590 && m.x >= 860 && m.y > 500)
behind();
if (m.x <= 1130 && m.y < 500 && m.x >= 860 && m.y > 410)
{
if (i % 2 == 1)
{
red[p][q] = 0;
stick[p][q] = 0;
i++;
}
else {
white[p][q] = 0;
stick[p][q] = 0;
i++;
}
regret(red, white);
}
if (x >= 25)
m.x = m.x - x + 50;
else
m.x = m.x - x;
if (y >= 25)
m.y = m.y - y + 50;
else
m.y = m.y - y;
p = m.x / 50 - 1;
q = m.y / 50 - 1;
if (p < 15 && q < 15)
{
if (stick[p][q] == 1)
continue;
if (i % 2 == 0 && m.x <= 750 && m.y <= 750 && m.x >= 50 && m.y >= 50)
{
setfillcolor(RED);
fillcircle(m.x, m.y, 20);
red[p][q] = 1;
if (success(red) == 1)win(2);
stick[p][q] = 1;
i++;
}
else if (i % 2 == 1 && m.x <= 750 && m.y <= 750 && m.x >= 50 && m.y >= 50)
{
setfillcolor(WHITE);
fillcircle(m.x, m.y, 20);
white[p][q] = 1;
if (success(white) == 1)win(1);
stick[p][q] = 1;
i++;
}
}
}
}
}
int success(int x[15][15])
{
int m, n;
for (m = 0; m < 15; m++)
{
for (n = 0; n < 15; n++)
{
if (x[m][n] == 1 && x[m][n + 1] == 1 && x[m][n + 2] == 1 && x[m][n + 3] == 1 && x[m][n + 4] == 1)return 1;
if (x[m][n] == 1 && x[m + 1][n] == 1 && x[m + 2][n] == 1 && x[m + 3][n] == 1 && x[m + 4][n] == 1)return 1;
if (x[m][n] == 1 && x[m + 1][n + 1] == 1 && x[m + 2][n + 2] == 1 && x[m + 3][n + 3] == 1 && x[m + 4][n + 4] == 1)return 1;
if (n > 3 && x[m][n] == 1 && x[m + 1][n - 1] == 1 && x[m + 2][n - 2] == 1 && x[m + 3][n - 3] == 1 && x[m + 4][n - 4] == 1)return 1;
}
}
return 0;
}
void regret(int x[15][15], int y[15][15])
{
board();
setrop2(R2_COPYPEN);
setcolor(WHITE);
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
if (x[i][j] == 1) {
setfillcolor(RED);
fillcircle((i + 1) * 50, (j + 1) * 50, 20);
}
if (y[i][j] == 1) {
setfillcolor(WHITE);
fillcircle((i + 1) * 50, (j + 1) * 50, 20);
}
}
}
}
void machine()
{
board();
setlinecolor(WHITE);
MOUSEMSG m;
int i = 0, x, y, q = 0, p = 0;
int red[15][15], white[15][15], stick[15][15], whtie1[15][15];
while (true)
{
m = GetMouseMsg();
x = m.x % 50;
y = m.y % 50;
setrop2(R2_COPYPEN);
if (m.uMsg == WM_LBUTTONDOWN)
{
if (m.x <= 1130 && m.y < 680 && m.x >= 860 && m.y > 590)
win(1);
if (m.x <= 1130 && m.y < 590 && m.x >= 860 && m.y > 500)
machine();
if (m.x <= 1130 && m.y < 500 && m.x >= 860 && m.y > 410)
{
for (int x1 = 0; x1 < 15; x1++) {
for (int y1 = 0; y1 < 15; y1++) {
if (whtie1[x1][y1] != white[x1][y1]) {
white[x1][y1] = 0;
stick[x1][y1] = 0;
}
}
}
red[p][q] = 0;
stick[p][q] = 0;
regret(red, whtie1);
continue;
}
if (x >= 25)
m.x = m.x - x + 50;
else
m.x = m.x - x;
if (y >= 25)
m.y = m.y - y + 50;
else
m.y = m.y - y;
p = m.x / 50 - 1;
q = m.y / 50 - 1;
if (p < 15 && q < 15)
{
if (stick[p][q] == 1)
break;
if (m.x <= 750 && m.y <= 750 && m.x >= 50 && m.y >= 50)
{
setfillcolor(RED);
fillcircle(m.x, m.y, 20);
red[p][q] = 1;
if (success(red) == 1)win(2);
stick[p][q] = 1;
}
for (int x1 = 0; x1 < 15; x1++) {
for (int y1 = 0; y1 < 15; y1++) {
whtie1[x1][y1] = white[x1][y1];
}
}
robot(red, white, stick);
}
}
}
}
int robot(int x[15][15], int y[15][15], int z[15][15])
{
srand((unsigned)time(NULL));
int m, n;
/*-------------------------------------------------------判断四-----------------------------------------------------------*/
for (m = 0; m < 15; m++)
{
for (n = 0; n < 15; n++)
{
if (x[m][n] == 1 && x[m][n + 1] == 1 && x[m][n + 2] == 1 && x[m][n + 3] == 1 && n < 11 && z[m][n + 4] != 1)
{
y[m][n + 4] = 1;
z[m][n + 4] = 1;
setfillcolor(WHITE);
fillcircle((m + 1) * 50, (n + 5) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m][n + 1] == 1 && x[m][n + 2] == 1 && x[m][n + 3] == 1 && n > 0 && z[m][n - 1] != 1)
{
y[m][n - 1] = 1;
z[m][n - 1] = 1;
setfillcolor(WHITE);
fillcircle((m + 1) * 50, n * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n] == 1 && x[m + 2][n] == 1 && x[m + 3][n] == 1 && m < 11 && z[m + 4][n] != 1)
{
y[m + 4][n] = 1;
z[m + 4][n] = 1;
setfillcolor(WHITE);
fillcircle((m + 5) * 50, (n + 1) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n] == 1 && x[m + 2][n] == 1 && x[m + 3][n] == 1 && m > 0 && z[m - 1][n] != 1)
{
y[m - 1][n] = 1;
z[m - 1][n] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, (n + 1) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n + 1] == 1 && x[m + 2][n + 2] == 1 && x[m + 3][n + 3] == 1 && n < 11 && m < 11 && z[m + 4][n + 4] != 1)
{
y[m + 4][n + 4] = 1;
z[m + 4][n + 4] = 1;
setfillcolor(WHITE);
fillcircle((m + 5) * 50, (n + 5) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n + 1] == 1 && x[m + 2][n + 2] == 1 && x[m + 3][n + 3] == 1 && n > 0 && m > 0 && z[m - 1][n - 1] != 1)
{
y[m - 1][n - 1] = 1;
z[m - 1][n - 1] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, n * 50, 20);
return 0;
}
if (n > 3 && m < 11 && x[m][n] == 1 && x[m + 1][n - 1] == 1 && x[m + 2][n - 2] == 1 && x[m + 3][n - 3] == 1 && z[m + 4][n - 4] != 1)
{
y[m + 4][n - 4] = 1;
z[m + 4][n - 4] = 1;
setfillcolor(WHITE);
fillcircle((m + 5) * 50, (n - 3) * 50, 20);
return 0;
}
if (n < 14 && m > 0 && x[m][n] == 1 && x[m + 1][n - 1] == 1 && x[m + 2][n - 2] == 1 && x[m + 3][n - 3] == 1 && z[m - 1][n + 1] != 1)
{
y[m - 1][n + 1] = 1;
z[m - 1][n + 1] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, (n + 2) * 50, 20);
return 0;
}
}
}
/*-------------------------------------------------------判断三-----------------------------------------------------------*/
for (m = 0; m < 15; m++)
{
for (n = 0; n < 15; n++)
{
if (x[m][n] == 1 && x[m][n + 1] == 1 && x[m][n + 2] == 1 && n < 12 && z[m][n + 3] != 1)
{
y[m][n + 3] = 1;
z[m][n + 3] = 1;
setfillcolor(WHITE);
fillcircle((m + 1) * 50, (n + 4) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m][n + 1] == 1 && x[m][n + 2] == 1 && n > 0 && z[m][n - 1] != 1)
{
y[m][n - 1] = 1;
z[m][n - 1] = 1;
setfillcolor(WHITE);
fillcircle((m + 1) * 50, n * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n] == 1 && x[m + 2][n] == 1 && m < 12 && z[m + 3][n] != 1)
{
y[m + 3][n] = 1;
z[m + 3][n] = 1;
setfillcolor(WHITE);
fillcircle((m + 4) * 50, (n + 1) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n] == 1 && x[m + 2][n] == 1 && m > 0 && z[m - 1][n] != 1)
{
y[m - 1][n] = 1;
z[m - 1][n] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, (n + 1) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n + 1] == 1 && x[m + 2][n + 2] == 1 && n < 12 && m < 12 && z[m + 3][n + 3] != 1)
{
y[m + 3][n + 3] = 1;
z[m + 3][n + 3] = 1;
setfillcolor(WHITE);
fillcircle((m + 4) * 50, (n + 4) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n + 1] == 1 && x[m + 2][n + 2] == 1 && n > 0 && m > 0 && z[m - 1][n - 1] != 1)
{
y[m - 1][n - 1] = 1;
z[m - 1][n - 1] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, n * 50, 20);
return 0;
}
if (n > 2 && m < 12 && x[m][n] == 1 && x[m + 1][n - 1] == 1 && x[m + 2][n - 2] == 1 && z[m + 3][n - 3] != 1)
{
y[m + 3][n - 3] = 1;
z[m + 3][n - 3] = 1;
setfillcolor(WHITE);
fillcircle((m + 4) * 50, (n - 2) * 50, 20);
return 0;
}
if (n < 14 && m > 0 && x[m][n] == 1 && x[m + 1][n - 1] == 1 && x[m + 2][n - 2] == 1 && z[m - 1][n + 1] != 1)
{
y[m - 1][n + 1] = 1;
z[m - 1][n + 1] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, (n + 2) * 50, 20);
return 0;
}
}
}
/*-------------------------------------------------------判断二-----------------------------------------------------------*/
for (m = 0; m < 15; m++)
{
for (n = 0; n < 15; n++) {
if (x[m][n] == 1 && x[m][n + 1] == 1 && n < 13 && z[m][n + 2] != 1)
{
y[m][n + 2] = 1;
z[m][n + 2] = 1;
setfillcolor(WHITE);
fillcircle((m + 1) * 50, (n + 3) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m][n + 1] == 1 && n > 0 && z[m][n - 1] != 1)
{
y[m][n - 1] = 1;
z[m][n - 1] = 1;
setfillcolor(WHITE);
fillcircle((m + 1) * 50, n * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n] == 1 && m < 13 && z[m + 2][n] != 1)
{
y[m + 2][n] = 1;
z[m + 2][n] = 1;
setfillcolor(WHITE);
fillcircle((m + 3) * 50, (n + 1) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n] == 1 && m > 0 && z[m - 1][n] != 1)
{
y[m - 1][n] = 1;
z[m - 1][n] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, (n + 1) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n + 1] == 1 && n < 13 && m < 13 && z[m + 2][n + 2] != 1)
{
y[m + 2][n + 2] = 1;
z[m + 2][n + 2] = 1;
setfillcolor(WHITE);
fillcircle((m + 3) * 50, (n + 3) * 50, 20);
return 0;
}
if (x[m][n] == 1 && x[m + 1][n + 1] == 1 && n > 0 && m > 0 && z[m - 1][n - 1] != 1)
{
y[m - 1][n - 1] = 1;
z[m - 1][n - 1] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, n * 50, 20);
return 0;
}
if (n > 1 && m < 13 && x[m][n] == 1 && x[m + 1][n - 1] == 1 && z[m + 2][n - 2] != 1)
{
y[m + 2][n - 2] = 1;
z[m + 2][n - 2] = 1;
setfillcolor(WHITE);
fillcircle((m + 3) * 50, (n - 1) * 50, 20);
return 0;
}
if (n < 14 && m > 0 && x[m][n] == 1 && x[m + 1][n - 1] == 1 && z[m - 1][n - 1] != 1)
{
y[m - 1][n - 1] = 1;
z[m - 1][n - 1] = 1;
setfillcolor(WHITE);
fillcircle(m * 50, (n + 2) * 50, 20);
return 0;
}
}
}
while (1)
{
for (m = 0; m < 15; m++)
{
for (n = 0; n < 15; n++)
{
if (x[m][n] == 1)
{
setfillcolor(WHITE);
int p = rand() % 8;
switch (p)
{
case 0:
if (m == 0)break;
y[m - 1][n] = 1;
z[m - 1][n] = 1;
fillcircle(m * 50, (n + 1) * 50, 20);
return 0;
case 1:
if (m == 0 || n == 14)break;
y[m - 1][n + 1] = 1;
z[m - 1][n + 1] = 1;
fillcircle(m * 50, (n + 2) * 50, 20);
return 0;
case 2:
if (n == 14)break;
y[m][n + 1] = 1;
z[m][n + 1] = 1;
fillcircle((m + 1) * 50, (n + 2) * 50, 20);
return 0;
case 3:
if (m == 14 || n == 14)break;
y[m + 1][n + 1] = 1;
z[m + 1][n + 1] = 1;
fillcircle((m + 2) * 50, (n + 2) * 50, 20);
return 0;
case 4:
if (m == 14)break;
y[m + 1][n] = 1;
z[m + 1][n] = 1;
fillcircle((m + 2) * 50, (n + 1) * 50, 20);
return 0;
case 5:
if (m == 14 || n == 0)break;
y[m + 1][n - 1] = 1;
z[m + 1][n - 1] = 1;
fillcircle((m + 2) * 50, n * 50, 20);
return 0;
case 6:
if (n == 0)break;
y[m][n - 1] = 1;
z[m][n - 1] = 1;
fillcircle((m + 1) * 50, n * 50, 20);
return 0;
case 7:
if (m == 0 || n == 0)break;
y[m - 1][n - 1] = 1;
z[m - 1][n - 1] = 1;
fillcircle(m * 50, n * 50, 20);
return 0;
}
}
}
}
}
}
void win(int x)
{
initgraph(1200, 800);
cleardevice();
IMAGE mg;
loadimage(&mg, "image\\wyt.png");
putimage(800, 33, &mg);
IMAGE img;
loadimage(&img, "image\\timg.jpg");
putimage(0, 0, &img);
settextstyle(50, 0, "宋体");
outtextxy(100, 500, "可以啊小伙子");
if (x == 1)
{
outtextxy(100, 600, "白方获胜");
}
else
{
outtextxy(100, 600, "红方获胜");
}
settextcolor(WHITE);
settextstyle(100, 0, "宋体");
outtextxy(500, 600, "-->");
outtextxy(520, 490, "返回游戏界面");
outtextxy(520, 690, " 结束游戏");
while (true)
{
int ID;
MOUSEMSG n;
n = GetMouseMsg();
switch (n.uMsg) {
case WM_LBUTTONDOWN:
if (n.x <= 1200 && n.x >= 650 && n.y <= 650 && n.y >= 500)
start();
if (n.x <= 1200 && n.x >= 650 && n.y <= 800 && n.y >= 650) {
gc = GetHWnd();
ID = MessageBox(gc, "是否关闭游戏?", "", MB_YESNO);
if (ID == IDYES)
over();
}
}
}
}
void over()
{
initgraph(500, 500);
settextcolor(RED);
outtextxy(120, 200, "再见!");
Sleep(1800);
closegraph();
}
int main()
{
hello();
start();
return 0;
}
五子棋源码
最新推荐文章于 2024-01-27 16:56:55 发布