數字龍捲風

      在〈數字龍捲風〉中尚無留言

apcs_3_3

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main(){
	srand(time(NULL));
	cout<<"請輸入列數 : ";
	int n;
	scanf("%d", &n);
	cout<<"請輸入一開始的方向, 0左, 1上, 2右, 3下 : ";
	int dir;
	scanf("%d", &dir);
	
	int **d=new int*[n];
	bool **b=new bool*[n];
	for (int i=0;i<n;i++){
		d[i]=new int[n];
		b[i]=new bool[n]{0};
		for (int j=0;j<n;j++){
			d[i][j]=rand()%100;
		}
	}
	for (int i=0;i<n;i++){
		for (int j=0;j<n;j++){
			printf("%02d ", d[i][j]);
		}
		printf("\n");
	}
	printf("\n");
	int x=n/2, y=n/2;
	int nx, ny;
	int xd[4]={-1, 0, 1, 0};
	int yd[4]={0, -1, 0, 1};
	int count=0;
	while(count<n*n){
		printf("%02d ", d[y][x]);
		b[y][x]=true;
		nx=x+xd[dir];
		ny=y+yd[dir];
		if(b[ny][nx]){
			dir=(dir+3)%4;
                        nx=x+xd[dir];
                        ny=y+yd[dir];
                }
		count++;
		x=nx;
		y=ny;
		dir=(dir+1)%4;
	}
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *