easyx游戏编程:五子棋(C语言游戏开发)源码

编程入门 行业动态 更新时间:2024-10-24 12:29:00

easyx游戏编程:五子棋(C语言<a href=https://www.elefans.com/category/jswz/34/1770034.html style=游戏开发)源码"/>

easyx游戏编程:五子棋(C语言游戏开发)源码

easyx游戏编程:五子棋(C语言游戏开发)源码

源码介绍

我的编程环境是vs2019
#include "stdafx.h"是自带的,其他版本可能需要添加#include “stdafx.h”

除了下面代码外,无其他改动

#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);settextstyle(23, 0, "华文琥珀");outtextxy(527, 37, "音乐");circle(550, 50, 25);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);settextstyle(40, 0, "华文琥珀");outtextxy(100, 50, "小伙子不错,联系作者");outtextxy(50, 500, "教你一招半式,走向棋坛巅峰");settextstyle(20, 0, "宋体");outtextxy(50, 550, "(加VX后点击头像返回)");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);	//二元光栅操作码: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;elsem.x = m.x - x;if (y >= 25)m.y = m.y - y + 50;elsem.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);	//二元光栅操作码: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;elsem.x = m.x - x;if (y >= 25)m.y = m.y - y + 50;elsem.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; // 定义 IMAGE 对象loadimage(&mg, "image\\wyt.png"); // 读取图片putimage(800, 33, &mg); // 显示 IMAGE 对象IMAGE img; // 定义 IMAGE 对象loadimage(&img, "image\\timg.jpg"); // 读取图片putimage(0, 0, &img); // 显示 IMAGE 对象settextstyle(50, 0, "宋体");outtextxy(100, 500, "牛逼啊小伙子");if (x == 1){outtextxy(100, 600, "白方获胜");}else{outtextxy(100, 600, "红方获胜");}settextcolor(WHITE);settextstyle(100, 0, "宋体");outtextxy(500, 600, "-->");settextstyle(88, 0, "华文琥珀");outtextxy(670, 520, "返回游戏界面");outtextxy(720, 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);settextstyle(100, 0, "华文琥珀");outtextxy(120, 200, "再见!");Sleep(1800);closegraph(); // 关闭绘图窗口
}int main()
{hello();start();return 0;
}

更多推荐

easyx游戏编程:五子棋(C语言游戏开发)源码

本文发布于:2024-02-12 16:55:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1688641.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:游戏开发   源码   五子   语言   游戏

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!