Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include "SwinGame.h"
- #define size 800
- struct sample
- {
- int value;
- color clr;
- };
- color get_color(int num)
- {
- color clr;
- float hue;
- hue = (float) num / 700;
- clr = hsbcolor(hue,0.7,0.8);
- return clr;
- }
- void fill_array(struct sample data[])
- {
- int i;
- for (i=0;i<size;i++){
- data[i].value = rand() % 700;
- data[i].clr = get_color(data[i].value);
- }
- }
- void draw_bar(struct sample data[])
- {
- int i;
- float x;
- float y;
- float rectwidth = 1;
- for(i=0;i<800;i++){
- x = rectwidth * i;
- y = 700 - data[i].value;
- fill_rectangle (data[i].clr, x, y, rectwidth, data[i].value);
- }
- }
- void sort_data(sample data[])
- {
- int i, m, tempNo = 0;
- // Using nested for loops, sort the data from smallest to largest
- for(i=0; i < (size-1); i++)
- {
- for(m=0;m < (size-1-i); m++)
- {
- if (data[m].value > data[m+1].value)
- {
- tempNo = data[m].value;
- data[m].value = data[m+1].value;
- data[m+1].value = tempNo;
- }
- }
- }
- }
- int main()
- {
- struct sample data[size];
- srand(time(NULL));
- open_graphics_window("Array Rectangles",800, 700);
- fill_array(data);
- do
- {
- process_events();
- clear_screen(COLOR_WHITE);
- draw_bar(data);
- refresh_screen (60);
- if (key_down(RKEY))
- {
- sort_data(data);
- }
- }while(!(window_close_requested() ) );
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement