From 3de803b964643fbc8480fd3c0133df77e324ef27 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 27 Apr 2010 00:17:36 +0200 Subject: digital/io/src: use A* algorithm to nagivate between elements --- digital/io/src/food.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 digital/io/src/food.h (limited to 'digital/io/src/food.h') diff --git a/digital/io/src/food.h b/digital/io/src/food.h new file mode 100644 index 00000000..a4d6b64d --- /dev/null +++ b/digital/io/src/food.h @@ -0,0 +1,49 @@ +#ifndef food_h +#define food_h +/* food.h */ +/* io - Input & Output with Artificial Intelligence (ai) support on AVR. {{{ + * + * Copyright (C) 2010 Nicolas Schodet + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ + +/** + * Tools for playing element for Eurobot 2010. + * + * Elements are oranges, tomatoes and corns. We only handle tomatoes and + * corns. + */ + +/** Return whether a food is blocking robot movements. + * - food: considered food, or 0xff. + * 0xff is accepted as a convenience for the user, it always return false. */ +uint8_t +food_blocking (uint8_t food); + +/** Return whether a food is blocking a line segment. + * - a: line segment first point. + * - b: line segment second point. + * - ab: line segment length. + * - returns: 1 if the path should not be used. */ +uint8_t +food_blocking_path (vect_t a, vect_t b, int16_t ab); + +#endif /* food_h */ -- cgit v1.2.3