You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
978 B
69 lines
978 B
15 years ago
|
//
|
||
|
//
|
||
|
// KBlackBox
|
||
|
//
|
||
|
// A simple game inspired by an emacs module
|
||
|
//
|
||
|
// File: util.cpp
|
||
|
//
|
||
|
// The implementation of the RectOnArray class
|
||
|
//
|
||
|
|
||
|
#include "util.h"
|
||
|
|
||
|
RectOnArray::RectOnArray( int newWidth, int newHeight )
|
||
|
{
|
||
|
w = newWidth;
|
||
|
h = newHeight;
|
||
|
array = new ArrayType[w*h];
|
||
|
}
|
||
|
|
||
|
RectOnArray::~RectOnArray()
|
||
|
{
|
||
|
delete[] array;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
Size info...
|
||
|
*/
|
||
|
|
||
|
int RectOnArray::width() { return w; }
|
||
|
int RectOnArray::height() { return h; }
|
||
|
|
||
|
/*
|
||
|
Utility function for mapping from 2D table to 1D array
|
||
|
*/
|
||
|
|
||
|
int RectOnArray::indexOf( int col, int row ) const
|
||
|
{
|
||
|
return (row * w) + col;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
Return content of cell
|
||
|
*/
|
||
|
|
||
|
ArrayType RectOnArray::get( int col, int row )
|
||
|
{
|
||
|
return array[indexOf( col, row )];
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
Set content of cell
|
||
|
*/
|
||
|
|
||
|
void RectOnArray::set( int col, int row, ArrayType type )
|
||
|
{
|
||
|
array[indexOf( col, row )] = type;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
Fill all cells witj type
|
||
|
*/
|
||
|
|
||
|
void RectOnArray::fill( ArrayType type )
|
||
|
{
|
||
|
int i;
|
||
|
for (i = 0; i < w*h; i++) array[i] = type;
|
||
|
}
|