这种井字棋,我是考古发现的,编写时前后隔了几天,思路有些混乱,对于凌乱的代码请不要介意
规则:
1.↑↓←→控制移动,【空格】放下棋子
2.棋盘为3 * 3的3 * 3的九宫格的九宫格(好绕啊)
3.当小型九宫格中有三颗你的棋子连成一线,那么这个小的九宫格就属于你的棋子格子,当大型九宫格中的格子连成一线时,你就赢了
4.你所可以下的格子与棋盘的位置关系,是相对应于对手所下的棋子与他所下的格子的关系,当你所可以下的格子已被占据时,你可以在整个棋盘里未被占据或未下棋子的地方下棋
视频教学【免费】
#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
#include <ctime>
int a[4][4][4][4];
int winer[4][4];
int x1, yy1, x2, y2;
int now;
void print(int i, int j, int k, int l) {
if(i == x1 && j == yy1 && k == x2 && l == y2) printf("+");
else if(winer[i][j] == 1) printf("①");
else if(winer[i][j] == 2) printf("②");
else if(a[i][j][k][l] == 1) printf("●");
else if(a[i][j][k][l] == 2) printf("○");
else printf("㊣");
}
void put_map() {
printf("┏━━┳━━┳━━┓┏━━┳━━┳━━┓┏━━┳━━┳━━┓\n┃");
print(1, 1, 1, 1);
printf("┃");
print(1, 1, 1, 2);
printf("┃");
print(1, 1, 1, 3);
printf("┃┃");
print(1, 2, 1, 1);
printf("┃");
print(1, 2, 1, 2);
printf("┃");
print(1, 2, 1, 3);
printf("┃┃");
print(1, 3, 1, 1);
printf("┃");
print(1, 3, 1, 2);
printf("┃");
print(1, 3, 1, 3);
printf("┃\n");
printf("┣━━╋━━╋━━┃┃━━╋━━╋━━┃┃━━╋━━╋━━┫\n┃");
print(1, 1, 2, 1);
printf("┃");
print(1, 1, 2, 2);
printf("┃");
print(1, 1, 2, 3);
printf("┃┃");
print(1, 2, 2, 1);
printf("┃");
print(1, 2, 2, 2);
printf("┃");
print(1, 2, 2, 3);
printf("┃┃");
print(1, 3, 2, 1);
printf("┃");
print(1, 3, 2, 2);
printf("┃");
print(1, 3, 2, 3);
printf("┃\n");
printf("┣━━╋━━╋━━┃┃━━╋━━╋━━┃┃━━╋━━╋━━┫\n┃");
print(1, 1, 3, 1);
printf("┃")