TGC Codebase Backup



Add Script Line To Game by Anonymous Coder

24th Sep 2005 17:53
Summary

#include <mem.h> #include <stdio.h>



Description

#include <mem.h>
#include <stdio.h>



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    #include <mem.h>
#include <stdio.h>

#define	H -1
#define	V -1
#define	MAX 100

int	v[MAX][MAX];

void InitArray(int a[][MAX], int dim) {
int	i, j;
	for(i = 0; i < dim; ++i) {
		for(j = 0; j < dim; ++j) {
			a[i][j] = 0;
		}
	}
}

void PrintMatrix(int a[][MAX], int dim) {
int	i, j;
	for(i = 0; i < dim; ++i) {
		for(j = 0; j < dim; ++j) {
			printf("%5d", a[i][j]);
		}	
		printf("\n");
	}
}

int	CheckResult(int a[][MAX], int dim) {
int	i, j, h[MAX], v[MAX], md = 0, sd = 0;
	memset(h, 0, MAX * sizeof(h[0]));
	memset(v, 0, MAX * sizeof(v[0]));
	for(i = 0; i < dim; ++i) {
		for(j = 0; j < dim; ++j) {
			h[i] += a[i][j];
		}
		for(j = 0; j < dim; ++j) {
			v[i] += a[j][i];
		}
		md += a[i][i];
		sd += a[i][dim - i - 1];
	}
	if(md != sd) {
		return 	0;
	}
	for(i = 0; i < dim; ++i) {
		if(h[i] != v[i]) {
			return	0;
		}
		if(h[i] != md) {
			return	0;
		}
	}
	return	md;
}

void GenerateMatrix(int a[][MAX], int dim) {
int	i, row = 0, col = dim >> 1, dim2 = dim * dim, LastRow, LastCol;
	a[row][col] = 1;
	for(i = 2; i <= dim2; ++i) {
		LastRow = row;
		LastCol = col;
		row = ((row + V) + dim) % dim;
		col = ((col + H) + dim) % dim;
		if(a[row][col]) {
			row = (LastRow + 1) % dim;
			col = LastCol;
		}
		a[row][col] = i;
	}
}

void main(void) {
int	n;
	printf("\nEnter the size of the square => ");
	scanf("%d", &n);
	if(n < 0 || n > 99 || !(n % 2)) {
		printf("\nSize must be odd and 1 <= size <= 99");
		return;
	}
	InitArray(v, n);
	GenerateMatrix(v, n);
	PrintMatrix(v, n);
	printf("\n\nThe sum is: %d", CheckResult(v, n));
}