Skip to content

Instantly share code, notes, and snippets.

View gist:2b807410dec40f6e721826fec9878a42

How a path is generated

Step 1

Place two 4x1 vertical stack of tiles and three 3x1 vertical stack of tiles on the grid. The order in which you place the tiles is random (so for example there would be a 2 / 5 = 40% chance that the path could end with a 4x1 line to the finish). The stacks are placed such that the top of one stack will align to the bottom of the next stack. The tips of the stacks are not allowed to intersect.

For example, after step 1 it could look like this:

|x| | | | | | | | | |
View content.json
This file has been truncated, but you can view the full file.
{
"ability_score_settings": [
{
"value": "6",
"id": "ability_score_bad_streak_episode_range_max"
},
{
"value": "4",
"id": "ability_score_bad_streak_episode_range_min"
@alexjlockwood
alexjlockwood / MainActivity.kt
Last active May 4, 2021
Example of a TimerButton component that manages its own timer state (video: https://youtu.be/-qbJRDDwB8M)
View MainActivity.kt
package com.alexjlockwood.composetimerdemo
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.material.icons.Icons
View gist:c3a334c41911b75f528074bb872b7c28
@Composable
fun <S> ScreenTransition(
targetBackstack: List<S>,
modifier: Modifier = Modifier,
content: @Composable (S) -> Unit,
) {
// TODO: figure out if we are sliding in from left or right
ScreenTransition(
targetState = targetBackstack.last(),
modifier = modifier,
View ContactListItem.kt
/**
* A simple ListItem that displays text, detail text, a start icon, and an optional end icon.
*/
@Composable
fun ContactListItem(
text: @Composable () -> Unit,
modifier: Modifier = Modifier,
detailText: @Composable (() -> Unit)? = null,
startIcon: @Composable (() -> Unit)? = null,
endIcon: @Composable (() -> Unit)? = null,
@alexjlockwood
alexjlockwood / CircleSquare.kt
Last active Sep 26, 2020
A circle square animation implemented using Jetpack Compose. Inspired by @beesandbombs (twitter.com/beesandbombs).
View CircleSquare.kt
package com.alexjlockwood.circlesquare
import androidx.compose.animation.animatedFloat
import androidx.compose.animation.core.AnimationConstants
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.repeatable
import androidx.compose.animation.core.tween
import androidx.compose.foundation.Canvas
import androidx.compose.runtime.Composable
@alexjlockwood
alexjlockwood / WaveSquare.kt
Created Sep 9, 2020
A composable wave square animation.
View WaveSquare.kt
package com.alexjlockwood.wavesquare
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.animation.animatedFloat
import androidx.compose.animation.core.AnimationConstants
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.repeatable
import androidx.compose.animation.core.tween
import androidx.compose.foundation.Canvas
@alexjlockwood
alexjlockwood / PlayingWithPaths.kt
Last active Jun 18, 2021
Implementation of a 'Playing with Paths' polygon animation
View PlayingWithPaths.kt
package com.alexjlockwood.playingwithpaths
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.animation.animatedFloat
import androidx.compose.animation.core.AnimationConstants
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.repeatable
import androidx.compose.animation.core.tween
import androidx.compose.foundation.Image
@alexjlockwood
alexjlockwood / CircularProgressIndicator.kt
Last active Sep 18, 2020
Example implementation of a CircularProgressIndicator using Jetpack Compose https://twitter.com/alexjlockwood/status/1300599202448199681
View CircularProgressIndicator.kt
package com.alexjlockwood.circularprogressindicator
import android.os.Bundle
import android.view.animation.PathInterpolator
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.animation.core.*
import androidx.compose.animation.transition
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
View ScreenshotTaker.java
package com.instabug.library.instacapture.screenshot;
import android.annotation.TargetApi;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.Bitmap.Config;
import android.graphics.PorterDuff.Mode;