From 7d3b7119123a57ca8381e68d453b47589ad33ec3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Crist=C3=B3v=C3=A3o=20Cruz?= Date: Wed, 7 Apr 2010 15:04:49 +0100 Subject: [PATCH] Introduced range and offset in sorter movement. --- funnysort.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/funnysort.c b/funnysort.c index a590e97..06b6fb1 100644 --- a/funnysort.c +++ b/funnysort.c @@ -70,16 +70,23 @@ void move_sorter(board_t *board, sorter_t *sorter) assert(sorter->column < board->width); assert(sorter->line < board->height); - int h, v; unsigned int newline, newcolumn; unsigned int ncycles; item_t item, sorter_item; + int h, hoffset, hrange; + int v, voffset, vrange; + + // set default values to range and offset of random movement + hoffset = -1; + hrange = 3; + voffset = -1; + vrange = 3; ncycles = 0; do { /* Select random displacement. */ - h = random()%3 - 1; - v = random()%3 - 1; + h = random()%hrange + hoffset; + v = random()%vrange + voffset; newline = (sorter->line + (h+board->height)) % board->height; newcolumn = (sorter->column + (v+board->width)) % board->width; -- 2.11.4.GIT