C语言简易黑窗口推箱子

用随机数组的方法不知道为什么还没执行箱子移动就刷新了,而且随机法产生的空格太少,所以放弃了

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h> 
//void shuzu(){
//	int i,j;
//	for(i=0;i<10;i++){//采用随机数生成图案 
//		for(j=0;j<10;j++){
//			map[i][j]=rand()%5;//随机生成1-4之间的数 
//		}
//	}
//	for(i=0;i<10;i++){//设置边上围墙 
//	    	map[0][i]=1;
//	    	map[i][0]=1;
//	    	map[9][i]=1;
//	    	map[i][9]=1;
//	} 
//    map[rand()%9+1][rand()%9+1]=5;
//}
int map[10][10]={//全局数组map 
	//0:空的,1: ■ 2 □3:★4: ☆
    1,1,1,1,1,1,1,1,1,1,
    1,0,0,1,1,0,0,0,0,1, 
    1,0,1,0,0,1,0,0,0,1,
    1,0,1,4,4,0,0,0,4,1,
    1,3,0,1,1,0,5,0,1,1,
    1,0,0,1,1,0,0,0,0,1,
    1,2,2,0,0,2,2,0,0,1,
    1,0,0,1,1,0,0,0,0,1,
    1,0,1,0,0,1,0,0,0,1,
    1,1,1,1,1,1,1,1,1,1
};
int main(){
	int i,j;
	srand(time(0)); 
	printf("welcome to play shifting box\n");
	printf("w:up s:down a:left d:right\n"); 
	printf("now input any number can start this game\n"); 
	while(1){ 
	    //shuzu();	
		for(i=0;i<10;i++){
			for(j=0;j<10;j++){
				switch(map[i][j]){
					case 0:
						printf("  ");
						break;
					case 1:
						printf("■");
						break;
					case 2:
						printf("★");
						break;
					case 3:
						printf("☆");
						break;
					case 4:
						printf("□");
						break;
					case 5://该符号表示玩家 
						printf("※");
						break;
					default:
						break;
				}
			}
	    	printf("\n");
    	}
		for(i=0;i<10;i++){
			for(j=0;j<10;j++){
				if(map[i][j]==5)
				   break;
			}
			if(map[i][j]==5)//break一次只跳出一层循环,故需要使用两次 
				break;
		} 
		char ch=_getch();
		switch(ch){
			case 'w':
			case 'W':
				if(map[i-1][j]==0)//判断上面是不是空地能不能走
				 {
				 	map[i-1][j]=5;
					map[i][j]=0; 
				 } 
				break; 
		    case 's':
			case 'S':
				if(map[i+1][j]==0)//判断下面是不是空地能不能走
				 {
				 	map[i+1][j]=5;
					map[i][j]=0; 
				 } 
				break;
			case 'A':
			case 'a':
				if(map[i][j-1]==0)//判断左边是不是空地能不能走 
				{
					map[i][j-1]=5;
					map[i][j]=0;
				}
				break;
			case 'd':
			case 'D':
				if(map[i][j+1]==0){
					map[i][j+1]=5;
					map[i][j]=0;
				}
				break;
			default:
				printf("input error instruction\n");
				break;
		}
	   //system("cls");//清屏 
	}
	system("pause");
	return 0;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务