赞
踩
代码放下面了,关于步骤介绍的我以后再完善一下。
- #include<bits/stdc++.h>
- #include<cstdio>
- #include<cstdlib>
- #include<ctime>
- #include<windows.h>
- #include<stdlib.h>
- #include<time.h>
- #define random(x) (rand()%x)
- using namespace std;
- //--------------------------------五子棋------------------------------------//
- //player_1:o
- //player_2:x
- int Game_mode;
- char qizi[25][25];
- HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
- //主要模块
- void print_checkerboard(){
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- cout<<" ";
- for(int i=1;i<=20;i++){
- cout<<i<<" ";
- if(i<10) cout<<" ";
- }
- cout<<endl;
- for(int i=1;i<=20;i++){
- if(i<10) cout<<" ";
- cout<<i<<" ";
- for(int j=1;j<=20;j++){
- if(qizi[i][j]=='o'){
- SetConsoleTextAttribute(handle, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
- cout<<qizi[i][j]<<" ";
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- }else if(qizi[i][j]=='x'){
- SetConsoleTextAttribute(handle, FOREGROUND_RED | FOREGROUND_INTENSITY);
- cout<<qizi[i][j]<<" ";
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- }else{
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- cout<<qizi[i][j]<<" ";
- }
- }
- cout<<endl;
- }
- }
- bool inspect_1(){
- for(int i=1;i<=20;i++){
- for(int j=1;j<=20;j++){
- if(qizi[i][j]=='o'){
- if((qizi[i+1][j]=='o'&&qizi[i+2][j]=='o'&&qizi[i+3][j]=='o'&&qizi[i+4][j]=='o') or
- (qizi[i-1][j]=='o'&&qizi[i-2][j]=='o'&&qizi[i-3][j]=='o'&&qizi[i-4][j]=='o') or
- (qizi[i][j+1]=='o'&&qizi[i][j+2]=='o'&&qizi[i][j+3]=='o'&&qizi[i][j+4]=='o') or
- (qizi[i][j-1]=='o'&&qizi[i][j-2]=='o'&&qizi[i][j-3]=='o'&&qizi[i][j-4]=='o') or
- (qizi[i+1][j+1]=='o'&&qizi[i+2][j+2]=='o'&&qizi[i+3][j+3]=='o'&&qizi[i+4][j+4]=='o') or
- (qizi[i+1][j-1]=='o'&&qizi[i+2][j-2]=='o'&&qizi[i+3][j-3]=='o'&&qizi[i+4][j-4]=='o') or
- (qizi[i-1][j+1]=='o'&&qizi[i-2][j+2]=='o'&&qizi[i-3][j+3]=='o'&&qizi[i-4][j+4]=='o') or
- (qizi[i-1][j-1]=='o'&&qizi[i-2][j-2]=='o'&&qizi[i-3][j-3]=='o'&&qizi[i-4][j-4]=='o') )
- {
- return true;
- }
- }
-
- }
- }
- return false;
- }
-
- bool inspect_2(){
- for(int i=1;i<=20;i++){
- for(int j=1;j<=20;j++){
- if(qizi[i][j]=='x'){
- if((qizi[i+1][j]=='x'&&qizi[i+2][j]=='x'&&qizi[i+3][j]=='x'&&qizi[i+4][j]=='x') or
- (qizi[i-1][j]=='x'&&qizi[i-2][j]=='x'&&qizi[i-3][j]=='x'&&qizi[i-4][j]=='x') or
- (qizi[i][j+1]=='x'&&qizi[i][j+2]=='x'&&qizi[i][j+3]=='x'&&qizi[i][j+4]=='x') or
- (qizi[i][j-1]=='x'&&qizi[i][j-2]=='x'&&qizi[i][j-3]=='x'&&qizi[i][j-4]=='x') or
- (qizi[i+1][j+1]=='x'&&qizi[i+2][j+2]=='x'&&qizi[i+3][j+3]=='x'&&qizi[i+4][j+4]=='x') or
- (qizi[i+1][j-1]=='x'&&qizi[i+2][j-2]=='x'&&qizi[i+3][j-3]=='x'&&qizi[i+4][j-4]=='x') or
- (qizi[i-1][j+1]=='x'&&qizi[i-2][j+2]=='x'&&qizi[i-3][j+3]=='x'&&qizi[i-4][j+4]=='x') or
- (qizi[i-1][j-1]=='x'&&qizi[i-2][j-2]=='x'&&qizi[i-3][j-3]=='x'&&qizi[i-4][j-4]=='x') )
- {
- return true;
- }
- }
-
- }
- }
- return false;
- }
-
-
- //电脑模块
- void reflection(){
- system("cls");
- for(int i=1;i<=2;i++){
- print_checkerboard();
- cout<<"电脑正在思考中";
- for(int i=1;i<=3;i++){
- cout<<".";
- Sleep(500);
- }
- system("cls");
- }
- }
-
- void lianzi_3_o(){
- for(int i=1;i<=20;i++){
- for(int j=1;j<=20;j++){
- if(qizi[i][j]=='o'){
- if(qizi[i+1][j]=='o' and qizi[i+2][j]=='o'){
-
- }
- }
- }
- }
- }
-
- int main(){
- memset(qizi, 42 , sizeof(qizi));
- HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(handle, BACKGROUND_BLUE | BACKGROUND_GREEN);
- SetConsoleTextAttribute(handle, FOREGROUND_BLUE );
- cout<<"请先确定游戏模式:"<<endl;
- cout<<"1.(玩家VS电脑)"<<endl;
- cout<<"2.(玩家VS玩家)"<<endl;
- SetConsoleTextAttribute(handle, FOREGROUND_RED );
- cin>>Game_mode;
- system("cls");
- if(Game_mode==1){
- // print_checkerboard();
- // int cmp=0,player=0;
- // int player_x=0,player_y=0;
- // int cmp_x=0,cmp_y=0;
- // int F_PER=0,F_CMP=0;
- // srand(( int )time(0));
- // int order=random(2);
- // if(order==1){
- // player=1,cmp=0;
- // F_PER=1;
- // cout<<"你先下。。。"<<endl;
- // Sleep(3000);
- // system("cls");
- // }else{
- // player=0,cmp=1;
- // F_CMP=1;
- // cout<<"电脑先下。。。"<<endl;
- // Sleep(3000);
- // system("cls");
- // }
- // while(inspect_1()==false and inspect_2()==false){
- // if(player==1){
- // int a=0,b=0;
- // while(a>20 or b>20 or qizi[a][b]=='o'||qizi[a][b]=='x'){
- // a=0,b=0;
- // cin>>a>>b;
- // if(a>20 or b>20){
- // system("cls");
- // print_checkerboard();
- // SetConsoleTextAttribute(handle, FOREGROUND_RED | FOREGROUND_INTENSITY);
- // cout<<"超出棋盘范围,请重新输入!"<<endl;
- // SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- // }
- // if(a<=20 and b<=20) {
- // if(qizi[a][b]=='o'||qizi[a][b]=='x'){
- // system("cls");
- // print_checkerboard();
- // SetConsoleTextAttribute(handle, FOREGROUND_RED | FOREGROUND_INTENSITY);
- // cout<<"此坐标已有棋子,请重新输入!"<<endl;
- // SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- // }else{
- // player_x=a,player_y=b;
- // break;
- // }
- //
- // }
- // }
- // if(F_PER==1){
- // qizi[player_x][player_y]='o';
- // system("cls");
- // print_checkerboard();
- // if(inspect_1()){
- // cout<<"哈哈,你赢了!"<<endl;
- // system("pause");
- // }
- // system("cls");
- // }else{
- // qizi[player_x][player_y]='x';
- // system("cls");
- // print_checkerboard();
- // if(inspect_2()){
- // cout<<"哈哈,你赢了!"<<endl;
- // system("pause");
- // }
- // }
- // }else{
- // int a=0,b=0;
- // print_checkerboard();
- // reflection();
- //
- // }
- // }
- }else if(Game_mode==2){
- bool player1=0,player2=0;
- int player1_x,player1_y;
- int player2_x,player2_y;
- print_checkerboard();
- while(inspect_1()==false and inspect_2()==false){
- if(player1==0) {
- int a=0,b=0;
- while(a>20 or b>20 or qizi[a][b]=='o'||qizi[a][b]=='x'){
- a=0,b=0;
- cin>>a>>b;
- if(a>20 or b>20){
- system("cls");
- print_checkerboard();
- SetConsoleTextAttribute(handle, FOREGROUND_RED | FOREGROUND_INTENSITY);
- cout<<"超出棋盘范围,请重新输入!"<<endl;
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- }
- if(a<=20 and b<=20) {
- if(qizi[a][b]=='o'||qizi[a][b]=='x'){
- system("cls");
- print_checkerboard();
- SetConsoleTextAttribute(handle, FOREGROUND_RED | FOREGROUND_INTENSITY);
- cout<<"此坐标已有棋子,请重新输入!"<<endl;
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
- }else{
- player1_x=a,player1_y=b;
- break;
- }
-
- }
- }
- qizi[player1_x][player1_y]='o';
- system("cls");
- print_checkerboard();
- if(inspect_1()==true){
- cout<<"哈哈,玩家1,赢了!"<<endl;
- system("pause");
- return 0;
- }
- player1=1;
- player2=0;
- }
- if(player2==0) {
- int a=0,b=0;
- while(a>20 or b>20 or qizi[a][b]=='o'or qizi[a][b]=='x'){
- a=0,b=0;
- cin>>a>>b;
- if(a>20 or b>20){
- system("cls");
- print_checkerboard();
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- cout<<"超出棋盘范围,请重新输入!"<<endl;
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- }
- if(a<=20 and b<=20) {
- if(qizi[a][b]=='o'||qizi[a][b]=='x'){
- system("cls");
- print_checkerboard();
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- cout<<"此坐标已有棋子,请重新输入!"<<endl;
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- }else{
- player2_x=a,player2_y=b;
- break;
- }
- }
- }
- qizi[player2_x][player2_y]='x';
- system("cls");
- print_checkerboard();
- if(inspect_2()==true){
- cout<<"哈哈,玩家2,赢了!"<<endl;
- system("pause");
- return 0;
- }
- player1=0;
- player2=1;
- }
- }
- }
- else{
- cout<<"输入错误,结束。"<<endl;
- }
- return 0;
- }
-

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。