diff options
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | fractal.c | 17 | ||||
-rw-r--r-- | koh.c | 1 | ||||
-rw-r--r-- | koh.h | 26 | ||||
-rw-r--r-- | utstack.h | 88 |
5 files changed, 139 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dc702c4 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ + +CC=gcc + +make: + $(CC) -c koh.c + $(CC) -c fractal.c + $(CC) koh.o fractal.o -o fractal
\ No newline at end of file diff --git a/fractal.c b/fractal.c new file mode 100644 index 0000000..dcab68b --- /dev/null +++ b/fractal.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <math.h> +#include <string.h> +#include <stdint.h> +#include <time.h> + +#include <SDL/SDL.h> +#include <SDL/SDL_ttf.h> + +int main() +{ + return 0; +} + + @@ -0,0 +1 @@ +#include "koh.h"
\ No newline at end of file @@ -0,0 +1,26 @@ +#ifndef __KOH_H +#define __KOH_H + +#include <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <math.h> +#include <string.h> +#include <stdint.h> +#include <time.h> + +typedef struct +{ + int k; + int levels; +} koh_config; + +typedef struct +{ + int x1,y1,x2,y2; + int level; + int r,g,b,a; + int invisible; +} koh_node; + +#endif
\ No newline at end of file diff --git a/utstack.h b/utstack.h new file mode 100644 index 0000000..3b0c1a0 --- /dev/null +++ b/utstack.h @@ -0,0 +1,88 @@ +/* +Copyright (c) 2018-2018, Troy D. Hanson http://troydhanson.github.com/uthash/ +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef UTSTACK_H +#define UTSTACK_H + +#define UTSTACK_VERSION 2.1.0 + +/* + * This file contains macros to manipulate a singly-linked list as a stack. + * + * To use utstack, your structure must have a "next" pointer. + * + * ----------------.EXAMPLE ------------------------- + * struct item { + * int id; + * struct item *next; + * } + * + * struct item *stack = NULL: + * + * int main() { + * int count; + * struct item *tmp; + * struct item *item = malloc(sizeof *item); + * item->id = 42; + * STACK_COUNT(stack, tmp, count); assert(count == 0); + * STACK_PUSH(stack, item); + * STACK_COUNT(stack, tmp, count); assert(count == 1); + * STACK_POP(stack, item); + * free(item); + * STACK_COUNT(stack, tmp, count); assert(count == 0); + * } + * -------------------------------------------------- + */ + +#define STACK_TOP(head) (head) + +#define STACK_EMPTY(head) (!(head)) + +#define STACK_PUSH(head,add) \ + STACK_PUSH2(head,add,next) + +#define STACK_PUSH2(head,add,next) \ +do { \ + (add)->next = (head); \ + (head) = (add); \ +} while (0) + +#define STACK_POP(head,result) \ + STACK_POP2(head,result,next) + +#define STACK_POP2(head,result,next) \ +do { \ + (result) = (head); \ + (head) = (head)->next; \ +} while (0) + +#define STACK_COUNT(head,el,counter) \ + STACK_COUNT2(head,el,counter,next) \ + +#define STACK_COUNT2(head,el,counter,next) \ +do { \ + (counter) = 0; \ + for ((el) = (head); el; (el) = (el)->next) { ++(counter); } \ +} while (0) + +#endif /* UTSTACK_H */ |