Programming Challenge 2.0 Reboot

Lets fucking do this.

Other urls found in this thread:

github.com/mission712/analog-clock
pastebin.com/8iLg1QcA
twitter.com/NSFWRedditVideo

First for Ruby.

Oh GOOD LORD I aint doin' 07. Rolling again.

7 isn't actually hard, should only take you a weekend to make something decent

also rollan

I am semi-new to program development, please go easy on me

I understand that but reloll

I'm okay with this.

vigenere cipher in scheme

(define (vchar->integer c) (- (char->integer c) (char->integer #\a)))(define (integer->vchar n) (integer->char (+ n (char->integer #\a))))(define (table-lookup op textchar passchar) (modulo (op (vchar->integer textchar) (vchar->integer passchar)) 26))(define encrypt-op +)(define decrypt-op -)(define (string-ref-mod str n) (string-ref str (modulo n (string-length str))))(define (vigenere text passphrase op) (define (iter i) (cond ((< i (string-length text)) (if (eq? (string-ref text i) #\space) (cons (vchar->integer #\space) (iter (+ i 1))) (cons (table-lookup op (string-ref text i) (string-ref-mod passphrase i)) (iter (+ i 1))))) (else '()))) (list->string (map integer->vchar (iter 0))))(define (encrypt text passphrase) (vigenere text passphrase encrypt-op))(define (decrypt text passphrase) (vigenere text passphrase decrypt-op))

I get the feeling whoever did this is a drooling retard, most of the challenges aren't even interesting at all.

Ray-Casting sounds like a breeze.

rolling

Rollin'

rolling

writing "mathematically" instead of "lexically" doesn't make you a drooling retard

I finished this last night.

Rollan

roll

please dont bring roll threads to Holla Forums

also roll

If you think you can do any of the challenges on that list, you shouldn't need an imageboard to generate random numbers.

...

For these examples, I'm guessing calling already made functions defeats the point?

rolling in the deep

rolly

Aaaaaand done.

fuk forgot link
https;//github.com/mission712/analog-clock
It ain't pretty but does the job.

github.com/mission712/analog-clock
I hate my keyboard.

Shit took me way too long

#!/usr/bin/pythondate1 = "12.02.1995"date2 = "13.03.1996"split1 = date1.split(".")split2 = date2.split(".")d1 = int(split1[0])d2 = int(split2[0])m1 = int(split1[1])m2 = int(split2[1])y1 = int(split1[2])y2 = int(split2[2])days = 0def getDaysInMonth(month): if inBetweenMonth % 2 == 0: return 30 else: return 31if y2 > y1: for yearDifference in range (0, (y2 - y1)): inBetweenYear = y1 + yearDifference if not inBetweenYear == y2 - 1: days += 365 else: if not (m2 == m1 and d2 == d1): inBetweenMonth = m1 while inBetweenMonth != m2: if not inBetweenMonth == m2 - 1: days += getDaysInMonth(inBetweenMonth) if inBetweenMonth != 12: inBetweenMonth += 1 else: inBetweenMonth = 1 else: if d2 > d1: days += getDaysInMonth(inBetweenMonth) if not d2 == d1: inBetweenDay = d1 while not inBetweenDay == d2: days += 1 if not inBetweenDay == getDaysInMonth(inBetweenMonth): inBetweenDay += 1 else: inBetweenDay = 1 break else: days += getDaysInMonth(inBetweenMonth) break days += 365print(days)

Should me just month
Now how the fuck does this still work even though it's not called month?

Cool clock Ahmed

global variables.
Also you probably just pass the inBetweenMonth as month.

python sure is confusing

Your getDaysInMonth is very incorrect. February has 28 days, and from August on, even months have 31 days and odd months 30.

that's the tolerance you have to calculate in

5% tolerance

Rollan

Roll #2 because I finished the analog clock and got nothing better to do.

it is on.

Using a library is cheating.

He's including a local file, not a system file.

Yes, the difficulty levels are highly subjective.


You will love unix time (man 3 time).
Wanted to use time (the C functions), but Python doesn't let me use struct tm properly so I have to import program
#!/usr/bin/env python3import datetimefrom sys import argv, exitdef iso2t(s): return datetime.datetime.strptime(s, "%Y-%m-%d")try: res = iso2t(argv[2]) - iso2t(argv[1]) print("%d" % res.days)except (ValueError, IndexError): exit("Input valid iso days fam")

You are supposed to do it yourself. This is not programming, this is using system calls.

I was wondering if this thread was just about rapid prototyping or creating things from scratch. It seems like using libraries would be cheating. My task is making a string tokenizer atm, it would seem silly to just call in that exact pre-made function.

I personally only code with productivity in mind if I'm workslaving or working on projects where I want the product to be done fast.

Feels weird to me to rely on things other people have coded when I want to do something for personal use. Doesn't feel like I made it.

it really is highly subjective, you can complete the same task in javascript if you're using datetime objects with one line of code

var daysBetween = (x, y) => (x-y)/864e5 | 0

Rock'n'rollan

Fuck it, rolling

#include #include int main(void){ std::string pre = { 32, 32, 32, 32, 32, 32, 32, 32, 34 }; char post = 34; std::array code{ "#include ", "#include ", "", "int main(void)", "{", " std::string pre = { 32, 32, 32, 32, 32, 32, 32, 32, 34 };", " char post = 34;", " std::array code{", " };", " for (unsigned i = 0; i < 8; ++i)", " std::cout

not liking a lot of those tasks, but what's Russian Roulette withou a bullet?

I just wanted to show the guy unix time. Should I have reimplemented time.h? Also, "main logic" in C:
#include #include #define SEC2DAY(x) (x) / 60 / 60 / 24int main(){ struct tm t0 = {0}, t1 = {0}; // 1995-02-12 t0.tm_year = 2014; t0.tm_mon = 2; t0.tm_mday = 12; // 2015-03-12 t1.tm_year = 2015; t1.tm_mon = 3; t1.tm_mday = 12; time_t t0_sec = mktime(&t0); time_t t1_sec = mktime(&t1); printf("%lu\n", SEC2DAY(t1_sec - t0_sec)); return 0;}

: /\ ( n -- triangle-n ) dup 1+ * 2/ ;

5 /\ . ( outputs: 15 )

one day this will post

Kids, this is why JavaScript is bad for you.

muh ES6
muh scoping

it's one line of code, there's no difference between var and let without context

Shit. Wrong comments are worse than no comments.

Rolling

ty
I can't really make anything yet, but I'll roll and add it to my todo list :^)

lol fuck that
reroll

Let's roll

not me but did it anyway
var sieve = x => { let arr = Object.keys(new Uint8Array(x + 1)).map(Number).slice(2) let s = arr => { let t = arr.filter(x => x % arr[0] !== 0) let car = arr.slice(0, 1) if (t.length === 0) { return car } else { return car.concat(s(t)) } } return s(arr)}

Jimmy Rawlins

Simple but effective.
sentences.txt:

I
I love
I hate you.
I fucking hate you.
You piece of shit.
I want to fucking kill you.
I want to rip out your balls and devour.
I fucked your mother and you don't regret it.
You are now transgender cis fag. Be happy oh wait.
You are a feminazi piece of shit.
Overall you make me want to fuck buns or someshit.
Faggot.
Sincerely, OP.

Fuck that's hard, roll.

rawl

rerol noway

I did that when I was 15.
On a VIC-20. (3.5kB RAM)
In BASIC.
In a CAVE.

Yea, it should be relatively straight forward... maybe just a bit tedious to do implement everything that's needed. Not bad for practice though.

Pleb rolling for green

ok

roll

fizzbuzz me

how about something that isn't a Project Euler task

Rate my code, Holla Forums. I hope it's not too shit tbh, I'm going to have a exam in a couple hours on C++ too, so this was good practice.
/*Two-player tic-tac-toe brudder*/#include #include using namespace std;/*Function prototypes*/void printBoard (char xo[9]);bool checkBoard (int, char xo[9]);bool winCheck (char xo[9], int);/*Main*/int main (void) { /*Instantiate Variables*/ char x = 'X'; char o = 'O'; bool winner = false; bool player = 0; bool taken = false; int spot; int winDetected; /*Instantiate the arrays*/ char xo[9] = {'0', '1', '2', '3', '4', '5', '6', '7', '8'}; /*Welcome Message*/ cout spot; /*Check if the spot is taken*/ taken = checkBoard(spot, xo); while (taken) { cout > spot; taken = checkBoard(spot, xo); } while(taken); /*Update the board*/ xo[spot] = x; printBoard (xo); /*Check for a winner*/ winner = winCheck(xo, 0); /*Update the player*/ player = player + 1; } else { /*O plays*/ cout > spot; /*Check if the spot is taken*/ taken = checkBoard(spot, xo); while (taken) { cout > spot; taken = checkBoard(spot, xo); } while(taken); /*Update the board*/ xo[spot] = o; printBoard (xo); /*Check for a winner*/ winner = winCheck(xo, 0); /*Update the player*/ player = player - 1; } } while (!winner); /*Declare the winner*/ if (player == 1) { cout

sorry to say, but your code is shit

I figured ;_;.
What I can improve is the switching turns part, and turn that whole part into a function instead of repeating the code twice. What else can I improve?

well i hope you do realize this
for (winDetected = 0; winDetected < 9; winDetected++){ switch(winDetected) {

runs trough all the cases of the switch statement i.e. both the for and the switch are obsolete if you want to search for a winner that way
(...also why do you check for specific symbols when you can check that they are the same)
(also i'm sure there is a faster way than 8 if statements, but i don't want to think about it)

also do you even check for a draw.. or go into an endless loop when the board is filled?

Why the huge case statement? Why not do a loop at least for the loops? Better yet, why not set up something that checks recursively for lines up to 3 or something.

requires fpmathfvariable fatnessfvariable tallness0 value bmi-table: kg ( r -- ) fatness f! ;: pounds ( r -- ) 0.45359237e f* kg ;: meters ( r -- ) tallness f! ;: feet ( r -- r' ) 12e f* ;: inches ( r r -- ) f+ 0.0254e f* meters ;: bmi ( -- r ) fatness f@ tallness f@ fdup f* f/ ;: bmi: ( r-from r-to "meaning" -- ) fswap f, f, here 256 allot 0 parse rot place ;class bmi-record fvariable low fvariable high 256 buffer: meaning 0 buffer: next : within ( r -- f ) low f@ 0e f< if fdrop true \ 'otherwise' case else low f@ high f@ fwithin then ; : wat cr low f@ f. high f@ f. meaning count type ;end-class: otherwise ( -- r r ) -1e -1e ;\ superior anime BMI rangescreate japan-table here to bmi-table 0e 18.5e bmi: chibi18.5e 25e bmi: normal person25e 30e bmi: fat fuck30e 35e bmi: HAES activist35e 40e bmi: deathfat otherwise bmi: transmountain (preferred pronouns: Mt. Mt. Mt. Mt.): bmi? ( -- ) bmi bmi-table begin fdup dup USING bmi-record within if cr ." You have a BMI of " f. ." -- meaning that you are a " USING bmi-record meaning count type exit then USING bmi-record next again ;\\200e pounds5e feet 9e inchesbmi?\ outputs: You have a BMI of 29.534533 -- meaning that you are a fat fuck

I just wanted an excuse to use switches, I've never used them until now. I'm pretty retarded.

I thought about it then forgot to implement

Changes to make:
This way I can also add a draw feature. If the game isn't finished by nine turns, it'll be a draw.


There are only 8 possible ways to win in this game, but you're right. I could reduce it to 4 statements if I make a for loop that adds one to rows and columns using a for loop.

In the switch(winDetected) part you have the same code over and over again with very small variations. That's always a bad sign. Design a formula so the same code handles all cases. It's ok to think about it for a while. It's maybe the single most important skill to train. The same goes for the printBoard function. Use for loops for that.

Most of your comments are completely useless. I know what function prototypes, main functions, variable instantiation and all that stuff look like. You don't need to tell me. That's not what comments are for. Comments are for when code's purpose isn't obvious. It's for fellow programmers, not people looking to learn the basic syntax of the programming language.

The purpose of your "checkBoard" function is fine. It's good to split things up in small functions. That makes your code more manageable. You could use a lot more functions. The problem with the npm fragmentation is not that there are functions for everything, but that there are packages for everything.
But you could have made the code shorter and simpler, like this:
return (xo[number] == 'X' || xo[number] == 'O');

This is something you shouldn't do, at least not inside a function:
char x = 'X';char o = 'O';
It makes it harder to tell what's going on. If I see you're assigning a variable value to something I assume that it might change, and I have to look back to see what that value is.
But doing something like that is useful if you might want to change 'X' and 'O' to different characters at some point. But in that case you should use it consistently, and never use the literal characters anywhere. You should also make them constants that are defined outside the function definitions, so they're available everywhere. These are two ways of doing that, I don't know which one is preferred in C++:
const char x = 'X';const char o = 'O';
#define X 'X'#define O 'O'
The second one uses the C preprocessor.
Your goal should be to define them in a single place. That way, you only have to change two lines of code to change the characters for the entire program.

You can represent a tic-tac-toe board with a nine-digit number, with 0 representing an empty space, then 1 for X and 2 for O (or vice versa). The most compact representation would use a ternary numeral, but for convenience with computers you can use 4-base numerals.

For example:

: popcnt ( u -- u ) \ count set bits, from clf DUP 1 RSHIFT $55555555 AND - $33333333 2DUP AND >R SWAP 2 RSHIFT AND R> + $0F0F0F0F 2DUP AND >R SWAP 4 RSHIFT AND R> + $00FF00FF 2DUP AND >R SWAP 8 RSHIFT AND R> + $0000FFFF 2DUP AND >R SWAP 16 RSHIFT AND R> + ;: 3-set ( u -- f ) popcnt 3 = ;\ Trouble in Terrorist Town (TTT)create players bl c, char X c, char O c, ( error: ) char * c,1 constant X2 constant O0 constant new-game: .square ( t -- t' ) 4 /mod swap players + 1 type ;: .row ( t -- t' ) cr ." |" .square .square .square ." |" ;: --- ( -- ) cr ." -----" ;: .board ( t -- ) --- .row .row .row drop --- ;( t -- t' ): match ( t1 t2 -- f *exits* | t1 ) postpone OVER postpone AND postpone 3-set postpone IF postpone DROP postpone TRUE postpone EXIT postpone THEN ;immediate4 base !: x-wins? ( t -- f ) 111000000 match 000111000 match 000000111 match 100100100 match 010010010 match 001001001 match drop false ;: o-wins? ( t -- f ) 222000000 match 000222000 match 000000222 match 200200200 match 020020020 match 002002002 match drop false ;decimal: board-full? ( t -- f ) 9 0 do 4 /mod swap 0= if drop false unloop exit then loop drop true ;: play ( t t -- t | *winner* ) or dup .board cr dup x-wins? if ." X has won!" drop exit then dup o-wins? if ." O has won!" drop exit then dup board-full? if ." It's a draw!" drop exit then ;: at ( n-player n-col n-row -- t ) 6 * rot swap lshift swap 2* lshift ;

Example:

new-game x 0 0 at play x 0 1 at play x 0 2 at play -----|X || || |----------|X ||X || |----------|X ||X ||X |-----X has won! ok

Looking at just the board as a number, in base 4:

new-game x 0 0 at play x 0 1 at play x 0 2 at play 000000001000001001001001001X has won! ok

Rollin'

the "mathematically" probably isn't a mistake. They mean: don't just convert the number into a string and reverse the string.

still, looks like this list was put together by a thread.

Rolling

holy fuck that's v cool. Save't for future reference.


I've been making fatal mistakes the entire time. New code though:
/*Two-player tic-tac-toe brudder*/#include using namespace std;void printBoard (char xo[9]);bool checkBoard (int, char xo[9]);bool winCheck (char xo[9], int, bool);bool turn (bool, char, char xo[9]);int main (void) { /*Instantiate Variables*/ bool winner = false; bool player = 0; bool draw = false; int winDetected; int counter; /*Instantiate the arrays*/ char xo[9] = {'0', '1', '2', '3', '4', '5', '6', '7', '8'}; /*Welcome Message*/ cout

You're doing something very odd here:
for (a = 0; a < 4; a++) { if ((xo[0+a] == o && xo[1+a] == o && xo[2+a] == o) || (xo[0+a] == x && xo[1+a] == x && xo[2+a] == x)) { return true; } else if ((xo[0+a] == o && xo[3+a] == o && xo[6+a] == o) || (xo[0+a] == x && xo[3+a] == x && xo[6+a] == x)){ return true; } else if ((xo[0] == o && xo[4] == o && xo[8] == o) || (xo[0] == x && xo[4] == x && xo[8] == x)) { return true; } else if ((xo[2] == o && xo[4] == o && xo[6] == o) || (xo[2] == x && xo[4] == x && xo[6] == x)) { return true; } else { return false; }}

Because every case inside the loop returns something, the loop will never run more than once. When you return a value, the function ends, and an iteration always returns a value in your code.

You're making a whole else-if-chain of conditions that return true, when you could all bundle them in a single condition:
if ((xo[0+a] == o && xo[1+a] == o && xo[2+a] == o) || (xo[0+a] == x && xo[1+a] == x && xo[2+a] == x) || (xo[0+a] == o && xo[3+a] == o && xo[6+a] == o) || (xo[0+a] == x && xo[3+a] == x && xo[6+a] == x) || (xo[0] == o && xo[4] == o && xo[8] == o) || (xo[0] == x && xo[4] == x && xo[8] == x) || (xo[2] == o && xo[4] == o && xo[6] == o) || (xo[2] == x && xo[4] == x && xo[6] == x)) return true;} else { return false;}
And you still need to shrink it a lot.

I also recommend putting the board in a two-dimensional array, instead of a one-dimensional one. That way you can use something like xo[2][1] instead of xo[7], which is much easier to deal with.

Done, although im not quite sure what was meant wtih the "(strings, arrays)"

#!/usr/bin/env python3def main(): print('Binary search') print('Pick a number between 1 and 100') print('Answer wether a guess is too high or too low') min = 1 max = 100 while (max - min) > 1: halfpoint = min + ((max - min) / 2) halfanswer = input('Is %s too low or to high [l/h]? ' % halfpoint) if halfanswer == 'l': min = halfpoint elif halfanswer == 'h': max = halfpoint else: print('Invalid answer') print('Done, your number is %s' % max)if __name__ == '__main__': main()

I felt that putting all that in one line would be ugly. But then again, it's hidden in a function for no one to see, maybe it would be better in one line.

I haven't worked with these, p cool. I'm not sure how to turn the array into a multi dimensional one just for the board though. How does input work for multi dimensional arrays work?

I'm not sure what to shrink other than the board and the winCheck.

You don't need to put it on one line. The way I rewrote it, it's spread out over multiple lines. But putting it in a single condition makes it clearer what's going on.

Functions are not "hidden for no one to see".

A two-dimensional array is actually an array of arrays. You should be able to declare it like this:
xo[3][3] = {{'0', '1', '2'}, {'3', '4', '5'}, {'6', '7', '8'}};
Putting it in neat rows and columns like that is optional, of course. You can put it on a single line, but this is easier to read. Most whitespace is cosmetic.

The board and the winCheck were the only things I was talking about when I talked about shrinking.

This code is odd:
if (player == 0) { turn(player, 'X', xo); player = player + 1;} else { turn(player, 'O', xo); player = player - 1;}
You're incrementing and decrementing the player variable when there are only two possibilities, and you're switching between them. Write it like this:
if (player == 0) { turn(player, 'X', xo); player = 1;} else { turn(player, 'O', xo); player = 0;}

Saved. For the lines, I never knew that was possible, mostly because I never tried. The two dimensional array is v nice, I'll have to work on it. And the player switching was odd I agree.

Thanks user, you made my day.

Languages like C and C++ barely look at whitespace, so you can be creative with your formatting. Outside strings, it only matters to separate words, and end //-style comments. You can do things like this:
function(first argument, second argument, third argument);

Boop x3

how about you kill yourself you troglodyte?

12345 + x = 54321

Maybe it means solve for x using various operators to achieve a number that is the reverse of the original.

not user but that sounds p tough
if 12 + 9 = 21
30 + -27 = 03
I don't know how to find a correlation like these numbers

think about it

roll
roll

Rollerino

rollan

typing my thoughts:
can't be one digit. Starts at 10.
It also can't be double digits.
10 + -9 = 1
12 + 9 = 21
16 + 45 = 61
21 - 9 = 12
32 - 9 = 23
125 + 396 = 521
x is always divisible by nine regardless, unless it's a double digit. x is always negative right before the double digit. That's very interesting. I'm too lazy to make a brogram though smh.

that was pretty fun

JUST ROLL ME SHIT UP

Please don't use Javascript for this one, im interested in seeing an actual result

Yeah there's a solution for up to 10000 as far as I can tell but it involves accessing individual digits so why not just do it the normal way. It's still maths.

to cast characters as integers in Python, is it just int(x)?

Trying to make a string tokenizer from scratch without system calls, and I'm just too used to C

rollin, but I'll pussy out and do the nearest easy one because I'm a scrub

yes, and if you want to sanitise input there are character classes in the string module

Sarcasm?

rooll

is this /g/

roll

Let's go!

rollan even though i probably wont do it

Let's try this shit out.

wew that was easy

def Collatz(n): print('Collatz: {}'.format(n)) if (n == 1): print('N IS EQUAL TO 1!') elif (n % 2 == 0): print('n = {} (even), Collatzing n/2...'.format(n)) Collatz(n/2) else: print('n = {} (odd), Collatzing 3n+1...'.format(n)) Collatz((3*n)+1)Collatz(1000)

reroll for something harder that i won't bother with

wew

Probably won't do this but fuck it.

reroll

#include int triangleNumber(int n) { if(n == 1 || !n) return 1; return triangleNumber(n-1)+n;}void printTriangle(unsigned n) { unsigned i,j; for(i = 0; i < n; ++i) { for(j = 0; j < n-(i+1); ++j) { putchar(' '); } putchar('#'); if(i) { for(j = 0; j < i*2-1; ++j) { if(i != n-1) putchar(' '); else putchar('#'); } putchar('#'); } putchar('\n'); }}int main() { unsigned n,c,i; puts("Enter the first case followed " "by the number of cases to print."); scanf("%u %u", &n, &c); for(i = n; i < n+c; ++i) { printf("n(%i) = %i\n", i, triangleNumber(i)); printTriangle(i); if(i != n+c-1) putchar('\n'); } return 0;}

rollin

rollin

Rollang

BMI calc is all I could do (so far)

//bmi calc#include using namespace std;int main(){ double inch, feet, lbs, bmi; cout feet; cout > inch; cout > lbs; feet = feet * 12; inch = feet + inch; bmi = (lbs / (inch * inch)) * 703; cout

I'm bored

Some progress on Tetris.

Sorry for the key noises, mic was accidentally picked up.

We should come up with a better list, many of them are boring or extremely time consuming, while others can be done in one line, irrespective of their difficulty.

python:

print("Your BMI is " + str(float(input("What is your weight? (kilograms)"))/float(input("What is your height? (meters)"))**2))

you fucking suck at Tetris man

No rotation yet bro

Rolling.

Lets roll

Lol you tried to make it as condensed as possible but it just looks like shit

It'd be cool to have one that was based on using different language types.

it was more to demonstrate the 'can be done in one line' point. But here you go:
weight = float(input("What is your weight? (kilograms)"))height = float(input("What is your height? (meters)"))print("Your BMI is " + str(weight/height**2)

I roll now, 56 get

fuck, one extra ')' ofc

got an hour to kill, rollin

my contribution to science
#!/bin/python2.7import timeraw_input("Press enter to start...")start_time=time.time()text=raw_input("Go! (press enter to stop):")total_time=time.time()-start_timewpm=(len(text)/5.0)/(total_time/60.0)print "WPM:"+str(wpm)

why not do this one too
#!/bin/python2.7import datetimeprint "Date Difference, Date 1 - Date 2"date_1=raw_input("Date 1 (MM:DD:YYYY):")date_1=date_1.split(":")date_1=datetime.date(int(date_1[2]),int(date_1[0]),int(date_1[1]))print date_1date_2=raw_input("Date 2 (MM:DD:YYYY):")date_2=date_2.split(":")date_2=datetime.date(int(date_2[2]),int(date_2[0]),int(date_2[1]))print date_2print (str((date_1-date_2).days))+" Days"

Here ya go

#include

long fibonacci(long n);

int main(void)
{
long result;
long number;

printf("Enter an integer: ");
scanf("%ld", &number);
result = fibonacci(number);

printf("Fibonacci( %ld ) = %ld\n", number, result);
return 0;
}

long fibonacci(long n){
if(n==0 || n==1){
return n;
}
else{
return fibonacci(n - 1) + fibonacci(n - 2);
}
}

rollin

role

nah fam not this shit

wew

roolan

I've never made anything but commandline programs before

roll

Break down your code into more function, post result.

please get something more efficient than O(2^n)

Check my dubs.

I'd rather make something more fun on my own, like malware
Writing a cryptolocker clone is pretty fun

ROLL
ROLL

import textwraptext = "wew lad"n = 3print "\n".join([line for line in textwrap.wrap(text, width=n)])

im only on Holla Forums for the gomedy

rolling

Roll

rollan

Why the hell not, I'm bored and haven't done any serious programming in almost a year

Yeah, roll.

Well that was fun. Only wrote a generator since I've never even done these types of puzzles before, I just know what they are.

pastebin.com/8iLg1QcA (requires Pillow or maybe just regular PIL)

rollin

roll

rolling

I fucking hate nonograms. In college I had to write a nonogram solver for a project. I wasted two weeks writing a piece of shit that could barely solve the simplest puzzle.

hey, this doesn't seem that bad, I'm familiar with Djikstra's algorithm

What's a good library or whatever for representing graphs in C?

keking

Rolling but no bump.

rollin