コード例 #1
0
ファイル: solve.c プロジェクト: NicolasC27/Dante
void		solve_cell(t_list *list, t_maze *data, t_generating *var)
{
  int		nb;

  nb = (data->type == PARFAIT) ? (1) : (0);
  if (data->type == IMPARFAIT)
    while (nb == 0)
      nb = my_rand() % 3;
  if (data->maze[var->x][var->y] == UNVISITED)
    {
      if (neighbour(data, var->x, var->y) > nb)
	{
	  data->maze[var->x][var->y] = WALL;
	  var->x = list->last->x;
	  var->y = list->last->y;
	  popback(list);
	  while (list->last != NULL && neighbors_around(data, var->x, var->y) == KO)
	    {
	      var->x = list->last->x;
	      var->y = list->last->y;
	      popback(list);
	    }
	}
      else
	data->maze[var->x][var->y] = VISITED;
    }
}
コード例 #2
0
ファイル: llist.c プロジェクト: vaughan0/vlib
  int remove_even(void* data) {
    int val = *(int*)data;
    return (val % 2 == 0) ? LLIST_REMOVE : 0;
  }
  llist_iter(l, true, remove_even);

  int double_vals(void* data) {
    int* ival = data;
    *ival *= 2;
    return 0;
  }
  llist_iter(l, false, double_vals);

  assertEqual(l->size, 5);
  assertEqual(popback(l), 18);
  assertEqual(popback(l), 14);
  assertEqual(popback(l), 10);
  assertEqual(popback(l), 6);
  assertEqual(popback(l), 2);
  assertEqual(l->size, 0);

  llist_close(l);
  return 0;
};

VLIB_SUITE(llist) = {
  VLIB_TEST(llist_basic),
  VLIB_TEST(llist_iteration),
  VLIB_END,
};
コード例 #3
0
ファイル: stl.hpp プロジェクト: r-lyeh-forks/mini.q
 INLINE T &addfront() {
   if (n==max_n) popback(); ++n;
   return items[--first%max_n];
 }