C++实现三字棋专题小游戏代码(详细)

#C++实现三字棋专题小游戏代码(详细)

##二维数组的运用

引言:首发博客。学习C语言ing~以后将以周为频率发一些学习C中的重要题目代码及个人理解,以作个人学习小结与记录。或以供作参考(过程较详细~)并希望各位对一些不足予以批评并指出,谢谢!
以下为实现“三字棋”游戏的代码~

C++实现三字棋专题小游戏代码(详细)
图片说明:此图片来源于网络游戏页面截图

 #include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {

	char a[3][3];
	int m,n,k=1;	
 
	memset(a,'o',sizeof(a));
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			printf("%c ",a[i][j]);
		}printf("\n");
	}//始:组件原始3×3棋盘 
	
	
	while(1){	
		while(1){
			printf("player1:*, player2:#\n请player%d落子:",k);	
			scanf("%d %d",&m,&n);
			m--;n--;
			if(a[m][n]!='o') {
				printf("此处不能落子,请重新输入···\n"); 
				continue;
			}
			else{
				if(k==1){
					a[m][n]='*';
				}
				if(k==2){
					a[m][n]='#';
				}break;	
			}
		
		}//过程 :对弈
		
		
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				printf("%c ",a[i][j]);
			}
			printf("\n");
				}//输出新棋盘 
	//重点!判断
		int e=0;
			for(int i=0;i<3;i++){
				if(a[i][0]==a[i][1]&&a[i][0]==a[i][2]){
					if(a[i][0]=='*') {
						e=1;
						break;
						}
					if(a[i][0]=='#'){
						e=2;
						break;
					}
				
				} 
			}//case1 判断行相等 
			for(int j=0;j<3;j++){
				if(a[0][j]==a[1][j]&&a[0][j]==a[2][j]){
					if(a[0][j]=='*') {
						e=1;
						break;
						}
					if(a[0][j]=='#'){
						e=2;
						break;
					}
			
				
				} 
			}//case2 判断列相等 
			if(a[0][0]==a[1][1]&&a[0][0]==a[2][2]){
				if(a[0][0]=='*') {
						e=1;
						}
					if(a[0][0]=='#'){
						e=2;
					}	
			}//case3 判断斜行1相等 
			if(a[0][2]==a[1][1]&&a[0][2]==a[2][0]){
				if(a[0][2]=='*') {
						e=1;
						}
					if(a[0][2]=='#'){
						e=2;
					}	
			}//case 4判断斜行2相等 
			if(e==0){
				for(int i=0;i<3;i++){
					for(int j=0;j<3;j++){
						if(a[i][j]=='o'){
							e=-1;
						}
					}
				}
			}// case5 未完继续 
		
		
	//结:宣判结果~	
		if(e==0){
			printf("平局!\n按回车结束");
			break; 
		}
		if(e==1){
			printf("player1胜\n按回车结束");
			break; 
		}
		if(e==2){
			printf("player2胜\n按回车结束");
			break; 
		}
		if(e==-1){
			k++;
			if(k>2){
				k=1;
			}
		} 
	}     
	
	
	
	
	return 0;
}

C++实现三字棋专题小游戏代码(详细)
图片说明:游戏各情况范例输出