Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
Learn How to Create Your Own Programming Language
createyourproglang.com
Recent
Simple Particle Engine for a shooter game
Snake / Nibbles clone in C and Ncurses
Please improve
Parsing of XML data has high CPU usage
Convert simple Javascript to jQuery plugin
Active Record getting unique records
List the files in a directory without the directory name or the extension
clean the code
ohs system, recruitment software, hr software, oh&s software, human resources software, ohs software
Array parsing in a block
Popular
Parsing of XML data has high CPU usage
Please improve
Snake / Nibbles clone in C and Ncurses
List the files in a directory without the directory name or the extension
Convert simple Javascript to jQuery plugin
Simple Particle Engine for a shooter game
Active Record getting unique records
Breadth first cartesian product iterator
php refactoring
first BST
Pastable version of
program i wrote to learn
<pre class='prettyprint' language='c'>#include <stdio.h> #include <stdlib.h> #include <sys/ioctl.h> #include <ao/ao.h> #include <math.h> #include <pthread.h> #define BUF_SIZE 4096 int play = 0; int stop = 0; int main (int argc, char *argv[]) { //check for whitch effect to print int i = argc; for(i > 0; i--;) { switch(*argv[i]) { case '1': lattus(); break; case '2': normal(); break; case '3': choice(); break; case ' ': break; default: break; } } } char *randstring (char *buffer, int length) { //genertate a random number int i = length; for(i >= 0; i--;) { buffer[i] = (rand() % 2) ? '1' : '0'; } buffer[length] = 0; return buffer; } int normal(){ // normal drawing of 1's and 0's struct winsize w; ioctl(0, TIOCGWINSZ, &w); int width = w.ws_col; int height = w.ws_row; //get terminal width and height char buffer[width*height + 1]; //create a buffer big enough to hold one draw to the screen int i = 25; while(i-- >= 0) { printf("%s\n", randstring(buffer, width*height)); //draw to screen usleep(50000); } system("clear"); //clear screen } void *runner(void *threadid){ //detect thread number and run correct function long tid; tid = (long)threadid; if(tid == 1){ noise(30); }else{ lattus(); } pthread_exit(NULL); } int choice(){ //start the seperate threads pthread_t threads[2]; long t; int rc; int play2; for(t=0;t<2;t++){ rc = pthread_create(&threads[t], NULL, runner, (void *)t); } if (rc){ printf("ERROR; return code from pthread_create() is %d\n", rc); exit(-1); } pthread_exit(NULL); } int noise(int pitch) { //initiate the noise function with pitch option(not implemented atm) ao_device *device; ao_sample_format format; int default_driver; char *buffer; int buf_size; int sample; float freq = 440.0; int i; ao_initialize(); default_driver = ao_default_driver_id(); format.bits = 16; format.channels = 2; format.rate = 44100; format.byte_format = AO_FMT_LITTLE; int length = 2000; buf_size = format.bits/8 * format.channels * length; buffer = calloc(buf_size, sizeof(char)); for (i = 0; i < length; i++) { sample = (int)(1 * 32768.0 * sin(2 * M_PI * freq * ((float) i/format.rate))); buffer[4*i] = buffer[4*i+2] = sample & 0xff; buffer[4*i+1] = buffer[4*i+3] = (sample >> 8) & 0xff; } while(stop != 1){ if(play == 1){ device = ao_open_live(default_driver, &format, NULL /* no options */); ao_play(device, buffer, buf_size); ao_close(device); play = 0; } } pthread_exit(NULL); } int lattus (void) { struct winsize w; ioctl(0, TIOCGWINSZ, &w); int width = w.ws_col; //get the terminal width char *buffer1 = malloc(sizeof(char) * (width + 1)); //create 3 buffers for each segment char *buffer2 = malloc(sizeof(char) * (width + 1)); //each big enough to hold the width of the terminal char *buffer3 = malloc(sizeof(char) * (width + 1)); int first = 1; //how many before the space int second = width - 8; //how many in the middle of the space int third = 1; //how many at the end of the space int i = 1000; //draw 1000 lines int on = 0; //switch for growing and shrinking while(i-- >= 0) { usleep(9000); if(first == 1 && third == 1 && second == width - 8 || second == width - 9) { //is it at min? if(second % 2 == 0) { //is it an even number (had problems with buffer if it was odd) second = second - 2; } else { second = second - 3; } first ++; third ++; on = 0; //keep growing play = 1; } else if(first == (width - 8) / 2 && third == (width - 8) / 2 && second == 2) { //untill it gets to max if(second % 2 == 0) { second = second + 2; } else { second = second + 1; } third --; first --; on = 1; //start shrinking play = 1; } else if(on == 0) { //else if suppost to grow, grow second = second - 2; third ++; first ++; } else if(on == 1) { //else if suppost to shrink shrink second = second + 2; third --; first --; } else { break; } printf("%s %s %s\n", randstring(buffer1, first), randstring(buffer2, second), randstring(buffer3, third)); //print it out wait(); } stop = 1; system("clear"); //clear screen ao_shutdown(); pthread_exit(NULL); }</pre> <a href="http://www.refactormycode.com/codes/1040-program-i-wrote-to-learn" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://www.refactormycode.com/images/small_logo.gif" style="border:0" /></a>