go solution
@Absinthe Keeping in the tradition of choosing the worst possible languages for #toyprogrammingchallenge this time it's Go: https://gitlab.com/tymorl/warmups/blob/master/commonListSuffix/sol.go . The algorithm is essentially the same as @khird proposed.
@Absinthe I'm very slowly working on a little clever one, and I'm going to use it to make me a new profile picture, just you wait...
@namark awesome
@Absinthe couldn't resist this one:
https://git.sr.ht/~namark/snail/tree/master/snail.cpp
I swear I tried to do it for square only but it seems to work for rectangles too.
In true c++ fashion it comes with a bunch of illegible library code, which I had to extend with a couple of extra abominable appendages to accommodate this toy.
@billstclair It's supposed to be fun. There are different ones with slightly different rules you might could adapt. But whatever you like. Nice js implementation though
Okay, here is one before the weekend.
Conway's Game of Life. It is a simple concept. Set up some cool patterns and let it run on a good cycle. I just did it, using '*' and ' ' but feel free to do it graphically if you prefer. Here are the rules, and my code is in the same repo so let that be a spoiler warning:
https://git.qoto.org/Absinthe/life-conway/blob/master/README.md
@JJFlash Well, thanks for following me. I hope you are not disappointed. :) I have not seen it yet, but will look at it this weekend. Thanks.
@Absinthe Hello! I saw you write about programming puzzles (and that's why I followed you), I was wondering if you know Advent of Code, and if you do, how do you like it 🙂
https://www.adventofcode.com
@grainloom @freemo thanks
Belatedly, a Balanced Brackets tester, in Python:
https://raw.githubusercontent.com/patchcali/toy-programs-gpl/master/test_brackets_balanced.py
The number and nature of the compromises I have to make when choosing a programming language for every goddamn project really gets to me
Except for C. To every use-case which C is suitable, it has never been a disappointment to me.
@sir There are plenty of them
re: Python Solution
@static thanks?
Python Solution
def snail_sort(matrix):
new_list = []
while matrix:
new_list.extend(matrix.pop(0))
if not matrix:
continue
for i in range(len(matrix)):
new_list.append(matrix[i].pop())
if not matrix:
break
if not matrix:
continue
new_list.extend(reversed(matrix.pop()))
if not matrix:
continue
for i in range(len(matrix) - 1, -1, -1):
new_list.append(matrix[i].pop(0))
if not matrix:
break
return new_list
MATRIX = [
[1, 2, 3, 4, 5],
[16, 17, 18, 19, 6],
[15, 24, 25, 20, 7],
[14, 23, 22, 21, 8],
[13, 12, 11, 10, 9],
]
snail_sort(MATRIX)
I borrowed this one from codewars
Snail Sort
Given an n x n array, return the array elements arranged from outermost elements to the middle element, traveling clockwise.
array = [[1,2,3],
[4,5,6],
[7,8,9]]
snail(array) #=> [1,2,3,6,9,8,7,4,5]
For better understanding, please follow the numbers of the next array consecutively:
array = [[1,2,3],
[8,9,4],
[7,6,5]]
snail(array) #=> [1,2,3,4,5,6,7,8,9]
This image will illustrate things more clearly:
NOTE: The idea is not sort the elements from the lowest value to the highest; the idea is to traverse the 2-d array in a clockwise snailshell pattern.
Octave solution
@khird looks good, much better than my python solution :)
The green faerie