├── .gitignore ├── LICENSE ├── README.md ├── analog_clock ├── .gitignore ├── .metadata ├── README.md ├── analog.gif ├── analog_dark.png ├── analog_light.png ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── analog_clock │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── assets │ ├── dark-second-hand.png │ └── light-second-hand.png ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ └── contents.xcworkspacedata │ └── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h ├── lib │ ├── analog_clock.dart │ ├── container_hand.dart │ ├── drawn_hand.dart │ ├── hand.dart │ └── main.dart ├── pubspec.lock └── pubspec.yaml ├── flutter_clock_helper ├── .metadata ├── CHANGELOG.md ├── README.md ├── customizer.png ├── lib │ ├── customizer.dart │ └── model.dart └── pubspec.yaml ├── screenshot.png └── tetris_clock ├── .gitignore ├── .metadata ├── README.md ├── assets ├── numbers │ ├── tetris_number0.json │ ├── tetris_number1.json │ ├── tetris_number2.json │ ├── tetris_number3.json │ ├── tetris_number4.json │ ├── tetris_number5.json │ ├── tetris_number6.json │ ├── tetris_number7.json │ ├── tetris_number8.json │ └── tetris_number9.json ├── splash_screen.json ├── tetris_blocks.json └── weather │ ├── cloudy.json │ ├── foggy.json │ ├── rainy.json │ ├── snowy.json │ ├── sun.json │ ├── thunderstorm.json │ └── windy.json ├── digital.gif ├── digital_dark.png ├── digital_light.png ├── lib ├── main.dart └── tetris_time.dart ├── pubspec.lock ├── pubspec.yaml └── test └── widget_test.dart /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Other items since we are using a global .gitignore. 36 | **/.dart_tool 37 | **/.pubspec.lock 38 | **/.flutter-plugins 39 | **/.packages 40 | **/.pub-cache/ 41 | **/.pub/ 42 | **/build/ 43 | 44 | # Remove pubspec.lock for libraries 45 | flutter_clock_helper/pubspec.lock 46 | 47 | # Other items grabbed from flutter/flutter repo 48 | flutter_*.png 49 | linked_*.ds 50 | unlinked.ds 51 | unlinked_spec.ds 52 | 53 | # Android related 54 | **/android/**/gradle-wrapper.jar 55 | **/android/.gradle 56 | **/android/captures/ 57 | **/android/gradlew 58 | **/android/gradlew.bat 59 | **/android/local.properties 60 | **/android/**/GeneratedPluginRegistrant.java 61 | **/android/key.properties 62 | *.jks 63 | 64 | # iOS/XCode related 65 | **/ios/**/*.mode1v3 66 | **/ios/**/*.mode2v3 67 | **/ios/**/*.moved-aside 68 | **/ios/**/*.pbxuser 69 | **/ios/**/*.perspectivev3 70 | **/ios/**/*sync/ 71 | **/ios/**/.sconsign.dblite 72 | **/ios/**/.tags* 73 | **/ios/**/.vagrant/ 74 | **/ios/**/DerivedData/ 75 | **/ios/**/Icon? 76 | **/ios/**/Pods/ 77 | **/ios/**/.symlinks/ 78 | **/ios/**/profile 79 | **/ios/**/xcuserdata 80 | **/ios/.generated/ 81 | **/ios/Flutter/App.framework 82 | **/ios/Flutter/Flutter.framework 83 | **/ios/Flutter/Flutter.podspec 84 | **/ios/Flutter/Generated.xcconfig 85 | **/ios/Flutter/app.flx 86 | **/ios/Flutter/app.zip 87 | **/ios/Flutter/flutter_assets/ 88 | **/ios/Flutter/flutter_export_environment.sh 89 | **/ios/ServiceDefinitions.json 90 | **/ios/Runner/GeneratedPluginRegistrant.* 91 | 92 | # Exceptions to above rules. 93 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 94 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2019 The Chromium Authors. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without modification, 4 | are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above 9 | copyright notice, this list of conditions and the following 10 | disclaimer in the documentation and/or other materials provided 11 | with the distribution. 12 | * Neither the name of Google Inc. nor the names of its 13 | contributors may be used to endorse or promote products derived 14 | from this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 20 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 23 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Flutter Clock - Tetris Time 2 | 3 | My contribution to the Flutter Clock challenge in 2020. 4 | 5 | See [flutter.dev/clock](https://flutter.dev/clock) to read more about the contest. 6 | 7 | 8 | 9 | [Video: https://youtu.be/__NSq-X4e0w](https://youtu.be/__NSq-X4e0w) 10 | 11 | Tokens: Merlin and Klaudia Jentsch 12 | 13 | Colors: Merlin and Klaudia Jentsch 14 | 15 | Animation: Michael Jentsch 16 | 17 | Development: Michael Jentsch 18 | 19 | -------------------------------------------------------------------------------- /analog_clock/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Exceptions to above rules. 36 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 37 | -------------------------------------------------------------------------------- /analog_clock/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: ade8dfac3dfb4d2ea04b45ff589fd073d8fc4274 8 | channel: master 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /analog_clock/README.md: -------------------------------------------------------------------------------- 1 | # Analog Clock 2 | 3 | This app is an example of an analog clock. 4 | It has a light theme and a dark theme, and displays sample weather and location data. 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /analog_clock/analog.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/analog.gif -------------------------------------------------------------------------------- /analog_clock/analog_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/analog_dark.png -------------------------------------------------------------------------------- /analog_clock/analog_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/analog_light.png -------------------------------------------------------------------------------- /analog_clock/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | -------------------------------------------------------------------------------- /analog_clock/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'kotlin-android' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | android { 29 | compileSdkVersion 28 30 | 31 | sourceSets { 32 | main.java.srcDirs += 'src/main/kotlin' 33 | } 34 | 35 | lintOptions { 36 | disable 'InvalidPackage' 37 | } 38 | 39 | defaultConfig { 40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 41 | applicationId "com.example.analog_clock" 42 | minSdkVersion 16 43 | targetSdkVersion 28 44 | versionCode flutterVersionCode.toInteger() 45 | versionName flutterVersionName 46 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 47 | } 48 | 49 | buildTypes { 50 | release { 51 | // TODO: Add your own signing config for the release build. 52 | // Signing with the debug keys for now, so `flutter run --release` works. 53 | signingConfig signingConfigs.debug 54 | } 55 | } 56 | } 57 | 58 | flutter { 59 | source '../..' 60 | } 61 | 62 | dependencies { 63 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 64 | testImplementation 'junit:junit:4.12' 65 | androidTestImplementation 'androidx.test:runner:1.1.1' 66 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' 67 | } 68 | -------------------------------------------------------------------------------- /analog_clock/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 8 | 12 | 19 | 23 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/kotlin/com/example/analog_clock/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.analog_clock 2 | 3 | import android.os.Bundle 4 | import io.flutter.app.FlutterActivity 5 | import io.flutter.plugins.GeneratedPluginRegistrant 6 | 7 | class MainActivity: FlutterActivity() { 8 | override fun onCreate(savedInstanceState: Bundle?) { 9 | super.onCreate(savedInstanceState) 10 | GeneratedPluginRegistrant.registerWith(this) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /analog_clock/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /analog_clock/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /analog_clock/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /analog_clock/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /analog_clock/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /analog_clock/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /analog_clock/assets/dark-second-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/assets/dark-second-hand.png -------------------------------------------------------------------------------- /analog_clock/assets/light-second-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/assets/light-second-hand.png -------------------------------------------------------------------------------- /analog_clock/ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /analog_clock/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /analog_clock/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /analog_clock/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | analog_clock 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(FLUTTER_BUILD_NAME) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(FLUTTER_BUILD_NUMBER) 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | UIViewControllerBasedStatusBarAppearance 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /analog_clock/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" -------------------------------------------------------------------------------- /analog_clock/lib/analog_clock.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | 7 | import 'package:flutter_clock_helper/model.dart'; 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter/semantics.dart'; 10 | import 'package:intl/intl.dart'; 11 | import 'package:vector_math/vector_math_64.dart' show radians; 12 | 13 | import 'container_hand.dart'; 14 | import 'drawn_hand.dart'; 15 | 16 | /// Total distance traveled by a second or a minute hand, each second or minute, 17 | /// respectively. 18 | final radiansPerTick = radians(360 / 60); 19 | 20 | /// Total distance traveled by an hour hand, each hour, in radians. 21 | final radiansPerHour = radians(360 / 12); 22 | 23 | /// A basic analog clock. 24 | /// 25 | /// You can do better than this! 26 | class AnalogClock extends StatefulWidget { 27 | const AnalogClock(this.model); 28 | 29 | final ClockModel model; 30 | 31 | @override 32 | _AnalogClockState createState() => _AnalogClockState(); 33 | } 34 | 35 | class _AnalogClockState extends State { 36 | var _now = DateTime.now(); 37 | var _temperature = ''; 38 | var _temperatureRange = ''; 39 | var _condition = ''; 40 | var _location = ''; 41 | Timer _timer; 42 | 43 | @override 44 | void initState() { 45 | super.initState(); 46 | widget.model.addListener(_updateModel); 47 | // Set the initial values. 48 | _updateTime(); 49 | _updateModel(); 50 | } 51 | 52 | @override 53 | void didUpdateWidget(AnalogClock oldWidget) { 54 | super.didUpdateWidget(oldWidget); 55 | if (widget.model != oldWidget.model) { 56 | oldWidget.model.removeListener(_updateModel); 57 | widget.model.addListener(_updateModel); 58 | } 59 | } 60 | 61 | @override 62 | void dispose() { 63 | _timer?.cancel(); 64 | widget.model.removeListener(_updateModel); 65 | super.dispose(); 66 | } 67 | 68 | void _updateModel() { 69 | setState(() { 70 | _temperature = widget.model.temperatureString; 71 | _temperatureRange = '(${widget.model.low} - ${widget.model.highString})'; 72 | _condition = widget.model.weatherString; 73 | _location = widget.model.location; 74 | }); 75 | } 76 | 77 | void _updateTime() { 78 | setState(() { 79 | _now = DateTime.now(); 80 | // Update once per second. Make sure to do it at the beginning of each 81 | // new second, so that the clock is accurate. 82 | _timer = Timer( 83 | Duration(seconds: 1) - Duration(milliseconds: _now.millisecond), 84 | _updateTime, 85 | ); 86 | }); 87 | } 88 | 89 | @override 90 | Widget build(BuildContext context) { 91 | // There are many ways to apply themes to your clock. Some are: 92 | // - Inherit the parent Theme (see ClockCustomizer in the 93 | // flutter_clock_helper package). 94 | // - Override the Theme.of(context).colorScheme. 95 | // - Create your own [ThemeData], demonstrated in [AnalogClock]. 96 | // - Create a map of [Color]s to custom keys, demonstrated in 97 | // [DigitalClock]. 98 | final customTheme = Theme.of(context).brightness == Brightness.light 99 | ? Theme.of(context).copyWith( 100 | // Hour hand. 101 | primaryColor: Color(0xFF4285F4), 102 | // Minute hand. 103 | highlightColor: Color(0xFF8AB4F8), 104 | // Second hand. 105 | accentColor: Color(0xFF669DF6), 106 | backgroundColor: Color(0xFFD2E3FC), 107 | ) 108 | : Theme.of(context).copyWith( 109 | primaryColor: Color(0xFFD2E3FC), 110 | highlightColor: Color(0xFF4285F4), 111 | accentColor: Color(0xFF8AB4F8), 112 | backgroundColor: Color(0xFF3C4043), 113 | ); 114 | 115 | final time = DateFormat.Hms().format(DateTime.now()); 116 | final weatherInfo = DefaultTextStyle( 117 | style: TextStyle(color: customTheme.primaryColor), 118 | child: Column( 119 | crossAxisAlignment: CrossAxisAlignment.start, 120 | children: [ 121 | Text(_temperature), 122 | Text(_temperatureRange), 123 | Text(_condition), 124 | Text(_location), 125 | ], 126 | ), 127 | ); 128 | 129 | return Semantics.fromProperties( 130 | properties: SemanticsProperties( 131 | label: 'Analog clock with time $time', 132 | value: time, 133 | ), 134 | child: Container( 135 | color: customTheme.backgroundColor, 136 | child: Stack( 137 | children: [ 138 | // Example of a hand drawn with [CustomPainter]. 139 | DrawnHand( 140 | color: customTheme.accentColor, 141 | thickness: 4, 142 | size: 1, 143 | angleRadians: _now.second * radiansPerTick, 144 | ), 145 | DrawnHand( 146 | color: customTheme.highlightColor, 147 | thickness: 16, 148 | size: 0.9, 149 | angleRadians: _now.minute * radiansPerTick, 150 | ), 151 | // Example of a hand drawn with [Container]. 152 | ContainerHand( 153 | color: Colors.transparent, 154 | size: 0.5, 155 | angleRadians: _now.hour * radiansPerHour + 156 | (_now.minute / 60) * radiansPerHour, 157 | child: Transform.translate( 158 | offset: Offset(0.0, -60.0), 159 | child: Container( 160 | width: 32, 161 | height: 150, 162 | decoration: BoxDecoration( 163 | color: customTheme.primaryColor, 164 | ), 165 | ), 166 | ), 167 | ), 168 | Positioned( 169 | left: 0, 170 | bottom: 0, 171 | child: Padding( 172 | padding: const EdgeInsets.all(8), 173 | child: weatherInfo, 174 | ), 175 | ), 176 | ], 177 | ), 178 | ), 179 | ); 180 | } 181 | } 182 | -------------------------------------------------------------------------------- /analog_clock/lib/container_hand.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'package:flutter/material.dart'; 6 | 7 | import 'hand.dart'; 8 | 9 | /// A clock hand that is built out of the child of a [Container]. 10 | /// 11 | /// This hand does not scale according to the clock's size. 12 | /// This hand is used as the hour hand in our analog clock, and demonstrates 13 | /// building a hand using existing Flutter widgets. 14 | class ContainerHand extends Hand { 15 | /// Create a const clock [Hand]. 16 | /// 17 | /// All of the parameters are required and must not be null. 18 | const ContainerHand({ 19 | @required Color color, 20 | @required double size, 21 | @required double angleRadians, 22 | this.child, 23 | }) : assert(size != null), 24 | assert(angleRadians != null), 25 | super( 26 | color: color, 27 | size: size, 28 | angleRadians: angleRadians, 29 | ); 30 | 31 | /// The child widget used as the clock hand and rotated by [angleRadians]. 32 | final Widget child; 33 | 34 | @override 35 | Widget build(BuildContext context) { 36 | return Center( 37 | child: SizedBox.expand( 38 | child: Transform.rotate( 39 | angle: angleRadians, 40 | alignment: Alignment.center, 41 | child: Transform.scale( 42 | scale: size, 43 | alignment: Alignment.center, 44 | child: Container( 45 | color: color, 46 | child: Center(child: child), 47 | ), 48 | ), 49 | ), 50 | ), 51 | ); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /analog_clock/lib/drawn_hand.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'dart:math' as math; 6 | 7 | import 'package:flutter/material.dart'; 8 | 9 | import 'hand.dart'; 10 | 11 | /// A clock hand that is drawn with [CustomPainter] 12 | /// 13 | /// The hand's length scales based on the clock's size. 14 | /// This hand is used to build the second and minute hands, and demonstrates 15 | /// building a custom hand. 16 | class DrawnHand extends Hand { 17 | /// Create a const clock [Hand]. 18 | /// 19 | /// All of the parameters are required and must not be null. 20 | const DrawnHand({ 21 | @required Color color, 22 | @required this.thickness, 23 | @required double size, 24 | @required double angleRadians, 25 | }) : assert(color != null), 26 | assert(thickness != null), 27 | assert(size != null), 28 | assert(angleRadians != null), 29 | super( 30 | color: color, 31 | size: size, 32 | angleRadians: angleRadians, 33 | ); 34 | 35 | /// How thick the hand should be drawn, in logical pixels. 36 | final double thickness; 37 | 38 | @override 39 | Widget build(BuildContext context) { 40 | return Center( 41 | child: SizedBox.expand( 42 | child: CustomPaint( 43 | painter: _HandPainter( 44 | handSize: size, 45 | lineWidth: thickness, 46 | angleRadians: angleRadians, 47 | color: color, 48 | ), 49 | ), 50 | ), 51 | ); 52 | } 53 | } 54 | 55 | /// [CustomPainter] that draws a clock hand. 56 | class _HandPainter extends CustomPainter { 57 | _HandPainter({ 58 | @required this.handSize, 59 | @required this.lineWidth, 60 | @required this.angleRadians, 61 | @required this.color, 62 | }) : assert(handSize != null), 63 | assert(lineWidth != null), 64 | assert(angleRadians != null), 65 | assert(color != null), 66 | assert(handSize >= 0.0), 67 | assert(handSize <= 1.0); 68 | 69 | double handSize; 70 | double lineWidth; 71 | double angleRadians; 72 | Color color; 73 | 74 | @override 75 | void paint(Canvas canvas, Size size) { 76 | final center = (Offset.zero & size).center; 77 | // We want to start at the top, not at the x-axis, so add pi/2. 78 | final angle = angleRadians - math.pi / 2.0; 79 | final length = size.shortestSide * 0.5 * handSize; 80 | final position = center + Offset(math.cos(angle), math.sin(angle)) * length; 81 | final linePaint = Paint() 82 | ..color = color 83 | ..strokeWidth = lineWidth 84 | ..strokeCap = StrokeCap.square; 85 | 86 | canvas.drawLine(center, position, linePaint); 87 | } 88 | 89 | @override 90 | bool shouldRepaint(_HandPainter oldDelegate) { 91 | return oldDelegate.handSize != handSize || 92 | oldDelegate.lineWidth != lineWidth || 93 | oldDelegate.angleRadians != angleRadians || 94 | oldDelegate.color != color; 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /analog_clock/lib/hand.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'package:flutter/material.dart'; 6 | 7 | /// A base class for an analog clock hand-drawing widget. 8 | /// 9 | /// This only draws one hand of the analog clock. Put it in a [Stack] to have 10 | /// more than one hand. 11 | abstract class Hand extends StatelessWidget { 12 | /// Create a const clock [Hand]. 13 | /// 14 | /// All of the parameters are required and must not be null. 15 | const Hand({ 16 | @required this.color, 17 | @required this.size, 18 | @required this.angleRadians, 19 | }) : assert(color != null), 20 | assert(size != null), 21 | assert(angleRadians != null); 22 | 23 | /// Hand color. 24 | final Color color; 25 | 26 | /// Hand length, as a percentage of the smaller side of the clock's parent 27 | /// container. 28 | final double size; 29 | 30 | /// The angle, in radians, at which the hand is drawn. 31 | /// 32 | /// This angle is measured from the 12 o'clock position. 33 | final double angleRadians; 34 | } 35 | -------------------------------------------------------------------------------- /analog_clock/lib/main.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'dart:io'; 6 | 7 | import 'package:flutter_clock_helper/customizer.dart'; 8 | import 'package:flutter_clock_helper/model.dart'; 9 | import 'package:flutter/foundation.dart'; 10 | import 'package:flutter/material.dart'; 11 | 12 | import 'analog_clock.dart'; 13 | 14 | void main() { 15 | // A temporary measure until Platform supports web and TargetPlatform supports 16 | // macOS. 17 | if (!kIsWeb && Platform.isMacOS) { 18 | // TODO(gspencergoog): Update this when TargetPlatform includes macOS. 19 | // https://github.com/flutter/flutter/issues/31366 20 | // See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override. 21 | debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia; 22 | } 23 | 24 | // This creates a clock that enables you to customize it. 25 | // 26 | // The [ClockCustomizer] takes in a [ClockBuilder] that consists of: 27 | // - A clock widget (in this case, [AnalogClock]) 28 | // - A model (provided to you by [ClockModel]) 29 | // For more information, see the flutter_clock_helper package. 30 | // 31 | // Your job is to edit [AnalogClock], or replace it with your own clock 32 | // widget. (Look in analog_clock.dart for more details!) 33 | runApp(ClockCustomizer((ClockModel model) => AnalogClock(model))); 34 | } 35 | -------------------------------------------------------------------------------- /analog_clock/pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | archive: 5 | dependency: transitive 6 | description: 7 | name: archive 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "2.0.10" 11 | args: 12 | dependency: transitive 13 | description: 14 | name: args 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "1.5.2" 18 | async: 19 | dependency: transitive 20 | description: 21 | name: async 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "2.3.0" 25 | boolean_selector: 26 | dependency: transitive 27 | description: 28 | name: boolean_selector 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.0.5" 32 | charcode: 33 | dependency: transitive 34 | description: 35 | name: charcode 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.1.2" 39 | collection: 40 | dependency: transitive 41 | description: 42 | name: collection 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.14.11" 46 | convert: 47 | dependency: transitive 48 | description: 49 | name: convert 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "2.1.1" 53 | crypto: 54 | dependency: transitive 55 | description: 56 | name: crypto 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "2.1.3" 60 | cupertino_icons: 61 | dependency: "direct main" 62 | description: 63 | name: cupertino_icons 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "0.1.2" 67 | flutter: 68 | dependency: "direct main" 69 | description: flutter 70 | source: sdk 71 | version: "0.0.0" 72 | flutter_clock_helper: 73 | dependency: "direct main" 74 | description: 75 | path: "../flutter_clock_helper" 76 | relative: true 77 | source: path 78 | version: "1.0.0+1" 79 | flutter_test: 80 | dependency: "direct dev" 81 | description: flutter 82 | source: sdk 83 | version: "0.0.0" 84 | image: 85 | dependency: transitive 86 | description: 87 | name: image 88 | url: "https://pub.dartlang.org" 89 | source: hosted 90 | version: "2.1.4" 91 | intl: 92 | dependency: transitive 93 | description: 94 | name: intl 95 | url: "https://pub.dartlang.org" 96 | source: hosted 97 | version: "0.16.0" 98 | matcher: 99 | dependency: transitive 100 | description: 101 | name: matcher 102 | url: "https://pub.dartlang.org" 103 | source: hosted 104 | version: "0.12.5" 105 | meta: 106 | dependency: transitive 107 | description: 108 | name: meta 109 | url: "https://pub.dartlang.org" 110 | source: hosted 111 | version: "1.1.7" 112 | path: 113 | dependency: transitive 114 | description: 115 | name: path 116 | url: "https://pub.dartlang.org" 117 | source: hosted 118 | version: "1.6.4" 119 | pedantic: 120 | dependency: transitive 121 | description: 122 | name: pedantic 123 | url: "https://pub.dartlang.org" 124 | source: hosted 125 | version: "1.8.0+1" 126 | petitparser: 127 | dependency: transitive 128 | description: 129 | name: petitparser 130 | url: "https://pub.dartlang.org" 131 | source: hosted 132 | version: "2.4.0" 133 | quiver: 134 | dependency: transitive 135 | description: 136 | name: quiver 137 | url: "https://pub.dartlang.org" 138 | source: hosted 139 | version: "2.0.5" 140 | sky_engine: 141 | dependency: transitive 142 | description: flutter 143 | source: sdk 144 | version: "0.0.99" 145 | source_span: 146 | dependency: transitive 147 | description: 148 | name: source_span 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "1.5.5" 152 | stack_trace: 153 | dependency: transitive 154 | description: 155 | name: stack_trace 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "1.9.3" 159 | stream_channel: 160 | dependency: transitive 161 | description: 162 | name: stream_channel 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "2.0.0" 166 | string_scanner: 167 | dependency: transitive 168 | description: 169 | name: string_scanner 170 | url: "https://pub.dartlang.org" 171 | source: hosted 172 | version: "1.0.5" 173 | term_glyph: 174 | dependency: transitive 175 | description: 176 | name: term_glyph 177 | url: "https://pub.dartlang.org" 178 | source: hosted 179 | version: "1.1.0" 180 | test_api: 181 | dependency: transitive 182 | description: 183 | name: test_api 184 | url: "https://pub.dartlang.org" 185 | source: hosted 186 | version: "0.2.5" 187 | typed_data: 188 | dependency: transitive 189 | description: 190 | name: typed_data 191 | url: "https://pub.dartlang.org" 192 | source: hosted 193 | version: "1.1.6" 194 | vector_math: 195 | dependency: transitive 196 | description: 197 | name: vector_math 198 | url: "https://pub.dartlang.org" 199 | source: hosted 200 | version: "2.0.8" 201 | xml: 202 | dependency: transitive 203 | description: 204 | name: xml 205 | url: "https://pub.dartlang.org" 206 | source: hosted 207 | version: "3.5.0" 208 | sdks: 209 | dart: ">=2.4.0 <3.0.0" 210 | -------------------------------------------------------------------------------- /analog_clock/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: analog_clock 2 | description: Analog clock. 3 | version: 1.0.0+1 4 | 5 | environment: 6 | sdk: ">=2.1.0 <3.0.0" 7 | 8 | dependencies: 9 | flutter: 10 | sdk: flutter 11 | flutter_clock_helper: 12 | path: ../flutter_clock_helper 13 | cupertino_icons: ^0.1.2 14 | 15 | dev_dependencies: 16 | flutter_test: 17 | sdk: flutter 18 | 19 | flutter: 20 | uses-material-design: true 21 | -------------------------------------------------------------------------------- /flutter_clock_helper/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 9bd02a1787bd264fde13a445a900ca28d08e3cef 8 | channel: master 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /flutter_clock_helper/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [0.0.1] - TODO: Add release date. 2 | 3 | * TODO: Describe initial release. 4 | -------------------------------------------------------------------------------- /flutter_clock_helper/README.md: -------------------------------------------------------------------------------- 1 | # Flutter Clock Helper 2 | 3 | This package provides scaffolding code for the clock in the Flutter Clock contest. 4 | 5 | Contestants: Do not edit this code. 6 | 7 | 8 | ## Model 9 | Provides data that can change in the clock. Look in model.dart for more details. 10 | 11 | * Time format (12- or 24-hour) 12 | * Location 13 | * Temperature 14 | * Temperature high 15 | * Temperature low 16 | * Temperature unit 17 | * Weather unit 18 | 19 | 20 | ## Clock Customizer 21 | Provides customizations for your clock (based on the model). 22 | You can change the behavior of your clock based on these customizations. 23 | 24 | 25 | 26 | To use inside your app's `main.dart`: 27 | 28 | ``` 29 | runApp(ClockCustomizer((ClockModel model) => AnalogClock(model))); 30 | ``` 31 | 32 | For more information, see the code inside [lib/](lib). 33 | For a full example, see the [Analog Clock](../analog_clock) or [Digital Clock](../digital_clock) in this GitHub repo. 34 | -------------------------------------------------------------------------------- /flutter_clock_helper/customizer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/flutter_clock_helper/customizer.png -------------------------------------------------------------------------------- /flutter_clock_helper/lib/customizer.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'package:flutter/material.dart'; 6 | 7 | import 'model.dart'; 8 | 9 | /// Returns a clock [Widget] with [ClockModel]. 10 | /// 11 | /// Example: 12 | /// final myClockBuilder = (ClockModel model) => AnalogClock(model); 13 | /// 14 | /// Contestants: Do not edit this. 15 | typedef Widget ClockBuilder(ClockModel model); 16 | 17 | /// Wrapper for clock widget to allow for customizations. 18 | /// 19 | /// Puts the clock in landscape orientation with an aspect ratio of 5:3. 20 | /// Provides a drawer where users can customize the data that is sent to the 21 | /// clock. To show/hide the drawer, double-tap the clock. 22 | /// 23 | /// To use the [ClockCustomizer], pass your clock into it, using a ClockBuilder. 24 | /// 25 | /// ``` 26 | /// final myClockBuilder = (ClockModel model) => AnalogClock(model); 27 | /// return ClockCustomizer(myClockBuilder); 28 | /// ``` 29 | /// Contestants: Do not edit this. 30 | class ClockCustomizer extends StatefulWidget { 31 | const ClockCustomizer(this._clock); 32 | 33 | /// The clock widget with [ClockModel], to update and display. 34 | final ClockBuilder _clock; 35 | 36 | @override 37 | _ClockCustomizerState createState() => _ClockCustomizerState(); 38 | } 39 | 40 | class _ClockCustomizerState extends State { 41 | final _model = ClockModel(); 42 | ThemeMode _themeMode = ThemeMode.light; 43 | bool _configButtonShown = false; 44 | 45 | @override 46 | void initState() { 47 | super.initState(); 48 | _model.addListener(_handleModelChange); 49 | } 50 | 51 | @override 52 | void dispose() { 53 | _model.removeListener(_handleModelChange); 54 | _model.dispose(); 55 | super.dispose(); 56 | } 57 | 58 | void _handleModelChange() => setState(() {}); 59 | 60 | Widget _enumMenu( 61 | String label, T value, List items, ValueChanged onChanged) { 62 | return InputDecorator( 63 | decoration: InputDecoration( 64 | labelText: label, 65 | ), 66 | child: DropdownButtonHideUnderline( 67 | child: DropdownButton( 68 | value: value, 69 | isDense: true, 70 | onChanged: onChanged, 71 | items: items.map((T item) { 72 | return DropdownMenuItem( 73 | value: item, 74 | child: Text(enumToString(item)), 75 | ); 76 | }).toList(), 77 | ), 78 | ), 79 | ); 80 | } 81 | 82 | Widget _switch(String label, bool value, ValueChanged onChanged) { 83 | return Row( 84 | children: [ 85 | Expanded(child: Text(label)), 86 | Switch( 87 | value: value, 88 | onChanged: onChanged, 89 | ), 90 | ], 91 | ); 92 | } 93 | 94 | Widget _textField( 95 | String currentValue, String label, ValueChanged onChanged) { 96 | return TextField( 97 | decoration: InputDecoration( 98 | hintText: currentValue, 99 | helperText: label, 100 | ), 101 | onChanged: onChanged, 102 | ); 103 | } 104 | 105 | Widget _configDrawer(BuildContext context) { 106 | return SafeArea( 107 | child: Drawer( 108 | child: Padding( 109 | padding: const EdgeInsets.all(16.0), 110 | child: SingleChildScrollView( 111 | child: Column( 112 | children: [ 113 | _textField(_model.location, 'Location', (String location) { 114 | setState(() { 115 | _model.location = location; 116 | }); 117 | }), 118 | _textField(_model.temperature.toString(), 'Temperature', 119 | (String temperature) { 120 | setState(() { 121 | _model.temperature = double.parse(temperature); 122 | }); 123 | }), 124 | _enumMenu('Theme', _themeMode, 125 | ThemeMode.values.toList()..remove(ThemeMode.system), 126 | (ThemeMode mode) { 127 | setState(() { 128 | _themeMode = mode; 129 | }); 130 | }), 131 | _switch('24-hour format', _model.is24HourFormat, (bool value) { 132 | setState(() { 133 | _model.is24HourFormat = value; 134 | }); 135 | }), 136 | _enumMenu( 137 | 'Weather', _model.weatherCondition, WeatherCondition.values, 138 | (WeatherCondition condition) { 139 | setState(() { 140 | _model.weatherCondition = condition; 141 | }); 142 | }), 143 | _enumMenu('Units', _model.unit, TemperatureUnit.values, 144 | (TemperatureUnit unit) { 145 | setState(() { 146 | _model.unit = unit; 147 | }); 148 | }), 149 | ], 150 | ), 151 | ), 152 | ), 153 | ), 154 | ); 155 | } 156 | 157 | Widget _configButton() { 158 | return Builder( 159 | builder: (BuildContext context) { 160 | return IconButton( 161 | icon: Icon(Icons.settings), 162 | tooltip: 'Configure clock', 163 | onPressed: () { 164 | Scaffold.of(context).openEndDrawer(); 165 | setState(() { 166 | _configButtonShown = false; 167 | }); 168 | }, 169 | ); 170 | }, 171 | ); 172 | } 173 | 174 | @override 175 | Widget build(BuildContext context) { 176 | final clock = Center( 177 | child: AspectRatio( 178 | aspectRatio: 5 / 3, 179 | child: Container( 180 | decoration: BoxDecoration( 181 | border: Border.all( 182 | width: 2, 183 | color: Theme.of(context).unselectedWidgetColor, 184 | ), 185 | ), 186 | child: widget._clock(_model), 187 | ), 188 | ), 189 | ); 190 | 191 | return MaterialApp( 192 | theme: ThemeData.light(), 193 | darkTheme: ThemeData.dark(), 194 | themeMode: _themeMode, 195 | debugShowCheckedModeBanner: false, 196 | home: Scaffold( 197 | resizeToAvoidBottomPadding: false, 198 | endDrawer: _configDrawer(context), 199 | body: SafeArea( 200 | child: GestureDetector( 201 | behavior: HitTestBehavior.opaque, 202 | onTap: () { 203 | setState(() { 204 | _configButtonShown = !_configButtonShown; 205 | }); 206 | }, 207 | child: Stack( 208 | children: [ 209 | clock, 210 | if (_configButtonShown) 211 | Positioned( 212 | top: 0, 213 | right: 0, 214 | child: Opacity( 215 | opacity: 0.7, 216 | child: _configButton(), 217 | ), 218 | ), 219 | ], 220 | ), 221 | ), 222 | ), 223 | ), 224 | ); 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /flutter_clock_helper/lib/model.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'package:flutter/foundation.dart'; 6 | import 'package:flutter/material.dart'; 7 | 8 | /// This is the model that contains the customization options for the clock. 9 | /// 10 | /// It is a [ChangeNotifier], so use [ChangeNotifier.addListener] to listen to 11 | /// changes to the model. Be sure to call [ChangeNotifier.removeListener] in 12 | /// your `dispose` method. 13 | /// 14 | /// Contestants: Do not edit this. 15 | class ClockModel extends ChangeNotifier { 16 | get is24HourFormat => _is24HourFormat; 17 | bool _is24HourFormat = true; 18 | set is24HourFormat(bool is24HourFormat) { 19 | if (_is24HourFormat != is24HourFormat) { 20 | _is24HourFormat = is24HourFormat; 21 | notifyListeners(); 22 | } 23 | } 24 | 25 | /// Current location String, for example 'Mountain View, CA'. 26 | get location => _location; 27 | String _location = 'Mountain View, CA'; 28 | set location(String location) { 29 | if (location != _location) { 30 | _location = location; 31 | notifyListeners(); 32 | } 33 | } 34 | 35 | /// Current temperature string, for example '22°C'. 36 | get temperature => _convertFromCelsius(_temperature); 37 | // Stored in degrees celsius, and converted based on the current unit setting 38 | num _temperature = 22.0; 39 | set temperature(num temperature) { 40 | temperature = _convertToCelsius(temperature); 41 | if (temperature != _temperature) { 42 | _temperature = temperature; 43 | _low = _temperature - 3.0; 44 | _high = _temperature + 4.0; 45 | notifyListeners(); 46 | } 47 | } 48 | 49 | /// Daily high temperature, for example '26'. 50 | get high => _convertFromCelsius(_high); 51 | // Stored in degrees celsius, and converted based on the current unit setting 52 | num _high = 26.0; 53 | set high(num high) { 54 | high = _convertToCelsius(high); 55 | if (high != _high) { 56 | _high = high; 57 | notifyListeners(); 58 | } 59 | } 60 | 61 | /// Daily low temperature, for example '19'. 62 | get low => _convertFromCelsius(_low); 63 | num _low = 19.0; 64 | set low(num low) { 65 | low = _convertToCelsius(low); 66 | if (low != _low) { 67 | _low = low; 68 | notifyListeners(); 69 | } 70 | } 71 | 72 | /// Weather condition text for the current weather, for example 'cloudy'. 73 | WeatherCondition get weatherCondition => _weatherCondition; 74 | WeatherCondition _weatherCondition = WeatherCondition.sunny; 75 | set weatherCondition(WeatherCondition weatherCondition) { 76 | if (weatherCondition != _weatherCondition) { 77 | _weatherCondition = weatherCondition; 78 | notifyListeners(); 79 | } 80 | } 81 | 82 | /// [WeatherCondition] value without the enum type. 83 | String get weatherString => enumToString(weatherCondition); 84 | 85 | /// Temperature unit, for example 'celsius'. 86 | TemperatureUnit get unit => _unit; 87 | TemperatureUnit _unit = TemperatureUnit.celsius; 88 | set unit(TemperatureUnit unit) { 89 | if (unit != _unit) { 90 | _unit = unit; 91 | notifyListeners(); 92 | } 93 | } 94 | 95 | /// Temperature with unit of measurement. 96 | String get temperatureString { 97 | return '${temperature.toStringAsFixed(1)}$unitString'; 98 | } 99 | 100 | /// Temperature high with unit of measurement. 101 | String get highString { 102 | return '${high.toStringAsFixed(1)}$unitString'; 103 | } 104 | 105 | /// Temperature low with unit of measurement. 106 | String get lowString { 107 | return '${low.toStringAsFixed(1)}$unitString'; 108 | } 109 | 110 | /// Temperature unit of measurement with degrees. 111 | String get unitString { 112 | switch (unit) { 113 | case TemperatureUnit.fahrenheit: 114 | return '°F'; 115 | case TemperatureUnit.celsius: 116 | default: 117 | return '°C'; 118 | } 119 | } 120 | 121 | num _convertFromCelsius(num degreesCelsius) { 122 | switch (unit) { 123 | case TemperatureUnit.fahrenheit: 124 | return 32.0 + degreesCelsius * 9.0 / 5.0; 125 | case TemperatureUnit.celsius: 126 | default: 127 | return degreesCelsius; 128 | break; 129 | } 130 | } 131 | 132 | num _convertToCelsius(num degrees) { 133 | switch (unit) { 134 | case TemperatureUnit.fahrenheit: 135 | return (degrees - 32.0) * 5.0 / 9.0; 136 | case TemperatureUnit.celsius: 137 | default: 138 | return degrees; 139 | break; 140 | } 141 | } 142 | } 143 | 144 | /// Weather condition in English. 145 | enum WeatherCondition { 146 | cloudy, 147 | foggy, 148 | rainy, 149 | snowy, 150 | sunny, 151 | thunderstorm, 152 | windy, 153 | } 154 | 155 | /// Temperature unit of measurement. 156 | enum TemperatureUnit { 157 | celsius, 158 | fahrenheit, 159 | } 160 | 161 | /// Removes the enum type and returns the value as a String. 162 | String enumToString(Object e) => e.toString().split('.').last; 163 | -------------------------------------------------------------------------------- /flutter_clock_helper/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: flutter_clock_helper 2 | description: Helper classes for Flutter Clock contest. 3 | 4 | version: 1.0.0+1 5 | 6 | environment: 7 | sdk: ">=2.2.2 <3.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | intl: "^0.16.0" 13 | 14 | cupertino_icons: ^0.1.2 15 | 16 | dev_dependencies: 17 | flutter_test: 18 | sdk: flutter 19 | 20 | flutter: 21 | uses-material-design: true 22 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/screenshot.png -------------------------------------------------------------------------------- /tetris_clock/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Exceptions to above rules. 36 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 37 | -------------------------------------------------------------------------------- /tetris_clock/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: ade8dfac3dfb4d2ea04b45ff589fd073d8fc4274 8 | channel: master 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /tetris_clock/README.md: -------------------------------------------------------------------------------- 1 | # Tetris Time 2 | 3 | This app is my contribution to the flutter clock challenge based on the digital clock example. 4 | It has a light theme and a dark theme and uses weather-data to show the conditions. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Made with <3 in Herne by Michael Jentsch with support by Merlin Jentsch and Klaudia Jentsch -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number0.json: -------------------------------------------------------------------------------- 1 | [ 2 | [4,3,6,5,2,2,6,7,3,4,5,2], 3 | [ 4 | [ 5 | [0, -4, 1, 1], 6 | [0, -3, 1, 1], 7 | [0, -2, 1, 1], 8 | [0, -1, 1, 1], 9 | [0, 0, 1, 1], 10 | [0, 1, 1, 1], 11 | [0, 2, 1, 1], 12 | [0, 3, 1, 1], 13 | [0, 4, 1, 1], 14 | [0, 5, 1, 1], 15 | [0, 6, 1, 1], 16 | [0, 7, 1, 1], 17 | [0, 8, 1, 1], 18 | [0, 9, 0, 1], 19 | [0, 10, 0, 1], 20 | [0, 11, 0, 1], 21 | [0, 12, 0, 1], 22 | [0, 13, 0, 1], 23 | [0, 14, 0, 1], 24 | [0, 15, 0, 1], 25 | [0, 16, 0, 1], 26 | [0, 17, 0, 1], 27 | [0, 17, 0, 1], 28 | [0, 17, 0, 1], 29 | [0, 17, 0, 1], 30 | [0, 17, 0, 1], 31 | [0, 17, 0, 1], 32 | [0, 17, 0, 1], 33 | [0, 17, 0, 1], 34 | [0, 17, 0, 1], 35 | [0, 17, 0, 1], 36 | [0, 17, 0, 1], 37 | [0, 17, 0, 1], 38 | [0, 17, 0, 1], 39 | [0, 17, 0, 1], 40 | [0, 17, 0, 1], 41 | [0, 17, 0, 1], 42 | [0, 17, 0, 1], 43 | [0, 17, 0, 1], 44 | [0, 17, 0, 1], 45 | [0, 17, 0, 1], 46 | [0, 17, 0, 1], 47 | [0, 17, 0, 1], 48 | [0, 17, 0, 1], 49 | [0, 17, 0, 1], 50 | [0, 17, 0, 1], 51 | [0, 17, 0, 1], 52 | [0, 17, 0, 1] 53 | ],[ 54 | [0, 0, 0, 0], 55 | [0, 0, 0, 0], 56 | [0, 0, 0, 0], 57 | [0, 0, 0, 0], 58 | [1, -3, 0, 7], 59 | [1, -2, 0, 7], 60 | [1, -1, 0, 7], 61 | [1, 0, 0, 7], 62 | [1, 1, 0, 7], 63 | [1, 2, 0, 7], 64 | [1, 3, 0, 7], 65 | [1, 4, 0, 7], 66 | [1, 5, 0, 7], 67 | [1, 6, 0, 7], 68 | [1, 7, 0, 7], 69 | [1, 8, 0, 7], 70 | [1, 9, 0, 7], 71 | [1, 10, 0, 7], 72 | [2, 11, 0, 7], 73 | [2, 12, 0, 7], 74 | [2, 13, 0, 7], 75 | [2, 14, 0, 7], 76 | [2, 15, 0, 7], 77 | [2, 16, 0, 7], 78 | [2, 17, 0, 7], 79 | [2, 17, 0, 7], 80 | [2, 17, 0, 7], 81 | [2, 17, 0, 7], 82 | [2, 17, 0, 7], 83 | [2, 17, 0, 7], 84 | [2, 17, 0, 7], 85 | [2, 17, 0, 7], 86 | [2, 17, 0, 7], 87 | [2, 17, 0, 7], 88 | [2, 17, 0, 7], 89 | [2, 17, 0, 7], 90 | [2, 17, 0, 7], 91 | [2, 17, 0, 7], 92 | [2, 17, 0, 7], 93 | [2, 17, 0, 7], 94 | [2, 17, 0, 7], 95 | [2, 17, 0, 7], 96 | [2, 17, 0, 7], 97 | [2, 17, 0, 7], 98 | [2, 17, 0, 7], 99 | [2, 17, 0, 7], 100 | [2, 17, 0, 7], 101 | [2, 17, 0, 7] 102 | ],[ 103 | [0, 0, 0, 0], 104 | [0, 0, 0, 0], 105 | [0, 0, 0, 0], 106 | [0, 0, 0, 0], 107 | [0, 0, 0, 0], 108 | [0, 0, 0, 0], 109 | [0, 0, 0, 0], 110 | [0, 0, 0, 0], 111 | [0, -3, 0, 5], 112 | [0, -2, 0, 5], 113 | [0, -1, 0, 5], 114 | [0, 0, 0, 5], 115 | [0, 1, 0, 5], 116 | [0, 2, 0, 5], 117 | [-1, 3, 0, 5], 118 | [-1, 4, 0, 5], 119 | [-1, 5, 0, 5], 120 | [-1, 6, 0, 5], 121 | [-1, 7, 0, 5], 122 | [-1, 8, 0, 5], 123 | [-1, 9, 0, 5], 124 | [-1, 10, 0, 5], 125 | [-1, 11, 0, 5], 126 | [-1, 12, 0, 5], 127 | [-1, 13, 0, 5], 128 | [-1, 14, 0, 5], 129 | [-1, 15, 0, 5], 130 | [-1, 16, 0, 5], 131 | [-1, 16, 0, 5], 132 | [-1, 16, 0, 5], 133 | [-1, 16, 0, 5], 134 | [-1, 16, 0, 5], 135 | [-1, 16, 0, 5], 136 | [-1, 16, 0, 5], 137 | [-1, 16, 0, 5], 138 | [-1, 16, 0, 5], 139 | [-1, 16, 0, 5], 140 | [-1, 16, 0, 5], 141 | [-1, 16, 0, 5], 142 | [-1, 16, 0, 5], 143 | [-1, 16, 0, 5], 144 | [-1, 16, 0, 5], 145 | [-1, 16, 0, 5], 146 | [-1, 16, 0, 5], 147 | [-1, 16, 0, 5], 148 | [-1, 16, 0, 5], 149 | [-1, 16, 0, 5], 150 | [-1, 16, 0, 5] 151 | ],[ 152 | [0, 0, 0, 0], 153 | [0, 0, 0, 0], 154 | [0, 0, 0, 0], 155 | [0, 0, 0, 0], 156 | [0, 0, 0, 0], 157 | [0, 0, 0, 0], 158 | [0, 0, 0, 0], 159 | [0, 0, 0, 0], 160 | [0, 0, 0, 0], 161 | [0, 0, 0, 0], 162 | [2, -3, 3, 5], 163 | [2, -2, 3, 5], 164 | [2, -1, 3, 5], 165 | [2, 0, 3, 5], 166 | [2, 1, 3, 5], 167 | [2, 2, 3, 5], 168 | [2, 3, 3, 5], 169 | [2, 4, 3, 5], 170 | [2, 5, 3, 5], 171 | [2, 6, 3, 5], 172 | [2, 7, 3, 5], 173 | [2, 8, 3, 5], 174 | [2, 9, 3, 5], 175 | [2, 10, 3, 5], 176 | [2, 11, 3, 5], 177 | [3, 12, 3, 5], 178 | [3, 13, 3, 5], 179 | [3, 14, 3, 5], 180 | [3, 15, 3, 5], 181 | [3, 16, 3, 5], 182 | [3, 16, 3, 5], 183 | [3, 16, 3, 5], 184 | [3, 16, 3, 5], 185 | [3, 16, 3, 5], 186 | [3, 16, 3, 5], 187 | [3, 16, 3, 5], 188 | [3, 16, 3, 5], 189 | [3, 16, 3, 5], 190 | [3, 16, 3, 5], 191 | [3, 16, 3, 5], 192 | [3, 16, 3, 5], 193 | [3, 16, 3, 5], 194 | [3, 16, 3, 5], 195 | [3, 16, 3, 5], 196 | [3, 16, 3, 5], 197 | [3, 16, 3, 5], 198 | [3, 16, 3, 5], 199 | [3, 16, 3, 5] 200 | ],[ 201 | [0, 0, 0, 0], 202 | [0, 0, 0, 0], 203 | [0, 0, 0, 0], 204 | [0, 0, 0, 0], 205 | [0, 0, 0, 0], 206 | [0, 0, 0, 0], 207 | [0, 0, 0, 0], 208 | [0, 0, 0, 0], 209 | [0, 0, 0, 0], 210 | [0, 0, 0, 0], 211 | [0, 0, 0, 0], 212 | [0, 0, 0, 0], 213 | [0, 0, 0, 0], 214 | [-1, -3, 1, 5], 215 | [-1, -2, 1, 5], 216 | [-1, -1, 1, 5], 217 | [-1, 0, 1, 5], 218 | [-1, 1, 1, 5], 219 | [-1, 2, 1, 5], 220 | [-1, 3, 1, 5], 221 | [-1, 4, 1, 5], 222 | [-1, 5, 1, 5], 223 | [-1, 6, 1, 5], 224 | [-1, 7, 1, 5], 225 | [-2, 8, 1, 5], 226 | [-2, 9, 1, 5], 227 | [-2, 10, 1, 5], 228 | [-2, 11, 1, 5], 229 | [-2, 12, 1, 5], 230 | [-2, 13, 1, 5], 231 | [-2, 14, 1, 5], 232 | [-2, 15, 1, 5], 233 | [-2, 15, 1, 5], 234 | [-2, 15, 1, 5], 235 | [-2, 15, 1, 5], 236 | [-2, 15, 1, 5], 237 | [-2, 15, 1, 5], 238 | [-2, 15, 1, 5], 239 | [-2, 15, 1, 5], 240 | [-2, 15, 1, 5], 241 | [-2, 15, 1, 5], 242 | [-2, 15, 1, 5], 243 | [-2, 15, 1, 5], 244 | [-2, 15, 1, 5], 245 | [-2, 15, 1, 5], 246 | [-2, 15, 1, 5], 247 | [-2, 15, 1, 5], 248 | [-2, 15, 1, 5] 249 | ],[ 250 | [0, 0, 0, 0], 251 | [0, 0, 0, 0], 252 | [0, 0, 0, 0], 253 | [0, 0, 0, 0], 254 | [0, 0, 0, 0], 255 | [0, 0, 0, 0], 256 | [0, 0, 0, 0], 257 | [0, 0, 0, 0], 258 | [0, 0, 0, 0], 259 | [0, 0, 0, 0], 260 | [0, 0, 0, 0], 261 | [0, 0, 0, 0], 262 | [0, 0, 0, 0], 263 | [0, 0, 0, 0], 264 | [0, 0, 0, 0], 265 | [0, 0, 0, 0], 266 | [1, -3, 1, 5], 267 | [1, -2, 1, 5], 268 | [1, -1, 1, 5], 269 | [1, 0, 1, 5], 270 | [1, 1, 1, 5], 271 | [1, 2, 1, 5], 272 | [1, 3, 1, 5], 273 | [1, 4, 1, 5], 274 | [1, 5, 1, 5], 275 | [1, 6, 0, 5], 276 | [1, 7, 0, 5], 277 | [1, 8, 0, 5], 278 | [1, 9, 0, 5], 279 | [1, 10, 0, 5], 280 | [1, 11, 1, 5], 281 | [2, 12, 1, 5], 282 | [2, 13, 1, 5], 283 | [2, 14, 1, 5], 284 | [2, 14, 1, 5], 285 | [2, 14, 1, 5], 286 | [2, 14, 1, 5], 287 | [2, 14, 1, 5], 288 | [2, 14, 1, 5], 289 | [2, 14, 1, 5], 290 | [2, 14, 1, 5], 291 | [2, 14, 1, 5], 292 | [2, 14, 1, 5], 293 | [2, 14, 1, 5], 294 | [2, 14, 1, 5], 295 | [2, 14, 1, 5], 296 | [2, 14, 1, 5], 297 | [2, 14, 1, 5] 298 | ],[ 299 | [0, 0, 0, 0], 300 | [0, 0, 0, 0], 301 | [0, 0, 0, 0], 302 | [0, 0, 0, 0], 303 | [0, 0, 0, 0], 304 | [0, 0, 0, 0], 305 | [0, 0, 0, 0], 306 | [0, 0, 0, 0], 307 | [0, 0, 0, 0], 308 | [0, 0, 0, 0], 309 | [0, 0, 0, 0], 310 | [0, 0, 0, 0], 311 | [0, 0, 0, 0], 312 | [0, 0, 0, 0], 313 | [0, 0, 0, 0], 314 | [0, 0, 0, 0], 315 | [0, 0, 0, 0], 316 | [0, 0, 0, 0], 317 | [0, 0, 0, 0], 318 | [0, 0, 0, 0], 319 | [0, -3, 1, 6], 320 | [0, -2, 1, 6], 321 | [0, -1, 1, 6], 322 | [1, 0, 1, 6], 323 | [1, 1, 1, 6], 324 | [1, 2, 1, 6], 325 | [1, 3, 1, 6], 326 | [1, 4, 1, 6], 327 | [1, 5, 1, 6], 328 | [1, 6, 1, 6], 329 | [0, 7, 1, 6], 330 | [0, 8, 1, 6], 331 | [0, 9, 1, 6], 332 | [-1, 10, 1, 6], 333 | [-1, 11, 1, 6], 334 | [-1, 12, 1, 6], 335 | [-1, 13, 1, 6], 336 | [-1, 13, 1, 6], 337 | [-1, 13, 1, 6], 338 | [-1, 13, 1, 6], 339 | [-1, 13, 1, 6], 340 | [-1, 13, 1, 6], 341 | [-1, 13, 1, 6], 342 | [-1, 13, 1, 6], 343 | [-1, 13, 1, 6], 344 | [-1, 13, 1, 6], 345 | [-1, 13, 1, 6], 346 | [-1, 13, 1, 6] 347 | ],[ 348 | [0, 0, 0, 0], 349 | [0, 0, 0, 0], 350 | [0, 0, 0, 0], 351 | [0, 0, 0, 0], 352 | [0, 0, 0, 0], 353 | [0, 0, 0, 0], 354 | [0, 0, 0, 0], 355 | [0, 0, 0, 0], 356 | [0, 0, 0, 0], 357 | [0, 0, 0, 0], 358 | [0, 0, 0, 0], 359 | [0, 0, 0, 0], 360 | [0, 0, 0, 0], 361 | [0, 0, 0, 0], 362 | [0, 0, 0, 0], 363 | [0, 0, 0, 0], 364 | [0, 0, 0, 0], 365 | [0, 0, 0, 0], 366 | [0, 0, 0, 0], 367 | [0, 0, 0, 0], 368 | [0, 0, 0, 0], 369 | [0, 0, 0, 0], 370 | [0, 0, 0, 0], 371 | [3, -3, 1, 6], 372 | [3, -2, 1, 6], 373 | [3, -1, 1, 6], 374 | [3, 0, 1, 6], 375 | [3, 1, 1, 6], 376 | [3, 2, 1, 6], 377 | [3, 3, 1, 6], 378 | [3, 4, 1, 6], 379 | [3, 5, 1, 6], 380 | [3, 6, 1, 6], 381 | [3, 7, 1, 6], 382 | [3, 8, 1, 6], 383 | [3, 9, 1, 6], 384 | [3, 10, 1, 6], 385 | [3, 11, 1, 6], 386 | [3, 12, 1, 6], 387 | [3, 12, 1, 6], 388 | [3, 12, 1, 6], 389 | [3, 12, 1, 6], 390 | [3, 12, 1, 6], 391 | [3, 12, 1, 6], 392 | [3, 12, 1, 6], 393 | [3, 12, 1, 6], 394 | [3, 12, 1, 6], 395 | [3, 12, 1, 6] 396 | ],[ 397 | [0, 0, 0, 0], 398 | [0, 0, 0, 0], 399 | [0, 0, 0, 0], 400 | [0, 0, 0, 0], 401 | [0, 0, 0, 0], 402 | [0, 0, 0, 0], 403 | [0, 0, 0, 0], 404 | [0, 0, 0, 0], 405 | [0, 0, 0, 0], 406 | [0, 0, 0, 0], 407 | [0, 0, 0, 0], 408 | [0, 0, 0, 0], 409 | [0, 0, 0, 0], 410 | [0, 0, 0, 0], 411 | [0, 0, 0, 0], 412 | [0, 0, 0, 0], 413 | [0, 0, 0, 0], 414 | [0, 0, 0, 0], 415 | [0, 0, 0, 0], 416 | [0, 0, 0, 0], 417 | [0, 0, 0, 0], 418 | [0, 0, 0, 0], 419 | [0, 0, 0, 0], 420 | [0, 0, 0, 0], 421 | [0, 0, 0, 0], 422 | [0, -3, 1, 6], 423 | [0, -2, 1, 6], 424 | [0, -1, 1, 6], 425 | [0, 0, 1, 6], 426 | [0, 1, 1, 6], 427 | [0, 2, 1, 6], 428 | [0, 3, 1, 6], 429 | [0, 4, 1, 6], 430 | [0, 5, 1, 6], 431 | [0, 6, 1, 6], 432 | [0, 7, 1, 6], 433 | [0, 8, 1, 6], 434 | [-1, 9, 1, 6], 435 | [-1, 10, 1, 6], 436 | [-1, 11, 1, 6], 437 | [-1, 11, 1, 6], 438 | [-1, 11, 1, 6], 439 | [-1, 11, 1, 6], 440 | [-1, 11, 1, 6], 441 | [-1, 11, 1, 6], 442 | [-1, 11, 1, 6], 443 | [-1, 11, 1, 6], 444 | [-1, 11, 1, 6] 445 | ],[ 446 | [0, 0, 0, 0], 447 | [0, 0, 0, 0], 448 | [0, 0, 0, 0], 449 | [0, 0, 0, 0], 450 | [0, 0, 0, 0], 451 | [0, 0, 0, 0], 452 | [0, 0, 0, 0], 453 | [0, 0, 0, 0], 454 | [0, 0, 0, 0], 455 | [0, 0, 0, 0], 456 | [0, 0, 0, 0], 457 | [0, 0, 0, 0], 458 | [0, 0, 0, 0], 459 | [0, 0, 0, 0], 460 | [0, 0, 0, 0], 461 | [0, 0, 0, 0], 462 | [0, 0, 0, 0], 463 | [0, 0, 0, 0], 464 | [0, 0, 0, 0], 465 | [0, 0, 0, 0], 466 | [0, 0, 0, 0], 467 | [0, 0, 0, 0], 468 | [0, 0, 0, 0], 469 | [0, 0, 0, 0], 470 | [0, 0, 0, 0], 471 | [0, 0, 0, 0], 472 | [0, 0, 0, 0], 473 | [0, 0, 0, 0], 474 | [2, -3, 0, 2], 475 | [2, -2, 0, 2], 476 | [2, -1, 0, 2], 477 | [2, 0, 0, 2], 478 | [2, 1, 0, 2], 479 | [2, 2, 0, 2], 480 | [2, 3, 1, 2], 481 | [2, 4, 1, 2], 482 | [2, 5, 2, 2], 483 | [2, 6, 2, 2], 484 | [2, 7, 3, 2], 485 | [2, 8, 3, 2], 486 | [2, 9, 3, 2], 487 | [2, 10, 3, 2], 488 | [2, 10, 3, 2], 489 | [2, 10, 3, 2], 490 | [2, 10, 3, 2], 491 | [2, 10, 3, 2], 492 | [2, 10, 3, 2], 493 | [2, 10, 3, 2] 494 | ],[ 495 | [0, 0, 0, 0], 496 | [0, 0, 0, 0], 497 | [0, 0, 0, 0], 498 | [0, 0, 0, 0], 499 | [0, 0, 0, 0], 500 | [0, 0, 0, 0], 501 | [0, 0, 0, 0], 502 | [0, 0, 0, 0], 503 | [0, 0, 0, 0], 504 | [0, 0, 0, 0], 505 | [0, 0, 0, 0], 506 | [0, 0, 0, 0], 507 | [0, 0, 0, 0], 508 | [0, 0, 0, 0], 509 | [0, 0, 0, 0], 510 | [0, 0, 0, 0], 511 | [0, 0, 0, 0], 512 | [0, 0, 0, 0], 513 | [0, 0, 0, 0], 514 | [0, 0, 0, 0], 515 | [0, 0, 0, 0], 516 | [0, 0, 0, 0], 517 | [0, 0, 0, 0], 518 | [0, 0, 0, 0], 519 | [0, 0, 0, 0], 520 | [0, 0, 0, 0], 521 | [0, 0, 0, 0], 522 | [0, 0, 0, 0], 523 | [0, 0, 0, 0], 524 | [0, 0, 0, 0], 525 | [0, 0, 0, 0], 526 | [0, 0, 0, 0], 527 | [0, -3, 0, 7], 528 | [0, -2, 0, 7], 529 | [0, -1, 0, 7], 530 | [0, 0, 0, 7], 531 | [0, 1, 0, 7], 532 | [0, 2, 0, 7], 533 | [0, 3, 0, 7], 534 | [-1, 4, 0, 7], 535 | [-1, 5, 0, 7], 536 | [-1, 6, 0, 7], 537 | [-1, 7, 0, 7], 538 | [-1, 8, 0, 7], 539 | [-1, 9, 0, 7], 540 | [-1, 9, 0, 7], 541 | [-1, 9, 0, 7], 542 | [-1, 9, 0, 7] 543 | ],[ 544 | [0, 0, 0, 0], 545 | [0, 0, 0, 0], 546 | [0, 0, 0, 0], 547 | [0, 0, 0, 0], 548 | [0, 0, 0, 0], 549 | [0, 0, 0, 0], 550 | [0, 0, 0, 0], 551 | [0, 0, 0, 0], 552 | [0, 0, 0, 0], 553 | [0, 0, 0, 0], 554 | [0, 0, 0, 0], 555 | [0, 0, 0, 0], 556 | [0, 0, 0, 0], 557 | [0, 0, 0, 0], 558 | [0, 0, 0, 0], 559 | [0, 0, 0, 0], 560 | [0, 0, 0, 0], 561 | [0, 0, 0, 0], 562 | [0, 0, 0, 0], 563 | [0, 0, 0, 0], 564 | [0, 0, 0, 0], 565 | [0, 0, 0, 0], 566 | [0, 0, 0, 0], 567 | [0, 0, 0, 0], 568 | [0, 0, 0, 0], 569 | [0, 0, 0, 0], 570 | [0, 0, 0, 0], 571 | [0, 0, 0, 0], 572 | [0, 0, 0, 0], 573 | [0, 0, 0, 0], 574 | [0, 0, 0, 0], 575 | [0, 0, 0, 0], 576 | [0, 0, 0, 0], 577 | [0, 0, 0, 0], 578 | [0, 0, 0, 0], 579 | [3, -4, 1, 1], 580 | [3, -3, 1, 1], 581 | [3, -2, 1, 1], 582 | [3, -1, 1, 1], 583 | [3, 0, 1, 1], 584 | [3, 1, 1, 1], 585 | [3, 2, 0, 1], 586 | [2, 3, 0, 1], 587 | [2, 4, 0, 1], 588 | [2, 5, 0, 1], 589 | [2, 6, 0, 1], 590 | [2, 7, 0, 1], 591 | [2, 8, 0, 1] 592 | ] 593 | ] 594 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number1.json: -------------------------------------------------------------------------------- 1 | [ 2 | [2,5,4,3,6], 3 | [ 4 | [ 5 | [1, -3, 0, 4], 6 | [1, -2, 0, 4], 7 | [1, -1, 0, 4], 8 | [1, 0, 0, 4], 9 | [1, 1, 0, 4], 10 | [1, 2, 0, 4], 11 | [1, 3, 0, 4], 12 | [1, 4, 0, 4], 13 | [1, 5, 0, 4], 14 | [1, 6, 0, 4], 15 | [2, 7, 0, 4], 16 | [2, 8, 0, 4], 17 | [2, 9, 0, 4], 18 | [2, 10, 0, 4], 19 | [2, 11, 0, 4], 20 | [2, 12, 0, 4], 21 | [2, 13, 0, 4], 22 | [2, 14, 0, 4], 23 | [2, 15, 0, 4], 24 | [3, 16, 0, 4], 25 | [3, 17, 0, 4], 26 | [3, 17, 0, 4], 27 | [3, 17, 0, 4], 28 | [3, 17, 0, 4], 29 | [3, 17, 0, 4], 30 | [3, 17, 0, 4], 31 | [3, 17, 0, 4], 32 | [3, 17, 0, 4], 33 | [3, 17, 0, 4], 34 | [3, 17, 0, 4] 35 | ], [ 36 | [0, 0, 0, 0], 37 | [0, 0, 0, 0], 38 | [0, 0, 0, 0], 39 | [1, -4, 1, 3], 40 | [1, -3, 1, 3], 41 | [1, -2, 1, 3], 42 | [1, -1, 1, 3], 43 | [1, 0, 1, 3], 44 | [1, 1, 1, 3], 45 | [1, 2, 1, 3], 46 | [1, 3, 1, 3], 47 | [1, 4, 1, 3], 48 | [1, 5, 1, 3], 49 | [1, 6, 1, 3], 50 | [1, 7, 1, 3], 51 | [1, 8, 1, 3], 52 | [1, 9, 1, 3], 53 | [1, 10, 1, 3], 54 | [1, 11, 1, 3], 55 | [1, 12, 1, 3], 56 | [1, 13, 0, 3], 57 | [2, 14, 0, 3], 58 | [3, 15, 0, 3], 59 | [3, 15, 0, 3], 60 | [3, 15, 0, 3], 61 | [3, 15, 0, 3], 62 | [3, 15, 0, 3], 63 | [3, 15, 0, 3], 64 | [3, 15, 0, 3], 65 | [3, 15, 0, 3] 66 | ],[ 67 | [0, 0, 0, 0], 68 | [0, 0, 0, 0], 69 | [0, 0, 0, 0], 70 | [0, 0, 0, 0], 71 | [0, 0, 0, 0], 72 | [0, 0, 0, 0], 73 | [0, 0, 0, 0], 74 | [0, 0, 0, 0], 75 | [1, -3, 0, 1], 76 | [1, -2, 0, 1], 77 | [1, -1, 0, 1], 78 | [1, 0, 0, 1], 79 | [1, 1, 0, 1], 80 | [1, 2, 0, 1], 81 | [1, 3, 0, 1], 82 | [1, 4, 0, 1], 83 | [1, 5, 0, 1], 84 | [1, 6, 0, 1], 85 | [2, 7, 0, 1], 86 | [2, 8, 1, 1], 87 | [3, 9, 1, 1], 88 | [4, 10, 1, 1], 89 | [4, 11, 1, 1], 90 | [4, 12, 1, 1], 91 | [4, 13, 1, 1], 92 | [4, 13, 1, 1], 93 | [4, 13, 1, 1], 94 | [4, 13, 1, 1], 95 | [4, 13, 1, 1], 96 | [4, 13, 1, 1] 97 | ],[ 98 | [0, 0, 0, 0], 99 | [0, 0, 0, 0], 100 | [0, 0, 0, 0], 101 | [0, 0, 0, 0], 102 | [0, 0, 0, 0], 103 | [0, 0, 0, 0], 104 | [0, 0, 0, 0], 105 | [0, 0, 0, 0], 106 | [0, 0, 0, 0], 107 | [0, 0, 0, 0], 108 | [0, 0, 0, 0], 109 | [0, 0, 0, 0], 110 | [0, 0, 0, 0], 111 | [1, -3, 1, 2], 112 | [1, -2, 1, 2], 113 | [1, -1, 1, 2], 114 | [1, 0, 1, 2], 115 | [1, 1, 1, 2], 116 | [1, 2, 1, 2], 117 | [1, 3, 1, 2], 118 | [1, 4, 1, 2], 119 | [1, 5, 1, 2], 120 | [2, 6, 1, 2], 121 | [2, 7, 1, 2], 122 | [3, 8, 2, 2], 123 | [3, 9, 2, 2], 124 | [3, 10, 2, 2], 125 | [3, 11, 2, 2], 126 | [3, 12, 2, 2], 127 | [3, 12, 2, 2] 128 | ], [ 129 | [0, 0, 0, 0], 130 | [0, 0, 0, 0], 131 | [0, 0, 0, 0], 132 | [0, 0, 0, 0], 133 | [0, 0, 0, 0], 134 | [0, 0, 0, 0], 135 | [0, 0, 0, 0], 136 | [0, 0, 0, 0], 137 | [0, 0, 0, 0], 138 | [0, 0, 0, 0], 139 | [0, 0, 0, 0], 140 | [0, 0, 0, 0], 141 | [0, 0, 0, 0], 142 | [0, 0, 0, 0], 143 | [0, 0, 0, 0], 144 | [0, 0, 0, 0], 145 | [1, -3, 0, 4], 146 | [1, -3, 0, 4], 147 | [1, -2, 0, 4], 148 | [1, -1, 0, 4], 149 | [1, 0, 0, 4], 150 | [1, 1, 0, 4], 151 | [2, 2, 0, 4], 152 | [2, 3, 0, 4], 153 | [2, 4, 0, 4], 154 | [3, 5, 0, 4], 155 | [3, 6, 0, 4], 156 | [3, 7, 0, 4], 157 | [3, 8, 0, 4], 158 | [3, 9, 0, 4] 159 | ] 160 | ] 161 | ] 162 | -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number2.json: -------------------------------------------------------------------------------- 1 | [ 2 | [2,5,7,4,6,2,3,4,5,7,3], 3 | [ 4 | [ 5 | [0, -3, 1, 2], 6 | [0, -2, 1, 2], 7 | [0, -1, 1, 2], 8 | [0, 0, 1, 2], 9 | [0, 1, 1, 2], 10 | [0, 2, 1, 2], 11 | [0, 3, 1, 2], 12 | [0, 4, 1, 2], 13 | [0, 5, 1, 2], 14 | [0, 6, 1, 2], 15 | [0, 7, 1, 2], 16 | [0, 8, 1, 2], 17 | [0, 9, 1, 2], 18 | [0, 10, 1, 2], 19 | [0, 11, 1, 2], 20 | [0, 12, 1, 2], 21 | [0, 13, 1, 2], 22 | [0, 14, 1, 2], 23 | [0, 15, 1, 2], 24 | [0, 16, 1, 2], 25 | [-1, 17, 1, 2], 26 | [-1, 17, 1, 2], 27 | [-1, 17, 1, 2], 28 | [-1, 17, 1, 2], 29 | [-1, 17, 1, 2], 30 | [-1, 17, 1, 2], 31 | [-1, 17, 1, 2], 32 | [-1, 17, 1, 2], 33 | [-1, 17, 1, 2], 34 | [-1, 17, 1, 2], 35 | [-1, 17, 1, 2], 36 | [-1, 17, 1, 2], 37 | [-1, 17, 1, 2], 38 | [-1, 17, 1, 2], 39 | [-1, 17, 1, 2], 40 | [-1, 17, 1, 2], 41 | [-1, 17, 1, 2], 42 | [-1, 17, 1, 2], 43 | [-1, 17, 1, 2], 44 | [-1, 17, 1, 2], 45 | [-1, 17, 1, 2], 46 | [-1, 17, 1, 2], 47 | [-1, 17, 1, 2], 48 | [-1, 17, 1, 2], 49 | [-1, 17, 1, 2], 50 | [-1, 17, 1, 2], 51 | [-1, 17, 1, 2], 52 | [-1, 17, 1, 2], 53 | [-1, 17, 1, 2], 54 | [-1, 17, 1, 2], 55 | [-1, 17, 1, 2] 56 | ],[ 57 | [0, 0, 0, 0], 58 | [0, 0, 0, 0], 59 | [0, 0, 0, 0], 60 | [2, -3, 3, 3], 61 | [2, -2, 3, 3], 62 | [2, -1, 3, 3], 63 | [2, 0, 3, 3], 64 | [2, 1, 3, 3], 65 | [2, 2, 3, 3], 66 | [2, 3, 3, 3], 67 | [2, 4, 3, 3], 68 | [2, 5, 3, 3], 69 | [2, 6, 3, 3], 70 | [2, 7, 3, 3], 71 | [2, 8, 3, 3], 72 | [2, 9, 3, 3], 73 | [2, 10, 3, 3], 74 | [2, 11, 3, 3], 75 | [2, 12, 3, 3], 76 | [2, 13, 3, 3], 77 | [2, 14, 3, 3], 78 | [2, 15, 3, 3], 79 | [2, 16, 3, 3], 80 | [2, 17, 3, 3], 81 | [2, 17, 3, 3], 82 | [2, 17, 3, 3], 83 | [2, 17, 3, 3], 84 | [2, 17, 3, 3], 85 | [2, 17, 3, 3], 86 | [2, 17, 3, 3], 87 | [2, 17, 3, 3], 88 | [2, 17, 3, 3], 89 | [2, 17, 3, 3], 90 | [2, 17, 3, 3], 91 | [2, 17, 3, 3], 92 | [2, 17, 3, 3], 93 | [2, 17, 3, 3], 94 | [2, 17, 3, 3], 95 | [2, 17, 3, 3], 96 | [2, 17, 3, 3], 97 | [2, 17, 3, 3], 98 | [2, 17, 3, 3], 99 | [2, 17, 3, 3], 100 | [2, 17, 3, 3], 101 | [2, 17, 3, 3], 102 | [2, 17, 3, 3], 103 | [2, 17, 3, 3], 104 | [2, 17, 3, 3], 105 | [2, 17, 3, 3], 106 | [2, 17, 3, 3], 107 | [2, 17, 3, 3] 108 | ],[ 109 | [0, 0, 0, 0], 110 | [0, 0, 0, 0], 111 | [0, 0, 0, 0], 112 | [0, 0, 0, 0], 113 | [0, 0, 0, 0], 114 | [0, 0, 0, 0], 115 | [0, 0, 0, 0], 116 | [1, -3, 0, 1], 117 | [1, -2, 0, 1], 118 | [1, -1, 0, 1], 119 | [1, 0, 0, 1], 120 | [1, 1, 0, 1], 121 | [1, 2, 0, 1], 122 | [1, 3, 0, 1], 123 | [1, 4, 0, 1], 124 | [1, 5, 0, 1], 125 | [1, 6, 0, 1], 126 | [1, 7, 0, 1], 127 | [1, 8, 0, 1], 128 | [1, 9, 0, 1], 129 | [1, 10, 0, 1], 130 | [1, 11, 0, 1], 131 | [1, 12, 0, 1], 132 | [1, 13, 0, 1], 133 | [1, 14, 0, 1], 134 | [1, 15, 0, 1], 135 | [1, 16, 0, 1], 136 | [1, 16, 0, 1], 137 | [1, 16, 0, 1], 138 | [1, 16, 0, 1], 139 | [1, 16, 0, 1], 140 | [1, 16, 0, 1], 141 | [1, 16, 0, 1], 142 | [1, 16, 0, 1], 143 | [1, 16, 0, 1], 144 | [1, 16, 0, 1], 145 | [1, 16, 0, 1], 146 | [1, 16, 0, 1], 147 | [1, 16, 0, 1], 148 | [1, 16, 0, 1], 149 | [1, 16, 0, 1], 150 | [1, 16, 0, 1], 151 | [1, 16, 0, 1], 152 | [1, 16, 0, 1], 153 | [1, 16, 0, 1], 154 | [1, 16, 0, 1], 155 | [1, 16, 0, 1], 156 | [1, 16, 0, 1], 157 | [1, 16, 0, 1], 158 | [1, 16, 0, 1], 159 | [1, 16, 0, 1] 160 | ],[ 161 | [0, 0, 0, 0], 162 | [0, 0, 0, 0], 163 | [0, 0, 0, 0], 164 | [0, 0, 0, 0], 165 | [0, 0, 0, 0], 166 | [0, 0, 0, 0], 167 | [0, 0, 0, 0], 168 | [0, 0, 0, 0], 169 | [0, 0, 0, 0], 170 | [0, 0, 0, 0], 171 | [0, 0, 0, 0], 172 | [0, -3, 0, 3], 173 | [0, -2, 0, 3], 174 | [0, -1, 0, 3], 175 | [-1, 0, 0, 3], 176 | [-1, 1, 0, 3], 177 | [-1, 2, 0, 3], 178 | [-1, 3, 0, 3], 179 | [-1, 4, 0, 3], 180 | [-1, 5, 0, 3], 181 | [-1, 6, 0, 3], 182 | [-1, 7, 0, 3], 183 | [-1, 8, 0, 3], 184 | [-1, 9, 0, 3], 185 | [-1, 10, 0, 3], 186 | [-1, 11, 0, 3], 187 | [-1, 12, 0, 3], 188 | [-1, 13, 0, 3], 189 | [-1, 14, 0, 3], 190 | [-1, 15, 0, 3], 191 | [-1, 15, 0, 3], 192 | [-1, 15, 0, 3], 193 | [-1, 15, 0, 3], 194 | [-1, 15, 0, 3], 195 | [-1, 15, 0, 3], 196 | [-1, 15, 0, 3], 197 | [-1, 15, 0, 3], 198 | [-1, 15, 0, 3], 199 | [-1, 15, 0, 3], 200 | [-1, 15, 0, 3], 201 | [-1, 15, 0, 3], 202 | [-1, 15, 0, 3], 203 | [-1, 15, 0, 3], 204 | [-1, 15, 0, 3], 205 | [-1, 15, 0, 3], 206 | [-1, 15, 0, 3], 207 | [-1, 15, 0, 3], 208 | [-1, 15, 0, 3], 209 | [-1, 15, 0, 3], 210 | [-1, 15, 0, 3], 211 | [-1, 15, 0, 3] 212 | ],[ 213 | [0, 0, 0, 0], 214 | [0, 0, 0, 0], 215 | [0, 0, 0, 0], 216 | [0, 0, 0, 0], 217 | [0, 0, 0, 0], 218 | [0, 0, 0, 0], 219 | [0, 0, 0, 0], 220 | [0, 0, 0, 0], 221 | [0, 0, 0, 0], 222 | [0, 0, 0, 0], 223 | [0, 0, 0, 0], 224 | [0, 0, 0, 0], 225 | [0, 0, 0, 0], 226 | [0, 0, 0, 0], 227 | [0, 0, 0, 0], 228 | [1, -3, 0, 3], 229 | [1, -2, 0, 3], 230 | [1, -1, 0, 3], 231 | [1, 0, 0, 3], 232 | [1, 1, 0, 3], 233 | [1, 2, 0, 3], 234 | [1, 3, 0, 3], 235 | [1, 4, 0, 3], 236 | [1, 5, 0, 3], 237 | [1, 6, 0, 3], 238 | [0, 7, 0, 3], 239 | [0, 8, 0, 3], 240 | [0, 9, 1, 3], 241 | [0, 10, 1, 3], 242 | [0, 11, 1, 3], 243 | [0, 12, 1, 3], 244 | [0, 13, 1, 3], 245 | [0, 14, 1, 3], 246 | [0, 14, 1, 3], 247 | [0, 14, 1, 3], 248 | [0, 14, 1, 3], 249 | [0, 14, 1, 3], 250 | [0, 14, 1, 3], 251 | [0, 14, 1, 3], 252 | [0, 14, 1, 3], 253 | [0, 14, 1, 3], 254 | [0, 14, 1, 3], 255 | [0, 14, 1, 3], 256 | [0, 14, 1, 3], 257 | [0, 14, 1, 3], 258 | [0, 14, 1, 3], 259 | [0, 14, 1, 3], 260 | [0, 14, 1, 3], 261 | [0, 14, 1, 3], 262 | [0, 14, 1, 3], 263 | [0, 14, 1, 3] 264 | ],[ 265 | [0, 0, 0, 0], 266 | [0, 0, 0, 0], 267 | [0, 0, 0, 0], 268 | [0, 0, 0, 0], 269 | [0, 0, 0, 0], 270 | [0, 0, 0, 0], 271 | [0, 0, 0, 0], 272 | [0, 0, 0, 0], 273 | [0, 0, 0, 0], 274 | [0, 0, 0, 0], 275 | [0, 0, 0, 0], 276 | [0, 0, 0, 0], 277 | [0, 0, 0, 0], 278 | [0, 0, 0, 0], 279 | [0, 0, 0, 0], 280 | [0, 0, 0, 0], 281 | [0, 0, 0, 0], 282 | [0, 0, 0, 0], 283 | [0, 0, 0, 0], 284 | [3, -4, 1, 1], 285 | [3, -3, 1, 1], 286 | [3, -2, 1, 1], 287 | [3, -1, 1, 1], 288 | [3, 0, 1, 1], 289 | [3, 1, 1, 1], 290 | [3, 2, 1, 1], 291 | [3, 3, 1, 1], 292 | [3, 4, 1, 1], 293 | [3, 5, 1, 1], 294 | [3, 6, 1, 1], 295 | [3, 7, 1, 1], 296 | [3, 8, 1, 1], 297 | [3, 9, 1, 1], 298 | [3, 10, 1, 1], 299 | [3, 11, 1, 1], 300 | [3, 12, 1, 1], 301 | [3, 12, 1, 1], 302 | [3, 12, 1, 1], 303 | [3, 12, 1, 1], 304 | [3, 12, 1, 1], 305 | [3, 12, 1, 1], 306 | [3, 12, 1, 1], 307 | [3, 12, 1, 1], 308 | [3, 12, 1, 1], 309 | [3, 12, 1, 1], 310 | [3, 12, 1, 1], 311 | [3, 12, 1, 1], 312 | [3, 12, 1, 1], 313 | [3, 12, 1, 1], 314 | [3, 12, 1, 1], 315 | [3, 12, 1, 1] 316 | ],[ 317 | [0, 0, 0, 0], 318 | [0, 0, 0, 0], 319 | [0, 0, 0, 0], 320 | [0, 0, 0, 0], 321 | [0, 0, 0, 0], 322 | [0, 0, 0, 0], 323 | [0, 0, 0, 0], 324 | [0, 0, 0, 0], 325 | [0, 0, 0, 0], 326 | [0, 0, 0, 0], 327 | [0, 0, 0, 0], 328 | [0, 0, 0, 0], 329 | [0, 0, 0, 0], 330 | [0, 0, 0, 0], 331 | [0, 0, 0, 0], 332 | [0, 0, 0, 0], 333 | [0, 0, 0, 0], 334 | [0, 0, 0, 0], 335 | [0, 0, 0, 0], 336 | [0, 0, 0, 0], 337 | [0, 0, 0, 0], 338 | [0, 0, 0, 0], 339 | [0, -4, 1, 1], 340 | [0, -3, 1, 1], 341 | [0, -2, 1, 1], 342 | [0, -1, 1, 1], 343 | [0, 0, 1, 1], 344 | [0, 1, 1, 1], 345 | [0, 2, 1, 1], 346 | [0, 3, 1, 1], 347 | [0, 4, 1, 1], 348 | [0, 5, 1, 1], 349 | [0, 6, 1, 1], 350 | [0, 7, 1, 1], 351 | [0, 8, 0, 1], 352 | [0, 9, 0, 1], 353 | [0, 10, 0, 1], 354 | [0, 11, 0, 1], 355 | [0, 12, 0, 1], 356 | [0, 12, 0, 1], 357 | [0, 12, 0, 1], 358 | [0, 12, 0, 1], 359 | [0, 12, 0, 1], 360 | [0, 12, 0, 1], 361 | [0, 12, 0, 1], 362 | [0, 12, 0, 1], 363 | [0, 12, 0, 1], 364 | [0, 12, 0, 1], 365 | [0, 12, 0, 1], 366 | [0, 12, 0, 1], 367 | [0, 12, 0, 1] 368 | ],[ 369 | [0, 0, 0, 0], 370 | [0, 0, 0, 0], 371 | [0, 0, 0, 0], 372 | [0, 0, 0, 0], 373 | [0, 0, 0, 0], 374 | [0, 0, 0, 0], 375 | [0, 0, 0, 0], 376 | [0, 0, 0, 0], 377 | [0, 0, 0, 0], 378 | [0, 0, 0, 0], 379 | [0, 0, 0, 0], 380 | [0, 0, 0, 0], 381 | [0, 0, 0, 0], 382 | [0, 0, 0, 0], 383 | [0, 0, 0, 0], 384 | [0, 0, 0, 0], 385 | [0, 0, 0, 0], 386 | [0, 0, 0, 0], 387 | [0, 0, 0, 0], 388 | [0, 0, 0, 0], 389 | [0, 0, 0, 0], 390 | [0, 0, 0, 0], 391 | [0, 0, 0, 0], 392 | [0, 0, 0, 0], 393 | [0, 0, 0, 0], 394 | [3, -4, 1, 1], 395 | [3, -3, 1, 1], 396 | [3, -2, 1, 1], 397 | [3, -1, 1, 1], 398 | [3, 0, 1, 1], 399 | [3, 1, 1, 1], 400 | [3, 2, 1, 1], 401 | [3, 3, 1, 1], 402 | [3, 4, 1, 1], 403 | [4, 5, 1, 1], 404 | [4, 6, 1, 1], 405 | [4, 7, 1, 1], 406 | [4, 8, 1, 1], 407 | [4, 9, 1, 1], 408 | [4, 10, 1, 1], 409 | [4, 11, 1, 1], 410 | [4, 12, 1, 1], 411 | [4, 12, 1, 1], 412 | [4, 12, 1, 1], 413 | [4, 12, 1, 1], 414 | [4, 12, 1, 1], 415 | [4, 12, 1, 1], 416 | [4, 12, 1, 1], 417 | [4, 12, 1, 1], 418 | [4, 12, 1, 1], 419 | [4, 12, 1, 1] 420 | ],[ 421 | [0, 0, 0, 0], 422 | [0, 0, 0, 0], 423 | [0, 0, 0, 0], 424 | [0, 0, 0, 0], 425 | [0, 0, 0, 0], 426 | [0, 0, 0, 0], 427 | [0, 0, 0, 0], 428 | [0, 0, 0, 0], 429 | [0, 0, 0, 0], 430 | [0, 0, 0, 0], 431 | [0, 0, 0, 0], 432 | [0, 0, 0, 0], 433 | [0, 0, 0, 0], 434 | [0, 0, 0, 0], 435 | [0, 0, 0, 0], 436 | [0, 0, 0, 0], 437 | [0, 0, 0, 0], 438 | [0, 0, 0, 0], 439 | [0, 0, 0, 0], 440 | [0, 0, 0, 0], 441 | [0, 0, 0, 0], 442 | [0, 0, 0, 0], 443 | [0, 0, 0, 0], 444 | [0, 0, 0, 0], 445 | [0, 0, 0, 0], 446 | [0, 0, 0, 0], 447 | [0, 0, 0, 0], 448 | [0, 0, 0, 0], 449 | [0, 0, 0, 0], 450 | [0, 0, 0, 0], 451 | [0, 0, 0, 0], 452 | [0, 0, 0, 0], 453 | [1, -3, 1, 2], 454 | [1, -2, 1, 2], 455 | [1, -1, 1, 2], 456 | [1, 0, 1, 2], 457 | [1, 1, 1, 2], 458 | [1, 2, 1, 2], 459 | [1, 3, 1, 2], 460 | [1, 4, 1, 2], 461 | [1, 5, 1, 2], 462 | [1, 6, 1, 2], 463 | [1, 7, 1, 2], 464 | [1, 8, 1, 2], 465 | [1, 9, 1, 2], 466 | [1, 9, 1, 2], 467 | [1, 9, 1, 2], 468 | [1, 9, 1, 2], 469 | [1, 9, 1, 2], 470 | [1, 9, 1, 2], 471 | [1, 9, 1, 2] 472 | ],[ 473 | [0, 0, 0, 0], 474 | [0, 0, 0, 0], 475 | [0, 0, 0, 0], 476 | [0, 0, 0, 0], 477 | [0, 0, 0, 0], 478 | [0, 0, 0, 0], 479 | [0, 0, 0, 0], 480 | [0, 0, 0, 0], 481 | [0, 0, 0, 0], 482 | [0, 0, 0, 0], 483 | [0, 0, 0, 0], 484 | [0, 0, 0, 0], 485 | [0, 0, 0, 0], 486 | [0, 0, 0, 0], 487 | [0, 0, 0, 0], 488 | [0, 0, 0, 0], 489 | [0, 0, 0, 0], 490 | [0, 0, 0, 0], 491 | [0, 0, 0, 0], 492 | [0, 0, 0, 0], 493 | [0, 0, 0, 0], 494 | [0, 0, 0, 0], 495 | [0, 0, 0, 0], 496 | [0, 0, 0, 0], 497 | [0, 0, 0, 0], 498 | [0, 0, 0, 0], 499 | [0, 0, 0, 0], 500 | [0, 0, 0, 0], 501 | [0, 0, 0, 0], 502 | [0, 0, 0, 0], 503 | [0, 0, 0, 0], 504 | [0, 0, 0, 0], 505 | [0, 0, 0, 0], 506 | [0, 0, 0, 0], 507 | [0, 0, 0, 0], 508 | [-1, -3, 0, 4], 509 | [-1, -2, 0, 4], 510 | [-1, -1, 0, 4], 511 | [-1, 0, 0, 4], 512 | [-1, 1, 0, 4], 513 | [-1, 2, 0, 4], 514 | [-1, 3, 0, 4], 515 | [-1, 4, 0, 4], 516 | [-1, 5, 0, 4], 517 | [-1, 6, 0, 4], 518 | [-1, 7, 0, 4], 519 | [-1, 8, 0, 4], 520 | [-1, 9, 0, 4], 521 | [-1, 9, 0, 4], 522 | [-1, 9, 0, 4], 523 | [-1, 9, 0, 4] 524 | ],[ 525 | [0, 0, 0, 0], 526 | [0, 0, 0, 0], 527 | [0, 0, 0, 0], 528 | [0, 0, 0, 0], 529 | [0, 0, 0, 0], 530 | [0, 0, 0, 0], 531 | [0, 0, 0, 0], 532 | [0, 0, 0, 0], 533 | [0, 0, 0, 0], 534 | [0, 0, 0, 0], 535 | [0, 0, 0, 0], 536 | [0, 0, 0, 0], 537 | [0, 0, 0, 0], 538 | [0, 0, 0, 0], 539 | [0, 0, 0, 0], 540 | [0, 0, 0, 0], 541 | [0, 0, 0, 0], 542 | [0, 0, 0, 0], 543 | [0, 0, 0, 0], 544 | [0, 0, 0, 0], 545 | [0, 0, 0, 0], 546 | [0, 0, 0, 0], 547 | [0, 0, 0, 0], 548 | [0, 0, 0, 0], 549 | [0, 0, 0, 0], 550 | [0, 0, 0, 0], 551 | [0, 0, 0, 0], 552 | [0, 0, 0, 0], 553 | [0, 0, 0, 0], 554 | [0, 0, 0, 0], 555 | [0, 0, 0, 0], 556 | [0, 0, 0, 0], 557 | [0, 0, 0, 0], 558 | [0, 0, 0, 0], 559 | [0, 0, 0, 0], 560 | [0, 0, 0, 0], 561 | [0, 0, 0, 0], 562 | [0, 0, 0, 0], 563 | [1, -3, 2, 2], 564 | [1, -2, 2, 2], 565 | [1, -1, 2, 2], 566 | [1, 0, 2, 2], 567 | [1, 1, 2, 2], 568 | [1, 2, 2, 2], 569 | [1, 3, 3, 2], 570 | [1, 4, 3, 2], 571 | [2, 5, 3, 2], 572 | [2, 6, 3, 2], 573 | [2, 7, 3, 2], 574 | [2, 8, 3, 2], 575 | [2, 9, 3, 2] 576 | ] 577 | ] 578 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number3.json: -------------------------------------------------------------------------------- 1 | [ 2 | [5,3,4,7,6,5,3,2,7,6,2], 3 | [ 4 | [ 5 | [1, -3, 0, 1], 6 | [1, -2, 0, 1], 7 | [1, -1, 0, 1], 8 | [1, 0, 0, 1], 9 | [1, 1, 0, 1], 10 | [1, 2, 0, 1], 11 | [1, 3, 0, 1], 12 | [1, 4, 0, 1], 13 | [1, 5, 0, 1], 14 | [1, 6, 0, 1], 15 | [1, 7, 0, 1], 16 | [1, 8, 0, 1], 17 | [1, 9, 0, 1], 18 | [1, 10, 0, 1], 19 | [1, 11, 0, 1], 20 | [1, 12, 0, 1], 21 | [1, 13, 0, 1], 22 | [1, 14, 0, 1], 23 | [1, 15, 0, 1], 24 | [1, 16, 0, 1], 25 | [1, 17, 0, 1], 26 | [1, 17, 0, 1], 27 | [1, 17, 0, 1], 28 | [1, 17, 0, 1], 29 | [1, 17, 0, 1], 30 | [1, 17, 0, 1], 31 | [1, 17, 0, 1], 32 | [1, 17, 0, 1], 33 | [1, 17, 0, 1], 34 | [1, 17, 0, 1], 35 | [1, 17, 0, 1], 36 | [1, 17, 0, 1], 37 | [1, 17, 0, 1], 38 | [1, 17, 0, 1], 39 | [1, 17, 0, 1], 40 | [1, 17, 0, 1], 41 | [1, 17, 0, 1], 42 | [1, 17, 0, 1], 43 | [1, 17, 0, 1], 44 | [1, 17, 0, 1], 45 | [1, 17, 0, 1], 46 | [1, 17, 0, 1], 47 | [1, 17, 0, 1], 48 | [1, 17, 0, 1], 49 | [1, 17, 0, 1], 50 | [1, 17, 0, 1], 51 | [1, 17, 0, 1], 52 | [1, 17, 0, 1], 53 | [1, 17, 0, 1], 54 | [1, 17, 0, 1], 55 | [1, 17, 0, 1] 56 | ], [ 57 | [0, 0, 0, 0], 58 | [0, 0, 0, 0], 59 | [0, 0, 0, 0], 60 | [2, -3, 2, 2], 61 | [2, -2, 2, 2], 62 | [2, -1, 2, 2], 63 | [2, 0, 2, 2], 64 | [2, 1, 2, 2], 65 | [2, 2, 2, 2], 66 | [2, 3, 2, 2], 67 | [2, 4, 2, 2], 68 | [2, 5, 2, 2], 69 | [2, 6, 2, 2], 70 | [2, 7, 2, 2], 71 | [2, 8, 2, 2], 72 | [2, 9, 2, 2], 73 | [2, 10, 2, 2], 74 | [2, 11, 2, 2], 75 | [2, 12, 2, 2], 76 | [2, 13, 3, 2], 77 | [2, 14, 3, 2], 78 | [2, 15, 3, 2], 79 | [2, 16, 3, 2], 80 | [2, 17, 3, 2], 81 | [2, 17, 3, 2], 82 | [2, 17, 3, 2], 83 | [2, 17, 3, 2], 84 | [2, 17, 3, 2], 85 | [2, 17, 3, 2], 86 | [2, 17, 3, 2], 87 | [2, 17, 3, 2], 88 | [2, 17, 3, 2], 89 | [2, 17, 3, 2], 90 | [2, 17, 3, 2], 91 | [2, 17, 3, 2], 92 | [2, 17, 3, 2], 93 | [2, 17, 3, 2], 94 | [2, 17, 3, 2], 95 | [2, 17, 3, 2], 96 | [2, 17, 3, 2], 97 | [2, 17, 3, 2], 98 | [2, 17, 3, 2], 99 | [2, 17, 3, 2], 100 | [2, 17, 3, 2], 101 | [2, 17, 3, 2], 102 | [2, 17, 3, 2], 103 | [2, 17, 3, 2], 104 | [2, 17, 3, 2], 105 | [2, 17, 3, 2], 106 | [2, 17, 3, 2], 107 | [2, 17, 3, 2] 108 | ], [ 109 | [0, 0, 0, 0], 110 | [0, 0, 0, 0], 111 | [0, 0, 0, 0], 112 | [0, 0, 0, 0], 113 | [0, 0, 0, 0], 114 | [0, 0, 0, 0], 115 | [0, 0, 0, 0], 116 | [0, 0, 0, 0], 117 | [-1, -3, 2, 3], 118 | [-1, -2, 2, 3], 119 | [-1, -1, 2, 3], 120 | [-1, 0, 2, 3], 121 | [-1, 1, 2, 3], 122 | [-1, 2, 2, 3], 123 | [-1, 3, 2, 3], 124 | [-1, 4, 2, 3], 125 | [-1, 5, 2, 3], 126 | [-1, 6, 2, 3], 127 | [-1, 7, 2, 3], 128 | [-1, 8, 2, 3], 129 | [-1, 9, 2, 3], 130 | [-1, 10, 2, 3], 131 | [-1, 11, 2, 3], 132 | [-1, 12, 2, 3], 133 | [-1, 13, 2, 3], 134 | [-1, 14, 2, 3], 135 | [-1, 15, 2, 3], 136 | [-1, 16, 1, 3], 137 | [-1, 17, 1, 3], 138 | [-1, 17, 1, 3], 139 | [-1, 17, 1, 3], 140 | [-1, 17, 1, 3], 141 | [-1, 17, 1, 3], 142 | [-1, 17, 1, 3], 143 | [-1, 17, 1, 3], 144 | [-1, 17, 1, 3], 145 | [-1, 17, 1, 3], 146 | [-1, 17, 1, 3], 147 | [-1, 17, 1, 3], 148 | [-1, 17, 1, 3], 149 | [-1, 17, 1, 3], 150 | [-1, 17, 1, 3], 151 | [-1, 17, 1, 3], 152 | [-1, 17, 1, 3], 153 | [-1, 17, 1, 3], 154 | [-1, 17, 1, 3], 155 | [-1, 17, 1, 3], 156 | [-1, 17, 1, 3], 157 | [-1, 17, 1, 3], 158 | [-1, 17, 1, 3], 159 | [-1, 17, 1, 3] 160 | ], [ 161 | [0, 0, 0, 0], 162 | [0, 0, 0, 0], 163 | [0, 0, 0, 0], 164 | [0, 0, 0, 0], 165 | [0, 0, 0, 0], 166 | [0, 0, 0, 0], 167 | [0, 0, 0, 0], 168 | [0, 0, 0, 0], 169 | [0, 0, 0, 0], 170 | [0, 0, 0, 0], 171 | [0, 0, 0, 0], 172 | [2, -3, 0, 4], 173 | [2, -2, 0, 4], 174 | [2, -1, 0, 4], 175 | [2, 0, 0, 4], 176 | [2, 1, 0, 4], 177 | [2, 2, 0, 4], 178 | [2, 3, 0, 4], 179 | [2, 4, 0, 4], 180 | [2, 5, 0, 4], 181 | [2, 6, 0, 4], 182 | [2, 7, 0, 4], 183 | [2, 8, 0, 4], 184 | [2, 9, 0, 4], 185 | [2, 10, 0, 4], 186 | [2, 11, 0, 4], 187 | [2, 12, 0, 4], 188 | [3, 13, 0, 4], 189 | [3, 14, 0, 4], 190 | [3, 15, 0, 4], 191 | [3, 15, 0, 4], 192 | [3, 15, 0, 4], 193 | [3, 15, 0, 4], 194 | [3, 15, 0, 4], 195 | [3, 15, 0, 4], 196 | [3, 15, 0, 4], 197 | [3, 15, 0, 4], 198 | [3, 15, 0, 4], 199 | [3, 15, 0, 4], 200 | [3, 15, 0, 4], 201 | [3, 15, 0, 4], 202 | [3, 15, 0, 4], 203 | [3, 15, 0, 4], 204 | [3, 15, 0, 4], 205 | [3, 15, 0, 4], 206 | [3, 15, 0, 4], 207 | [3, 15, 0, 4], 208 | [3, 15, 0, 4], 209 | [3, 15, 0, 4], 210 | [3, 15, 0, 4], 211 | [3, 15, 0, 4] 212 | ], [ 213 | [0, 0, 0, 0], 214 | [0, 0, 0, 0], 215 | [0, 0, 0, 0], 216 | [0, 0, 0, 0], 217 | [0, 0, 0, 0], 218 | [0, 0, 0, 0], 219 | [0, 0, 0, 0], 220 | [0, 0, 0, 0], 221 | [0, 0, 0, 0], 222 | [0, 0, 0, 0], 223 | [0, 0, 0, 0], 224 | [0, 0, 0, 0], 225 | [0, 0, 0, 0], 226 | [0, 0, 0, 0], 227 | [0, 0, 0, 0], 228 | [0, 0, 0, 0], 229 | [1, -3, 0, 1], 230 | [1, -2, 0, 1], 231 | [1, -1, 0, 1], 232 | [1, 0, 0, 1], 233 | [1, 1, 0, 1], 234 | [1, 2, 0, 1], 235 | [1, 3, 0, 1], 236 | [1, 4, 0, 1], 237 | [1, 5, 0, 1], 238 | [1, 6, 0, 1], 239 | [1, 7, 0, 1], 240 | [1, 8, 0, 1], 241 | [1, 9, 0, 1], 242 | [1, 10, 0, 1], 243 | [1, 11, 0, 1], 244 | [1, 12, 0, 1], 245 | [1, 13, 0, 1], 246 | [1, 13, 0, 1], 247 | [1, 13, 0, 1], 248 | [1, 13, 0, 1], 249 | [1, 13, 0, 1], 250 | [1, 13, 0, 1], 251 | [1, 13, 0, 1], 252 | [1, 13, 0, 1], 253 | [1, 13, 0, 1], 254 | [1, 13, 0, 1], 255 | [1, 13, 0, 1], 256 | [1, 13, 0, 1], 257 | [1, 13, 0, 1], 258 | [1, 13, 0, 1], 259 | [1, 13, 0, 1], 260 | [1, 13, 0, 1], 261 | [1, 13, 0, 1], 262 | [1, 13, 0, 1], 263 | [1, 13, 0, 1] 264 | ], [ 265 | [0, 0, 0, 0], 266 | [0, 0, 0, 0], 267 | [0, 0, 0, 0], 268 | [0, 0, 0, 0], 269 | [0, 0, 0, 0], 270 | [0, 0, 0, 0], 271 | [0, 0, 0, 0], 272 | [0, 0, 0, 0], 273 | [0, 0, 0, 0], 274 | [0, 0, 0, 0], 275 | [0, 0, 0, 0], 276 | [0, 0, 0, 0], 277 | [0, 0, 0, 0], 278 | [0, 0, 0, 0], 279 | [0, 0, 0, 0], 280 | [0, 0, 0, 0], 281 | [0, 0, 0, 0], 282 | [0, 0, 0, 0], 283 | [0, 0, 0, 0], 284 | [2, -3, 0, 2], 285 | [2, -2, 0, 2], 286 | [2, -1, 0, 2], 287 | [2, 0, 0, 2], 288 | [2, 1, 0, 2], 289 | [2, 2, 0, 2], 290 | [2, 3, 0, 2], 291 | [2, 4, 0, 2], 292 | [2, 5, 0, 2], 293 | [2, 6, 0, 2], 294 | [2, 7, 0, 2], 295 | [2, 8, 0, 2], 296 | [2, 9, 0, 2], 297 | [2, 10, 0, 2], 298 | [2, 11, 0, 2], 299 | [2, 12, 0, 2], 300 | [2, 12, 0, 2], 301 | [2, 12, 0, 2], 302 | [2, 12, 0, 2], 303 | [2, 12, 0, 2], 304 | [2, 12, 0, 2], 305 | [2, 12, 0, 2], 306 | [2, 12, 0, 2], 307 | [2, 12, 0, 2], 308 | [2, 12, 0, 2], 309 | [2, 12, 0, 2], 310 | [2, 12, 0, 2], 311 | [2, 12, 0, 2], 312 | [2, 12, 0, 2], 313 | [2, 12, 0, 2], 314 | [2, 12, 0, 2], 315 | [2, 12, 0, 2] 316 | ], [ 317 | [0, 0, 0, 0], 318 | [0, 0, 0, 0], 319 | [0, 0, 0, 0], 320 | [0, 0, 0, 0], 321 | [0, 0, 0, 0], 322 | [0, 0, 0, 0], 323 | [0, 0, 0, 0], 324 | [0, 0, 0, 0], 325 | [0, 0, 0, 0], 326 | [0, 0, 0, 0], 327 | [0, 0, 0, 0], 328 | [0, 0, 0, 0], 329 | [0, 0, 0, 0], 330 | [0, 0, 0, 0], 331 | [0, 0, 0, 0], 332 | [0, 0, 0, 0], 333 | [0, 0, 0, 0], 334 | [0, 0, 0, 0], 335 | [0, 0, 0, 0], 336 | [0, 0, 0, 0], 337 | [0, 0, 0, 0], 338 | [0, 0, 0, 0], 339 | [0, -3, 1, 3], 340 | [0, -2, 1, 3], 341 | [0, -1, 1, 3], 342 | [0, 0, 1, 3], 343 | [0, 1, 1, 3], 344 | [0, 2, 1, 3], 345 | [0, 3, 1, 3], 346 | [0, 4, 1, 3], 347 | [0, 5, 1, 3], 348 | [0, 6, 1, 3], 349 | [0, 7, 1, 3], 350 | [-1, 8, 1, 3], 351 | [-1, 9, 1, 3], 352 | [-1, 10, 1, 3], 353 | [-1, 11, 1, 3], 354 | [-1, 12, 1, 3], 355 | [-1, 13, 1, 3], 356 | [-1, 13, 1, 3], 357 | [-1, 13, 1, 3], 358 | [-1, 13, 1, 3], 359 | [-1, 13, 1, 3], 360 | [-1, 13, 1, 3], 361 | [-1, 13, 1, 3], 362 | [-1, 13, 1, 3], 363 | [-1, 13, 1, 3], 364 | [-1, 13, 1, 3], 365 | [-1, 13, 1, 3], 366 | [-1, 13, 1, 3], 367 | [-1, 13, 1, 3] 368 | ], [ 369 | [0, 0, 0, 0], 370 | [0, 0, 0, 0], 371 | [0, 0, 0, 0], 372 | [0, 0, 0, 0], 373 | [0, 0, 0, 0], 374 | [0, 0, 0, 0], 375 | [0, 0, 0, 0], 376 | [0, 0, 0, 0], 377 | [0, 0, 0, 0], 378 | [0, 0, 0, 0], 379 | [0, 0, 0, 0], 380 | [0, 0, 0, 0], 381 | [0, 0, 0, 0], 382 | [0, 0, 0, 0], 383 | [0, 0, 0, 0], 384 | [0, 0, 0, 0], 385 | [0, 0, 0, 0], 386 | [0, 0, 0, 0], 387 | [0, 0, 0, 0], 388 | [0, 0, 0, 0], 389 | [0, 0, 0, 0], 390 | [0, 0, 0, 0], 391 | [0, 0, 0, 0], 392 | [0, 0, 0, 0], 393 | [0, 0, 0, 0], 394 | [0, 0, 0, 0], 395 | [1, -3, 0, 1], 396 | [1, -2, 0, 1], 397 | [1, -1, 0, 1], 398 | [1, 0, 0, 1], 399 | [1, 1, 0, 1], 400 | [1, 2, 0, 1], 401 | [1, 3, 0, 1], 402 | [1, 4, 0, 1], 403 | [2, 5, 0, 1], 404 | [3, 6, 1, 1], 405 | [4, 7, 1, 1], 406 | [4, 8, 1, 1], 407 | [4, 9, 1, 1], 408 | [4, 10, 1, 1], 409 | [4, 11, 1, 1], 410 | [4, 12, 1, 1], 411 | [4, 12, 1, 1], 412 | [4, 12, 1, 1], 413 | [4, 12, 1, 1], 414 | [4, 12, 1, 1], 415 | [4, 12, 1, 1], 416 | [4, 12, 1, 1], 417 | [4, 12, 1, 1], 418 | [4, 12, 1, 1], 419 | [4, 12, 1, 1] 420 | ], [ 421 | [0, 0, 0, 0], 422 | [0, 0, 0, 0], 423 | [0, 0, 0, 0], 424 | [0, 0, 0, 0], 425 | [0, 0, 0, 0], 426 | [0, 0, 0, 0], 427 | [0, 0, 0, 0], 428 | [0, 0, 0, 0], 429 | [0, 0, 0, 0], 430 | [0, 0, 0, 0], 431 | [0, 0, 0, 0], 432 | [0, 0, 0, 0], 433 | [0, 0, 0, 0], 434 | [0, 0, 0, 0], 435 | [0, 0, 0, 0], 436 | [0, 0, 0, 0], 437 | [0, 0, 0, 0], 438 | [0, 0, 0, 0], 439 | [0, 0, 0, 0], 440 | [0, 0, 0, 0], 441 | [0, 0, 0, 0], 442 | [0, 0, 0, 0], 443 | [0, 0, 0, 0], 444 | [0, 0, 0, 0], 445 | [0, 0, 0, 0], 446 | [0, 0, 0, 0], 447 | [0, 0, 0, 0], 448 | [0, 0, 0, 0], 449 | [0, 0, 0, 0], 450 | [0, 0, 0, 0], 451 | [0, 0, 0, 0], 452 | [1, -4, 1, 1], 453 | [1, -3, 1, 1], 454 | [1, -2, 1, 1], 455 | [1, -1, 1, 1], 456 | [1, 0, 1, 1], 457 | [1, 1, 1, 1], 458 | [1, 2, 1, 1], 459 | [1, 3, 1, 1], 460 | [1, 4, 1, 1], 461 | [1, 5, 1, 1], 462 | [1, 6, 1, 1], 463 | [1, 7, 0, 1], 464 | [1, 8, 0, 1], 465 | [1, 9, 0, 1], 466 | [1, 9, 0, 1], 467 | [1, 9, 0, 1], 468 | [1, 9, 0, 1], 469 | [1, 9, 0, 1], 470 | [1, 9, 0, 1], 471 | [1, 9, 0, 1] 472 | ], [ 473 | [0, 0, 0, 0], 474 | [0, 0, 0, 0], 475 | [0, 0, 0, 0], 476 | [0, 0, 0, 0], 477 | [0, 0, 0, 0], 478 | [0, 0, 0, 0], 479 | [0, 0, 0, 0], 480 | [0, 0, 0, 0], 481 | [0, 0, 0, 0], 482 | [0, 0, 0, 0], 483 | [0, 0, 0, 0], 484 | [0, 0, 0, 0], 485 | [0, 0, 0, 0], 486 | [0, 0, 0, 0], 487 | [0, 0, 0, 0], 488 | [0, 0, 0, 0], 489 | [0, 0, 0, 0], 490 | [0, 0, 0, 0], 491 | [0, 0, 0, 0], 492 | [0, 0, 0, 0], 493 | [0, 0, 0, 0], 494 | [0, 0, 0, 0], 495 | [0, 0, 0, 0], 496 | [0, 0, 0, 0], 497 | [0, 0, 0, 0], 498 | [0, 0, 0, 0], 499 | [0, 0, 0, 0], 500 | [0, 0, 0, 0], 501 | [0, 0, 0, 0], 502 | [0, 0, 0, 0], 503 | [0, 0, 0, 0], 504 | [0, 0, 0, 0], 505 | [0, 0, 0, 0], 506 | [0, 0, 0, 0], 507 | [0, 0, 0, 0], 508 | [2, -3, 3, 2], 509 | [2, -2, 3, 2], 510 | [2, -1, 3, 2], 511 | [2, 0, 3, 2], 512 | [2, 1, 3, 2], 513 | [2, 2, 3, 2], 514 | [2, 3, 3, 2], 515 | [2, 4, 3, 2], 516 | [2, 5, 3, 2], 517 | [2, 6, 3, 2], 518 | [2, 7, 3, 2], 519 | [2, 8, 3, 2], 520 | [2, 9, 3, 2], 521 | [2, 9, 3, 2], 522 | [2, 9, 3, 2], 523 | [2, 9, 3, 2] 524 | ], [ 525 | [0, 0, 0, 0], 526 | [0, 0, 0, 0], 527 | [0, 0, 0, 0], 528 | [0, 0, 0, 0], 529 | [0, 0, 0, 0], 530 | [0, 0, 0, 0], 531 | [0, 0, 0, 0], 532 | [0, 0, 0, 0], 533 | [0, 0, 0, 0], 534 | [0, 0, 0, 0], 535 | [0, 0, 0, 0], 536 | [0, 0, 0, 0], 537 | [0, 0, 0, 0], 538 | [0, 0, 0, 0], 539 | [0, 0, 0, 0], 540 | [0, 0, 0, 0], 541 | [0, 0, 0, 0], 542 | [0, 0, 0, 0], 543 | [0, 0, 0, 0], 544 | [0, 0, 0, 0], 545 | [0, 0, 0, 0], 546 | [0, 0, 0, 0], 547 | [0, 0, 0, 0], 548 | [0, 0, 0, 0], 549 | [0, 0, 0, 0], 550 | [0, 0, 0, 0], 551 | [0, 0, 0, 0], 552 | [0, 0, 0, 0], 553 | [0, 0, 0, 0], 554 | [0, 0, 0, 0], 555 | [0, 0, 0, 0], 556 | [0, 0, 0, 0], 557 | [0, 0, 0, 0], 558 | [0, 0, 0, 0], 559 | [0, 0, 0, 0], 560 | [0, 0, 0, 0], 561 | [0, 0, 0, 0], 562 | [0, 0, 0, 0], 563 | [0, -3, 0, 3], 564 | [0, -2, 0, 3], 565 | [0, -1, 0, 3], 566 | [0, 0, 0, 3], 567 | [0, 1, 0, 3], 568 | [0, 2, 0, 3], 569 | [0, 3, 0, 3], 570 | [-1, 4, 0, 3], 571 | [-1, 5, 0, 3], 572 | [-1, 6, 1, 3], 573 | [-1, 7, 1, 3], 574 | [-1, 8, 1, 3], 575 | [-1, 9, 1, 3] 576 | ] 577 | ] 578 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number4.json: -------------------------------------------------------------------------------- 1 | [ 2 | [2,7,4,5,6,3,3,5,4], 3 | [ 4 | [ 5 | [0, -3, 0, 3], 6 | [0, -2, 0, 3], 7 | [0, -1, 0, 3], 8 | [0, 0, 0, 3], 9 | [0, 1, 0, 3], 10 | [0, 2, 0, 3], 11 | [0, 3, 0, 3], 12 | [0, 4, 0, 3], 13 | [0, 5, 0, 3], 14 | [0, 6, 0, 3], 15 | [0, 7, 0, 3], 16 | [0, 8, 0, 3], 17 | [0, 9, 0, 3], 18 | [0, 10, 0, 3], 19 | [0, 11, 0, 3], 20 | [1, 12, 0, 3], 21 | [1, 13, 0, 3], 22 | [1, 14, 0, 3], 23 | [2, 15, 0, 3], 24 | [2, 16, 0, 3], 25 | [3, 17, 0, 3], 26 | [3, 17, 0, 3], 27 | [3, 17, 0, 3], 28 | [3, 17, 0, 3], 29 | [3, 17, 0, 3], 30 | [3, 17, 0, 3], 31 | [3, 17, 0, 3], 32 | [3, 17, 0, 3], 33 | [3, 17, 0, 3], 34 | [3, 17, 0, 3], 35 | [3, 17, 0, 3], 36 | [3, 17, 0, 3], 37 | [3, 17, 0, 3], 38 | [3, 17, 0, 3], 39 | [3, 17, 0, 3], 40 | [3, 17, 0, 3], 41 | [3, 17, 0, 3], 42 | [3, 17, 0, 3], 43 | [3, 17, 0, 3], 44 | [3, 17, 0, 3], 45 | [3, 17, 0, 3], 46 | [3, 17, 0, 3], 47 | [3, 17, 0, 3], 48 | [3, 17, 0, 3], 49 | [3, 17, 0, 3], 50 | [3, 17, 0, 3], 51 | [3, 17, 0, 3] 52 | ],[ 53 | [0, 0, 0, 0], 54 | [0, 0, 0, 0], 55 | [0, 0, 0, 0], 56 | [0, 0, 0, 0], 57 | [0, 0, 0, 0], 58 | [1, -3, 3, 3], 59 | [1, -2, 3, 3], 60 | [1, -1, 3, 3], 61 | [1, 0, 3, 3], 62 | [1, 1, 3, 3], 63 | [1, 2, 3, 3], 64 | [1, 3, 3, 3], 65 | [1, 4, 3, 3], 66 | [1, 5, 3, 3], 67 | [1, 6, 3, 3], 68 | [2, 7, 3, 3], 69 | [2, 8, 3, 3], 70 | [2, 9, 2, 3], 71 | [3, 10, 2, 3], 72 | [3, 11, 2, 3], 73 | [3, 12, 2, 3], 74 | [3, 13, 2, 3], 75 | [3, 14, 2, 3], 76 | [3, 15, 2, 3], 77 | [3, 16, 2, 3], 78 | [3, 16, 2, 3], 79 | [3, 16, 2, 3], 80 | [3, 16, 2, 3], 81 | [3, 16, 2, 3], 82 | [3, 16, 2, 3], 83 | [3, 16, 2, 3], 84 | [3, 16, 2, 3], 85 | [3, 16, 2, 3], 86 | [3, 16, 2, 3], 87 | [3, 16, 2, 3], 88 | [3, 16, 2, 3], 89 | [3, 16, 2, 3], 90 | [3, 16, 2, 3], 91 | [3, 16, 2, 3], 92 | [3, 16, 2, 3], 93 | [3, 16, 2, 3], 94 | [3, 16, 2, 3], 95 | [3, 16, 2, 3], 96 | [3, 16, 2, 3], 97 | [3, 16, 2, 3], 98 | [3, 16, 2, 3], 99 | [3, 16, 2, 3] 100 | ],[ 101 | [0, 0, 0, 0], 102 | [0, 0, 0, 0], 103 | [0, 0, 0, 0], 104 | [0, 0, 0, 0], 105 | [0, 0, 0, 0], 106 | [0, 0, 0, 0], 107 | [0, 0, 0, 0], 108 | [0, 0, 0, 0], 109 | [0, 0, 0, 0], 110 | [0, 0, 0, 0], 111 | [0, 0, 0, 0], 112 | [2, -3, 1, 3], 113 | [2, -2, 1, 3], 114 | [2, -1, 1, 3], 115 | [2, 0, 1, 3], 116 | [2, 1, 1, 3], 117 | [2, 2, 1, 3], 118 | [2, 3, 1, 3], 119 | [2, 4, 1, 3], 120 | [2, 5, 1, 3], 121 | [2, 6, 1, 3], 122 | [2, 7, 1, 3], 123 | [2, 8, 0, 3], 124 | [2, 9, 0, 3], 125 | [3, 10, 0, 3], 126 | [3, 11, 0, 3], 127 | [3, 12, 0, 3], 128 | [3, 13, 0, 3], 129 | [3, 13, 0, 3], 130 | [3, 13, 0, 3], 131 | [3, 13, 0, 3], 132 | [3, 13, 0, 3], 133 | [3, 13, 0, 3], 134 | [3, 13, 0, 3], 135 | [3, 13, 0, 3], 136 | [3, 13, 0, 3], 137 | [3, 13, 0, 3], 138 | [3, 13, 0, 3], 139 | [3, 13, 0, 3], 140 | [3, 13, 0, 3], 141 | [3, 13, 0, 3], 142 | [3, 13, 0, 3], 143 | [3, 13, 0, 3], 144 | [3, 13, 0, 3], 145 | [3, 13, 0, 3], 146 | [3, 13, 0, 3], 147 | [3, 13, 0, 3] 148 | ],[ 149 | [0, 0, 0, 0], 150 | [0, 0, 0, 0], 151 | [0, 0, 0, 0], 152 | [0, 0, 0, 0], 153 | [0, 0, 0, 0], 154 | [0, 0, 0, 0], 155 | [0, 0, 0, 0], 156 | [0, 0, 0, 0], 157 | [0, 0, 0, 0], 158 | [0, 0, 0, 0], 159 | [0, 0, 0, 0], 160 | [0, 0, 0, 0], 161 | [0, 0, 0, 0], 162 | [0, 0, 0, 0], 163 | [0, 0, 0, 0], 164 | [-1, -3, 1, 3], 165 | [-1, -2, 1, 3], 166 | [-1, -1, 1, 3], 167 | [-1, 0, 1, 3], 168 | [-1, 1, 1, 3], 169 | [-1, 2, 1, 3], 170 | [-1, 3, 1, 3], 171 | [-1, 4, 1, 3], 172 | [-1, 5, 1, 3], 173 | [-1, 6, 1, 3], 174 | [-1, 7, 1, 3], 175 | [-1, 8, 1, 3], 176 | [-1, 9, 0, 3], 177 | [-1, 10, 0, 3], 178 | [-1, 11, 0, 3], 179 | [-1, 12, 0, 3], 180 | [-1, 13, 0, 3], 181 | [-1, 13, 0, 3], 182 | [-1, 13, 0, 3], 183 | [-1, 13, 0, 3], 184 | [-1, 13, 0, 3], 185 | [-1, 13, 0, 3], 186 | [-1, 13, 0, 3], 187 | [-1, 13, 0, 3], 188 | [-1, 13, 0, 3], 189 | [-1, 13, 0, 3], 190 | [-1, 13, 0, 3], 191 | [-1, 13, 0, 3], 192 | [-1, 13, 0, 3], 193 | [-1, 13, 0, 3], 194 | [-1, 13, 0, 3], 195 | [-1, 13, 0, 3] 196 | ],[ 197 | [0, 0, 0, 0], 198 | [0, 0, 0, 0], 199 | [0, 0, 0, 0], 200 | [0, 0, 0, 0], 201 | [0, 0, 0, 0], 202 | [0, 0, 0, 0], 203 | [0, 0, 0, 0], 204 | [0, 0, 0, 0], 205 | [0, 0, 0, 0], 206 | [0, 0, 0, 0], 207 | [0, 0, 0, 0], 208 | [0, 0, 0, 0], 209 | [0, 0, 0, 0], 210 | [0, 0, 0, 0], 211 | [0, 0, 0, 0], 212 | [0, 0, 0, 0], 213 | [0, 0, 0, 0], 214 | [0, 0, 0, 0], 215 | [1, -3, 0, 4], 216 | [1, -2, 0, 4], 217 | [1, -1, 0, 4], 218 | [1, 0, 0, 4], 219 | [1, 1, 0, 4], 220 | [1, 2, 0, 4], 221 | [1, 3, 0, 4], 222 | [1, 4, 0, 4], 223 | [1, 5, 0, 4], 224 | [1, 6, 0, 4], 225 | [1, 7, 0, 4], 226 | [1, 8, 0, 4], 227 | [1, 9, 0, 4], 228 | [1, 10, 0, 4], 229 | [1, 11, 0, 4], 230 | [1, 12, 0, 4], 231 | [1, 13, 0, 4], 232 | [1, 13, 0, 4], 233 | [1, 13, 0, 4], 234 | [1, 13, 0, 4], 235 | [1, 13, 0, 4], 236 | [1, 13, 0, 4], 237 | [1, 13, 0, 4], 238 | [1, 13, 0, 4], 239 | [1, 13, 0, 4], 240 | [1, 13, 0, 4], 241 | [1, 13, 0, 4], 242 | [1, 13, 0, 4], 243 | [1, 13, 0, 4] 244 | ],[ 245 | [0, 0, 0, 0], 246 | [0, 0, 0, 0], 247 | [0, 0, 0, 0], 248 | [0, 0, 0, 0], 249 | [0, 0, 0, 0], 250 | [0, 0, 0, 0], 251 | [0, 0, 0, 0], 252 | [0, 0, 0, 0], 253 | [0, 0, 0, 0], 254 | [0, 0, 0, 0], 255 | [0, 0, 0, 0], 256 | [0, 0, 0, 0], 257 | [0, 0, 0, 0], 258 | [0, 0, 0, 0], 259 | [0, 0, 0, 0], 260 | [0, 0, 0, 0], 261 | [0, 0, 0, 0], 262 | [0, 0, 0, 0], 263 | [0, 0, 0, 0], 264 | [0, 0, 0, 0], 265 | [0, 0, 0, 0], 266 | [0, 0, 0, 0], 267 | [0, 0, 0, 0], 268 | [2, -3, 0, 1], 269 | [2, -2, 0, 1], 270 | [2, -1, 0, 1], 271 | [2, 0, 0, 1], 272 | [2, 1, 0, 1], 273 | [2, 2, 0, 1], 274 | [2, 3, 0, 1], 275 | [2, 4, 1, 1], 276 | [2, 5, 1, 1], 277 | [2, 6, 1, 1], 278 | [3, 7, 1, 1], 279 | [4, 8, 1, 1], 280 | [4, 9, 1, 1], 281 | [4, 10, 1, 1], 282 | [4, 11, 1, 1], 283 | [4, 11, 1, 1], 284 | [4, 11, 1, 1], 285 | [4, 11, 1, 1], 286 | [4, 11, 1, 1], 287 | [4, 11, 1, 1], 288 | [4, 11, 1, 1], 289 | [4, 11, 1, 1], 290 | [4, 11, 1, 1], 291 | [4, 11, 1, 1] 292 | ],[ 293 | [0, 0, 0, 0], 294 | [0, 0, 0, 0], 295 | [0, 0, 0, 0], 296 | [0, 0, 0, 0], 297 | [0, 0, 0, 0], 298 | [0, 0, 0, 0], 299 | [0, 0, 0, 0], 300 | [0, 0, 0, 0], 301 | [0, 0, 0, 0], 302 | [0, 0, 0, 0], 303 | [0, 0, 0, 0], 304 | [0, 0, 0, 0], 305 | [0, 0, 0, 0], 306 | [0, 0, 0, 0], 307 | [0, 0, 0, 0], 308 | [0, 0, 0, 0], 309 | [0, 0, 0, 0], 310 | [0, 0, 0, 0], 311 | [0, 0, 0, 0], 312 | [0, 0, 0, 0], 313 | [0, 0, 0, 0], 314 | [0, 0, 0, 0], 315 | [0, 0, 0, 0], 316 | [0, 0, 0, 0], 317 | [0, 0, 0, 0], 318 | [-1, -3, 2, 3], 319 | [-1, -2, 2, 3], 320 | [-1, -1, 2, 3], 321 | [-1, 0, 2, 3], 322 | [-1, 1, 2, 3], 323 | [-1, 2, 2, 3], 324 | [-1, 3, 2, 3], 325 | [-1, 4, 2, 3], 326 | [-1, 5, 2, 3], 327 | [-1, 6, 2, 3], 328 | [-1, 7, 2, 3], 329 | [-1, 8, 2, 3], 330 | [-1, 9, 2, 3], 331 | [-1, 10, 2, 3], 332 | [-1, 11, 2, 3], 333 | [-1, 12, 2, 3], 334 | [-1, 12, 2, 3], 335 | [-1, 12, 2, 3], 336 | [-1, 12, 2, 3], 337 | [-1, 12, 2, 3], 338 | [-1, 12, 2, 3], 339 | [-1, 12, 2, 3] 340 | ],[ 341 | [0, 0, 0, 0], 342 | [0, 0, 0, 0], 343 | [0, 0, 0, 0], 344 | [0, 0, 0, 0], 345 | [0, 0, 0, 0], 346 | [0, 0, 0, 0], 347 | [0, 0, 0, 0], 348 | [0, 0, 0, 0], 349 | [0, 0, 0, 0], 350 | [0, 0, 0, 0], 351 | [0, 0, 0, 0], 352 | [0, 0, 0, 0], 353 | [0, 0, 0, 0], 354 | [0, 0, 0, 0], 355 | [0, 0, 0, 0], 356 | [0, 0, 0, 0], 357 | [0, 0, 0, 0], 358 | [0, 0, 0, 0], 359 | [0, 0, 0, 0], 360 | [0, 0, 0, 0], 361 | [0, 0, 0, 0], 362 | [0, 0, 0, 0], 363 | [0, 0, 0, 0], 364 | [0, 0, 0, 0], 365 | [0, 0, 0, 0], 366 | [0, 0, 0, 0], 367 | [0, 0, 0, 0], 368 | [0, 0, 0, 0], 369 | [0, 0, 0, 0], 370 | [0, 0, 0, 0], 371 | [1, -3, 3, 2], 372 | [1, -2, 3, 2], 373 | [1, -1, 3, 2], 374 | [1, 0, 3, 2], 375 | [1, 1, 3, 2], 376 | [1, 2, 3, 2], 377 | [2, 3, 3, 2], 378 | [2, 4, 3, 2], 379 | [2, 5, 2, 2], 380 | [2, 6, 2, 2], 381 | [2, 7, 2, 2], 382 | [3, 8, 2, 2], 383 | [3, 9, 2, 2], 384 | [3, 10, 2, 2], 385 | [3, 10, 2, 2], 386 | [3, 10, 2, 2], 387 | [3, 10, 2, 2] 388 | ],[ 389 | [0, 0, 0, 0], 390 | [0, 0, 0, 0], 391 | [0, 0, 0, 0], 392 | [0, 0, 0, 0], 393 | [0, 0, 0, 0], 394 | [0, 0, 0, 0], 395 | [0, 0, 0, 0], 396 | [0, 0, 0, 0], 397 | [0, 0, 0, 0], 398 | [0, 0, 0, 0], 399 | [0, 0, 0, 0], 400 | [0, 0, 0, 0], 401 | [0, 0, 0, 0], 402 | [0, 0, 0, 0], 403 | [0, 0, 0, 0], 404 | [0, 0, 0, 0], 405 | [0, 0, 0, 0], 406 | [0, 0, 0, 0], 407 | [0, 0, 0, 0], 408 | [0, 0, 0, 0], 409 | [0, 0, 0, 0], 410 | [0, 0, 0, 0], 411 | [0, 0, 0, 0], 412 | [0, 0, 0, 0], 413 | [0, 0, 0, 0], 414 | [0, 0, 0, 0], 415 | [0, 0, 0, 0], 416 | [0, 0, 0, 0], 417 | [0, 0, 0, 0], 418 | [0, 0, 0, 0], 419 | [0, 0, 0, 0], 420 | [0, 0, 0, 0], 421 | [0, 0, 0, 0], 422 | [0, 0, 0, 0], 423 | [-1, -3, 0, 4], 424 | [-1, -2, 0, 4], 425 | [-1, -1, 0, 4], 426 | [-1, 0, 0, 4], 427 | [-1, 1, 0, 4], 428 | [-1, 2, 0, 4], 429 | [-1, 3, 0, 4], 430 | [-1, 4, 0, 4], 431 | [-1, 5, 0, 4], 432 | [-1, 6, 0, 4], 433 | [-1, 7, 0, 4], 434 | [-1, 8, 0, 4], 435 | [-1, 9, 0, 4] 436 | ] 437 | ] 438 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number5.json: -------------------------------------------------------------------------------- 1 | [ 2 | [5,3,4,7,6,2,3,4,2,6,8], 3 | [ 4 | [ 5 | [0, -3, 2, 3], 6 | [0, -2, 2, 3], 7 | [0, -1, 2, 3], 8 | [0, 0, 2, 3], 9 | [0, 1, 2, 3], 10 | [0, 2, 2, 3], 11 | [0, 3, 2, 3], 12 | [0, 4, 2, 3], 13 | [0, 5, 2, 3], 14 | [0, 6, 2, 3], 15 | [0, 7, 2, 3], 16 | [0, 8, 2, 3], 17 | [0, 9, 2, 3], 18 | [0, 10, 2, 3], 19 | [0, 11, 2, 3], 20 | [0, 12, 3, 3], 21 | [1, 13, 3, 3], 22 | [2, 14, 3, 3], 23 | [2, 15, 3, 3], 24 | [2, 16, 3, 3], 25 | [2, 17, 3, 3], 26 | [2, 17, 3, 3], 27 | [2, 17, 3, 3], 28 | [2, 17, 3, 3], 29 | [2, 17, 3, 3], 30 | [2, 17, 3, 3], 31 | [2, 17, 3, 3], 32 | [2, 17, 3, 3], 33 | [2, 17, 3, 3], 34 | [2, 17, 3, 3], 35 | [2, 17, 3, 3], 36 | [2, 17, 3, 3], 37 | [2, 17, 3, 3], 38 | [2, 17, 3, 3], 39 | [2, 17, 3, 3], 40 | [2, 17, 3, 3], 41 | [2, 17, 3, 3], 42 | [2, 17, 3, 3], 43 | [2, 17, 3, 3], 44 | [2, 17, 3, 3], 45 | [2, 17, 3, 3], 46 | [2, 17, 3, 3], 47 | [2, 17, 3, 3], 48 | [2, 17, 3, 3], 49 | [2, 17, 3, 3], 50 | [2, 17, 3, 3], 51 | [2, 17, 3, 3], 52 | [2, 17, 3, 3], 53 | [2, 17, 3, 3], 54 | [2, 17, 3, 3], 55 | [2, 17, 3, 3] 56 | ],[ 57 | [0, 0, 0, 0], 58 | [0, 0, 0, 0], 59 | [0, 0, 0, 0], 60 | [2, -3, 2, 3], 61 | [2, -2, 2, 3], 62 | [2, -1, 2, 3], 63 | [2, 0, 2, 3], 64 | [2, 1, 2, 3], 65 | [2, 2, 2, 3], 66 | [2, 3, 2, 3], 67 | [2, 4, 2, 3], 68 | [2, 5, 2, 3], 69 | [2, 6, 2, 3], 70 | [2, 7, 2, 3], 71 | [2, 8, 2, 3], 72 | [2, 9, 2, 3], 73 | [2, 10, 2, 3], 74 | [2, 11, 2, 3], 75 | [2, 12, 2, 3], 76 | [2, 13, 2, 3], 77 | [2, 14, 2, 3], 78 | [1, 15, 1, 3], 79 | [1, 16, 1, 3], 80 | [1, 17, 1, 3], 81 | [1, 17, 1, 3], 82 | [1, 17, 1, 3], 83 | [1, 17, 1, 3], 84 | [1, 17, 1, 3], 85 | [1, 17, 1, 3], 86 | [1, 17, 1, 3], 87 | [1, 17, 1, 3], 88 | [1, 17, 1, 3], 89 | [1, 17, 1, 3], 90 | [1, 17, 1, 3], 91 | [1, 17, 1, 3], 92 | [1, 17, 1, 3], 93 | [1, 17, 1, 3], 94 | [1, 17, 1, 3], 95 | [1, 17, 1, 3], 96 | [1, 17, 1, 3], 97 | [1, 17, 1, 3], 98 | [1, 17, 1, 3], 99 | [1, 17, 1, 3], 100 | [1, 17, 1, 3], 101 | [1, 17, 1, 3], 102 | [1, 17, 1, 3], 103 | [1, 17, 1, 3], 104 | [1, 17, 1, 3], 105 | [1, 17, 1, 3], 106 | [1, 17, 1, 3], 107 | [1, 17, 1, 3] 108 | ],[ 109 | [0, 0, 0, 0], 110 | [0, 0, 0, 0], 111 | [0, 0, 0, 0], 112 | [0, 0, 0, 0], 113 | [0, 0, 0, 0], 114 | [0, 0, 0, 0], 115 | [-1, -3, 0, 4], 116 | [-1, -2, 0, 4], 117 | [-1, -1, 0, 4], 118 | [-1, 0, 0, 4], 119 | [-1, 1, 0, 4], 120 | [-1, 2, 0, 4], 121 | [-1, 3, 0, 4], 122 | [-1, 4, 0, 4], 123 | [-1, 5, 0, 4], 124 | [-1, 6, 0, 4], 125 | [-1, 7, 0, 4], 126 | [-1, 8, 0, 4], 127 | [-1, 9, 0, 4], 128 | [-1, 10, 0, 4], 129 | [-1, 11, 0, 4], 130 | [-1, 12, 0, 4], 131 | [-1, 13, 0, 4], 132 | [-1, 14, 0, 4], 133 | [-1, 15, 0, 4], 134 | [-1, 16, 0, 4], 135 | [-1, 17, 0, 4], 136 | [-1, 17, 0, 4], 137 | [-1, 17, 0, 4], 138 | [-1, 17, 0, 4], 139 | [-1, 17, 0, 4], 140 | [-1, 17, 0, 4], 141 | [-1, 17, 0, 4], 142 | [-1, 17, 0, 4], 143 | [-1, 17, 0, 4], 144 | [-1, 17, 0, 4], 145 | [-1, 17, 0, 4], 146 | [-1, 17, 0, 4], 147 | [-1, 17, 0, 4], 148 | [-1, 17, 0, 4], 149 | [-1, 17, 0, 4], 150 | [-1, 17, 0, 4], 151 | [-1, 17, 0, 4], 152 | [-1, 17, 0, 4], 153 | [-1, 17, 0, 4], 154 | [-1, 17, 0, 4], 155 | [-1, 17, 0, 4], 156 | [-1, 17, 0, 4], 157 | [-1, 17, 0, 4], 158 | [-1, 17, 0, 4], 159 | [-1, 17, 0, 4] 160 | ],[ 161 | [0, 0, 0, 0], 162 | [0, 0, 0, 0], 163 | [0, 0, 0, 0], 164 | [0, 0, 0, 0], 165 | [0, 0, 0, 0], 166 | [0, 0, 0, 0], 167 | [0, 0, 0, 0], 168 | [0, 0, 0, 0], 169 | [0, 0, 0, 0], 170 | [0, 0, 0, 0], 171 | [0, 0, 0, 0], 172 | [3, -3, 0, 4], 173 | [3, -2, 0, 4], 174 | [3, -1, 0, 4], 175 | [3, 0, 0, 4], 176 | [3, 1, 0, 4], 177 | [3, 2, 0, 4], 178 | [3, 3, 0, 4], 179 | [3, 4, 0, 4], 180 | [3, 5, 0, 4], 181 | [3, 6, 0, 4], 182 | [3, 7, 0, 4], 183 | [3, 8, 0, 4], 184 | [3, 9, 0, 4], 185 | [3, 10, 0, 4], 186 | [3, 11, 0, 4], 187 | [3, 12, 0, 4], 188 | [3, 13, 0, 4], 189 | [3, 14, 0, 4], 190 | [3, 15, 0, 4], 191 | [3, 15, 0, 4], 192 | [3, 15, 0, 4], 193 | [3, 15, 0, 4], 194 | [3, 15, 0, 4], 195 | [3, 15, 0, 4], 196 | [3, 15, 0, 4], 197 | [3, 15, 0, 4], 198 | [3, 15, 0, 4], 199 | [3, 15, 0, 4], 200 | [3, 15, 0, 4], 201 | [3, 15, 0, 4], 202 | [3, 15, 0, 4], 203 | [3, 15, 0, 4], 204 | [3, 15, 0, 4], 205 | [3, 15, 0, 4], 206 | [3, 15, 0, 4], 207 | [3, 15, 0, 4], 208 | [3, 15, 0, 4], 209 | [3, 15, 0, 4], 210 | [3, 15, 0, 4], 211 | [3, 15, 0, 4] 212 | ],[ 213 | [0, 0, 0, 0], 214 | [0, 0, 0, 0], 215 | [0, 0, 0, 0], 216 | [0, 0, 0, 0], 217 | [0, 0, 0, 0], 218 | [0, 0, 0, 0], 219 | [0, 0, 0, 0], 220 | [0, 0, 0, 0], 221 | [0, 0, 0, 0], 222 | [0, 0, 0, 0], 223 | [0, 0, 0, 0], 224 | [0, 0, 0, 0], 225 | [0, 0, 0, 0], 226 | [0, 0, 0, 0], 227 | [0, 0, 0, 0], 228 | [0, 0, 0, 0], 229 | [0, -3, 2, 2], 230 | [0, -2, 2, 2], 231 | [0, -1, 2, 2], 232 | [0, 0, 2, 2], 233 | [0, 1, 2, 2], 234 | [0, 2, 2, 2], 235 | [0, 3, 0, 2], 236 | [0, 4, 0, 2], 237 | [0, 5, 0, 2], 238 | [0, 6, 0, 2], 239 | [0, 7, 0, 2], 240 | [1, 8, 0, 2], 241 | [1, 9, 1, 2], 242 | [1, 10, 1, 2], 243 | [1, 11, 1, 2], 244 | [1, 12, 1, 2], 245 | [1, 13, 1, 2], 246 | [1, 13, 1, 2], 247 | [1, 13, 1, 2], 248 | [1, 13, 1, 2], 249 | [1, 13, 1, 2], 250 | [1, 13, 1, 2], 251 | [1, 13, 1, 2], 252 | [1, 13, 1, 2], 253 | [1, 13, 1, 2], 254 | [1, 13, 1, 2], 255 | [1, 13, 1, 2], 256 | [1, 13, 1, 2], 257 | [1, 13, 1, 2], 258 | [1, 13, 1, 2], 259 | [1, 13, 1, 2], 260 | [1, 13, 1, 2], 261 | [1, 13, 1, 2], 262 | [1, 13, 1, 2], 263 | [1, 13, 1, 2] 264 | ],[ 265 | [0, 0, 0, 0], 266 | [0, 0, 0, 0], 267 | [0, 0, 0, 0], 268 | [0, 0, 0, 0], 269 | [0, 0, 0, 0], 270 | [0, 0, 0, 0], 271 | [0, 0, 0, 0], 272 | [0, 0, 0, 0], 273 | [0, 0, 0, 0], 274 | [0, 0, 0, 0], 275 | [0, 0, 0, 0], 276 | [0, 0, 0, 0], 277 | [0, 0, 0, 0], 278 | [0, 0, 0, 0], 279 | [0, 0, 0, 0], 280 | [0, 0, 0, 0], 281 | [0, 0, 0, 0], 282 | [0, 0, 0, 0], 283 | [0, 0, 0, 0], 284 | [0, 0, 0, 0], 285 | [2, -3, 2, 2], 286 | [2, -2, 2, 2], 287 | [2, -1, 2, 2], 288 | [2, 0, 2, 2], 289 | [2, 1, 2, 2], 290 | [2, 2, 2, 2], 291 | [2, 3, 2, 2], 292 | [2, 4, 2, 2], 293 | [1, 5, 2, 2], 294 | [1, 6, 2, 2], 295 | [1, 7, 2, 2], 296 | [1, 8, 2, 2], 297 | [1, 9, 2, 2], 298 | [1, 10, 3, 2], 299 | [2, 11, 3, 2], 300 | [2, 12, 3, 2], 301 | [2, 13, 3, 2], 302 | [2, 13, 3, 2], 303 | [2, 13, 3, 2], 304 | [2, 13, 3, 2], 305 | [2, 13, 3, 2], 306 | [2, 13, 3, 2], 307 | [2, 13, 3, 2], 308 | [2, 13, 3, 2], 309 | [2, 13, 3, 2], 310 | [2, 13, 3, 2], 311 | [2, 13, 3, 2], 312 | [2, 13, 3, 2], 313 | [2, 13, 3, 2], 314 | [2, 13, 3, 2], 315 | [2, 13, 3, 2] 316 | ],[ 317 | [0, 0, 0, 0], 318 | [0, 0, 0, 0], 319 | [0, 0, 0, 0], 320 | [0, 0, 0, 0], 321 | [0, 0, 0, 0], 322 | [0, 0, 0, 0], 323 | [0, 0, 0, 0], 324 | [0, 0, 0, 0], 325 | [0, 0, 0, 0], 326 | [0, 0, 0, 0], 327 | [0, 0, 0, 0], 328 | [0, 0, 0, 0], 329 | [0, 0, 0, 0], 330 | [0, 0, 0, 0], 331 | [0, 0, 0, 0], 332 | [0, 0, 0, 0], 333 | [0, 0, 0, 0], 334 | [0, 0, 0, 0], 335 | [0, 0, 0, 0], 336 | [0, 0, 0, 0], 337 | [0, 0, 0, 0], 338 | [0, 0, 0, 0], 339 | [0, 0, 0, 0], 340 | [0, -4, 1, 1], 341 | [0, -3, 1, 1], 342 | [0, -2, 1, 1], 343 | [0, -1, 1, 1], 344 | [0, 0, 1, 1], 345 | [-1, 1, 1, 1], 346 | [-1, 2, 1, 1], 347 | [-1, 3, 1, 1], 348 | [-1, 4, 1, 1], 349 | [-1, 5, 1, 1], 350 | [-1, 6, 1, 1], 351 | [-1, 7, 1, 1], 352 | [-1, 8, 1, 1], 353 | [-1, 9, 1, 1], 354 | [-1, 10, 1, 1], 355 | [-1, 11, 1, 1], 356 | [-1, 12, 1, 1], 357 | [-1, 12, 1, 1], 358 | [-1, 12, 1, 1], 359 | [-1, 12, 1, 1], 360 | [-1, 12, 1, 1], 361 | [-1, 12, 1, 1], 362 | [-1, 12, 1, 1], 363 | [-1, 12, 1, 1], 364 | [-1, 12, 1, 1], 365 | [-1, 12, 1, 1], 366 | [-1, 12, 1, 1], 367 | [-1, 12, 1, 1] 368 | ],[ 369 | [0, 0, 0, 0], 370 | [0, 0, 0, 0], 371 | [0, 0, 0, 0], 372 | [0, 0, 0, 0], 373 | [0, 0, 0, 0], 374 | [0, 0, 0, 0], 375 | [0, 0, 0, 0], 376 | [0, 0, 0, 0], 377 | [0, 0, 0, 0], 378 | [0, 0, 0, 0], 379 | [0, 0, 0, 0], 380 | [0, 0, 0, 0], 381 | [0, 0, 0, 0], 382 | [0, 0, 0, 0], 383 | [0, 0, 0, 0], 384 | [0, 0, 0, 0], 385 | [0, 0, 0, 0], 386 | [0, 0, 0, 0], 387 | [0, 0, 0, 0], 388 | [0, 0, 0, 0], 389 | [0, 0, 0, 0], 390 | [0, 0, 0, 0], 391 | [0, 0, 0, 0], 392 | [0, 0, 0, 0], 393 | [0, 0, 0, 0], 394 | [0, 0, 0, 0], 395 | [0, 0, 0, 0], 396 | [2, -3, 0, 1], 397 | [2, -2, 0, 1], 398 | [2, -1, 0, 1], 399 | [2, 0, 0, 1], 400 | [2, 1, 0, 1], 401 | [2, 2, 0, 1], 402 | [2, 3, 0, 1], 403 | [2, 4, 0, 1], 404 | [2, 5, 0, 1], 405 | [2, 6, 0, 1], 406 | [2, 7, 1, 1], 407 | [1, 8, 1, 1], 408 | [0, 9, 1, 1], 409 | [0, 10, 1, 1], 410 | [0, 11, 1, 1], 411 | [0, 12, 1, 1], 412 | [0, 12, 1, 1], 413 | [0, 12, 1, 1], 414 | [0, 12, 1, 1], 415 | [0, 12, 1, 1], 416 | [0, 12, 1, 1], 417 | [0, 12, 1, 1], 418 | [0, 12, 1, 1], 419 | [0, 12, 1, 1] 420 | ],[ 421 | [0, 0, 0, 0], 422 | [0, 0, 0, 0], 423 | [0, 0, 0, 0], 424 | [0, 0, 0, 0], 425 | [0, 0, 0, 0], 426 | [0, 0, 0, 0], 427 | [0, 0, 0, 0], 428 | [0, 0, 0, 0], 429 | [0, 0, 0, 0], 430 | [0, 0, 0, 0], 431 | [0, 0, 0, 0], 432 | [0, 0, 0, 0], 433 | [0, 0, 0, 0], 434 | [0, 0, 0, 0], 435 | [0, 0, 0, 0], 436 | [0, 0, 0, 0], 437 | [0, 0, 0, 0], 438 | [0, 0, 0, 0], 439 | [0, 0, 0, 0], 440 | [0, 0, 0, 0], 441 | [0, 0, 0, 0], 442 | [0, 0, 0, 0], 443 | [0, 0, 0, 0], 444 | [0, 0, 0, 0], 445 | [0, 0, 0, 0], 446 | [0, 0, 0, 0], 447 | [0, 0, 0, 0], 448 | [0, 0, 0, 0], 449 | [0, 0, 0, 0], 450 | [0, 0, 0, 0], 451 | [0, 0, 0, 0], 452 | [0, 0, 0, 0], 453 | [0, 0, 0, 0], 454 | [0, -3, 1, 2], 455 | [0, -2, 1, 2], 456 | [0, -1, 1, 2], 457 | [0, 0, 1, 2], 458 | [0, 1, 1, 2], 459 | [0, 2, 1, 2], 460 | [0, 3, 1, 2], 461 | [0, 4, 1, 2], 462 | [0, 5, 1, 2], 463 | [0, 6, 1, 2], 464 | [0, 7, 1, 2], 465 | [0, 8, 1, 2], 466 | [1, 9, 1, 2], 467 | [1, 9, 1, 2], 468 | [1, 9, 1, 2], 469 | [1, 9, 1, 2], 470 | [1, 9, 1, 2], 471 | [1, 9, 1, 2] 472 | ],[ 473 | [0, 0, 0, 0], 474 | [0, 0, 0, 0], 475 | [0, 0, 0, 0], 476 | [0, 0, 0, 0], 477 | [0, 0, 0, 0], 478 | [0, 0, 0, 0], 479 | [0, 0, 0, 0], 480 | [0, 0, 0, 0], 481 | [0, 0, 0, 0], 482 | [0, 0, 0, 0], 483 | [0, 0, 0, 0], 484 | [0, 0, 0, 0], 485 | [0, 0, 0, 0], 486 | [0, 0, 0, 0], 487 | [0, 0, 0, 0], 488 | [0, 0, 0, 0], 489 | [0, 0, 0, 0], 490 | [0, 0, 0, 0], 491 | [0, 0, 0, 0], 492 | [0, 0, 0, 0], 493 | [0, 0, 0, 0], 494 | [0, 0, 0, 0], 495 | [0, 0, 0, 0], 496 | [0, 0, 0, 0], 497 | [0, 0, 0, 0], 498 | [0, 0, 0, 0], 499 | [0, 0, 0, 0], 500 | [0, 0, 0, 0], 501 | [0, 0, 0, 0], 502 | [0, 0, 0, 0], 503 | [0, 0, 0, 0], 504 | [0, 0, 0, 0], 505 | [0, 0, 0, 0], 506 | [0, 0, 0, 0], 507 | [0, 0, 0, 0], 508 | [3, -3, 2, 2], 509 | [3, -2, 2, 2], 510 | [3, -1, 2, 2], 511 | [3, 0, 2, 2], 512 | [3, 1, 2, 2], 513 | [3, 2, 2, 2], 514 | [3, 3, 2, 2], 515 | [3, 4, 2, 2], 516 | [2, 5, 2, 2], 517 | [2, 6, 2, 2], 518 | [2, 7, 3, 2], 519 | [2, 8, 3, 2], 520 | [2, 9, 3, 2], 521 | [2, 9, 3, 2], 522 | [2, 9, 3, 2], 523 | [2, 9, 3, 2] 524 | ],[ 525 | [0, 0, 0, 0], 526 | [0, 0, 0, 0], 527 | [0, 0, 0, 0], 528 | [0, 0, 0, 0], 529 | [0, 0, 0, 0], 530 | [0, 0, 0, 0], 531 | [0, 0, 0, 0], 532 | [0, 0, 0, 0], 533 | [0, 0, 0, 0], 534 | [0, 0, 0, 0], 535 | [0, 0, 0, 0], 536 | [0, 0, 0, 0], 537 | [0, 0, 0, 0], 538 | [0, 0, 0, 0], 539 | [0, 0, 0, 0], 540 | [0, 0, 0, 0], 541 | [0, 0, 0, 0], 542 | [0, 0, 0, 0], 543 | [0, 0, 0, 0], 544 | [0, 0, 0, 0], 545 | [0, 0, 0, 0], 546 | [0, 0, 0, 0], 547 | [0, 0, 0, 0], 548 | [0, 0, 0, 0], 549 | [0, 0, 0, 0], 550 | [0, 0, 0, 0], 551 | [0, 0, 0, 0], 552 | [0, 0, 0, 0], 553 | [0, 0, 0, 0], 554 | [0, 0, 0, 0], 555 | [0, 0, 0, 0], 556 | [0, 0, 0, 0], 557 | [0, 0, 0, 0], 558 | [0, 0, 0, 0], 559 | [0, 0, 0, 0], 560 | [0, 0, 0, 0], 561 | [0, 0, 0, 0], 562 | [0, 0, 0, 0], 563 | [-1, -3, 0, 4], 564 | [-1, -2, 0, 4], 565 | [-1, -1, 0, 4], 566 | [-1, 0, 0, 4], 567 | [-1, 1, 0, 4], 568 | [-1, 2, 0, 4], 569 | [-1, 3, 0, 4], 570 | [-1, 4, 0, 4], 571 | [-1, 5, 0, 4], 572 | [-1, 6, 0, 4], 573 | [-1, 7, 0, 4], 574 | [-1, 8, 0, 4], 575 | [-1, 9, 0, 4] 576 | ] 577 | ] 578 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number7.json: -------------------------------------------------------------------------------- 1 | [ 2 | [3,6,4,7,5,2,3], 3 | [ 4 | [ 5 | [2, -3, 0, 4], 6 | [2, -2, 0, 4], 7 | [2, -1, 0, 4], 8 | [2, 0, 0, 4], 9 | [2, 1, 0, 4], 10 | [2, 2, 0, 4], 11 | [2, 3, 0, 4], 12 | [2, 4, 0, 4], 13 | [2, 5, 0, 4], 14 | [2, 6, 0, 4], 15 | [2, 7, 0, 4], 16 | [2, 8, 0, 4], 17 | [2, 9, 0, 4], 18 | [2, 10, 0, 4], 19 | [2, 11, 0, 4], 20 | [2, 12, 0, 4], 21 | [2, 13, 0, 4], 22 | [2, 14, 0, 4], 23 | [2, 15, 0, 4], 24 | [3, 15, 0, 4], 25 | [3, 16, 0, 4], 26 | [3, 17, 0, 4], 27 | [3, 17, 0, 4], 28 | [3, 17, 0, 4], 29 | [3, 17, 0, 4], 30 | [3, 17, 0, 4], 31 | [3, 17, 0, 4], 32 | [3, 17, 0, 4], 33 | [3, 17, 0, 4], 34 | [3, 17, 0, 4], 35 | [3, 17, 0, 4], 36 | [3, 17, 0, 4], 37 | [3, 17, 0, 4], 38 | [3, 17, 0, 4], 39 | [3, 17, 0, 4], 40 | [3, 17, 0, 4], 41 | [3, 17, 0, 4], 42 | [3, 17, 0, 4] 43 | ],[ 44 | [0, 0, 0, 0], 45 | [0, 0, 0, 0], 46 | [0, 0, 0, 0], 47 | [0, 0, 0, 0], 48 | [0, 0, 0, 0], 49 | [1, -3, 0, 2], 50 | [1, -2, 0, 2], 51 | [1, -1, 0, 2], 52 | [1, 0, 0, 2], 53 | [1, 1, 0, 2], 54 | [1, 2, 0, 2], 55 | [1, 3, 0, 2], 56 | [1, 4, 0, 2], 57 | [1, 5, 0, 2], 58 | [1, 6, 0, 2], 59 | [1, 7, 0, 2], 60 | [1, 8, 0, 2], 61 | [1, 9, 0, 2], 62 | [1, 10, 0, 2], 63 | [1, 11, 0, 2], 64 | [2, 12, 0, 2], 65 | [3, 13, 0, 2], 66 | [3, 14, 0, 2], 67 | [3, 15, 0, 2], 68 | [3, 15, 0, 2], 69 | [3, 15, 0, 2], 70 | [3, 15, 0, 2], 71 | [3, 15, 0, 2], 72 | [3, 15, 0, 2], 73 | [3, 15, 0, 2], 74 | [3, 15, 0, 2], 75 | [3, 15, 0, 2], 76 | [3, 15, 0, 2], 77 | [3, 15, 0, 2], 78 | [3, 15, 0, 2], 79 | [3, 15, 0, 2], 80 | [3, 15, 0, 2], 81 | [3, 15, 0, 2] 82 | ],[ 83 | [0, 0, 0, 0], 84 | [0, 0, 0, 0], 85 | [0, 0, 0, 0], 86 | [0, 0, 0, 0], 87 | [0, 0, 0, 0], 88 | [0, 0, 0, 0], 89 | [0, 0, 0, 0], 90 | [0, 0, 0, 0], 91 | [0, 0, 0, 0], 92 | [0, 0, 0, 0], 93 | [0, -3, 3, 2], 94 | [1, -2, 3, 2], 95 | [1, -1, 3, 2], 96 | [1, 0, 3, 2], 97 | [1, 1, 3, 2], 98 | [1, 2, 3, 2], 99 | [1, 3, 3, 2], 100 | [1, 4, 3, 2], 101 | [1, 5, 3, 2], 102 | [1, 6, 3, 2], 103 | [1, 7, 3, 2], 104 | [1, 8, 3, 2], 105 | [1, 9, 2, 2], 106 | [2, 10, 2, 2], 107 | [3, 11, 2, 2], 108 | [3, 12, 2, 2], 109 | [3, 13, 2, 2], 110 | [3, 14, 2, 2], 111 | [3, 14, 2, 2], 112 | [3, 14, 2, 2], 113 | [3, 14, 2, 2], 114 | [3, 14, 2, 2], 115 | [3, 14, 2, 2], 116 | [3, 14, 2, 2], 117 | [3, 14, 2, 2], 118 | [3, 14, 2, 2], 119 | [3, 14, 2, 2], 120 | [3, 14, 2, 2] 121 | ],[ 122 | [0, 0, 0, 0], 123 | [0, 0, 0, 0], 124 | [0, 0, 0, 0], 125 | [0, 0, 0, 0], 126 | [0, 0, 0, 0], 127 | [0, 0, 0, 0], 128 | [0, 0, 0, 0], 129 | [0, 0, 0, 0], 130 | [0, 0, 0, 0], 131 | [0, 0, 0, 0], 132 | [0, 0, 0, 0], 133 | [0, 0, 0, 0], 134 | [0, 0, 0, 0], 135 | [0, 0, 0, 0], 136 | [1, -3, 0, 4], 137 | [1, -2, 0, 4], 138 | [1, -1, 0, 4], 139 | [1, 0, 0, 4], 140 | [1, 1, 0, 4], 141 | [1, 2, 0, 4], 142 | [1, 3, 0, 4], 143 | [1, 4, 0, 4], 144 | [1, 5, 0, 4], 145 | [1, 6, 0, 4], 146 | [2, 7, 0, 4], 147 | [2, 8, 0, 4], 148 | [3, 9, 0, 4], 149 | [3, 10, 0, 4], 150 | [3, 11, 0, 4], 151 | [3, 11, 0, 4], 152 | [3, 11, 0, 4], 153 | [3, 11, 0, 4], 154 | [3, 11, 0, 4], 155 | [3, 11, 0, 4], 156 | [3, 11, 0, 4], 157 | [3, 11, 0, 4], 158 | [3, 11, 0, 4], 159 | [3, 11, 0, 4] 160 | ],[ 161 | [0, 0, 0, 0], 162 | [0, 0, 0, 0], 163 | [0, 0, 0, 0], 164 | [0, 0, 0, 0], 165 | [0, 0, 0, 0], 166 | [0, 0, 0, 0], 167 | [0, 0, 0, 0], 168 | [0, 0, 0, 0], 169 | [0, 0, 0, 0], 170 | [0, 0, 0, 0], 171 | [0, 0, 0, 0], 172 | [0, 0, 0, 0], 173 | [0, 0, 0, 0], 174 | [0, 0, 0, 0], 175 | [0, 0, 0, 0], 176 | [0, 0, 0, 0], 177 | [0, 0, 0, 0], 178 | [0, 0, 0, 0], 179 | [0, -4, 1, 1], 180 | [0, -3, 1, 1], 181 | [0, -2, 1, 1], 182 | [0, -1, 1, 1], 183 | [0, 0, 1, 1], 184 | [0, 1, 1, 1], 185 | [0, 2, 1, 1], 186 | [0, 3, 1, 1], 187 | [0, 4, 1, 1], 188 | [1, 5, 1, 1], 189 | [1, 6, 1, 1], 190 | [1, 7, 0, 1], 191 | [1, 8, 0, 1], 192 | [1, 9, 0, 1], 193 | [1, 9, 0, 1], 194 | [1, 9, 0, 1], 195 | [1, 9, 0, 1], 196 | [1, 9, 0, 1], 197 | [1, 9, 0, 1], 198 | [1, 9, 0, 1] 199 | ],[ 200 | [0, 0, 0, 0], 201 | [0, 0, 0, 0], 202 | [0, 0, 0, 0], 203 | [0, 0, 0, 0], 204 | [0, 0, 0, 0], 205 | [0, 0, 0, 0], 206 | [0, 0, 0, 0], 207 | [0, 0, 0, 0], 208 | [0, 0, 0, 0], 209 | [0, 0, 0, 0], 210 | [0, 0, 0, 0], 211 | [0, 0, 0, 0], 212 | [0, 0, 0, 0], 213 | [0, 0, 0, 0], 214 | [0, 0, 0, 0], 215 | [0, 0, 0, 0], 216 | [0, 0, 0, 0], 217 | [0, 0, 0, 0], 218 | [0, 0, 0, 0], 219 | [0, 0, 0, 0], 220 | [0, 0, 0, 0], 221 | [0, 0, 0, 0], 222 | [2, -3, 3, 2], 223 | [2, -2, 3, 2], 224 | [2, -1, 3, 2], 225 | [2, 0, 3, 2], 226 | [2, 1, 3, 2], 227 | [2, 2, 3, 2], 228 | [2, 3, 3, 2], 229 | [2, 4, 3, 2], 230 | [2, 5, 3, 2], 231 | [2, 6, 3, 2], 232 | [2, 7, 3, 2], 233 | [2, 8, 3, 2], 234 | [2, 9, 3, 2], 235 | [2, 9, 3, 2], 236 | [2, 9, 3, 2], 237 | [2, 9, 3, 2] 238 | ],[ 239 | [0, 0, 0, 0], 240 | [0, 0, 0, 0], 241 | [0, 0, 0, 0], 242 | [0, 0, 0, 0], 243 | [0, 0, 0, 0], 244 | [0, 0, 0, 0], 245 | [0, 0, 0, 0], 246 | [0, 0, 0, 0], 247 | [0, 0, 0, 0], 248 | [0, 0, 0, 0], 249 | [0, 0, 0, 0], 250 | [0, 0, 0, 0], 251 | [0, 0, 0, 0], 252 | [0, 0, 0, 0], 253 | [0, 0, 0, 0], 254 | [0, 0, 0, 0], 255 | [0, 0, 0, 0], 256 | [0, 0, 0, 0], 257 | [0, 0, 0, 0], 258 | [0, 0, 0, 0], 259 | [0, 0, 0, 0], 260 | [0, 0, 0, 0], 261 | [0, 0, 0, 0], 262 | [0, 0, 0, 0], 263 | [0, 0, 0, 0], 264 | [-1, -3, 2, 3], 265 | [-1, -2, 2, 3], 266 | [-1, -1, 2, 3], 267 | [-1, 0, 2, 3], 268 | [-1, 1, 2, 3], 269 | [-1, 2, 2, 3], 270 | [-1, 3, 2, 3], 271 | [-1, 4, 2, 3], 272 | [-1, 5, 2, 3], 273 | [-1, 6, 1, 3], 274 | [-1, 7, 1, 3], 275 | [-1, 8, 1, 3], 276 | [-1, 9, 1, 3] 277 | ] 278 | ] 279 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/numbers/tetris_number9.json: -------------------------------------------------------------------------------- 1 | [ 2 | [3,4,7,8,5,6,3,4,6,7,8,2], 3 | [ 4 | [ 5 | [1, -3, 3, 3], 6 | [1, -2, 3, 3], 7 | [1, -1, 3, 3], 8 | [1, 0, 3, 3], 9 | [1, 1, 3, 3], 10 | [1, 2, 3, 3], 11 | [1, 3, 3, 3], 12 | [1, 4, 3, 3], 13 | [1, 5, 3, 3], 14 | [1, 6, 3, 3], 15 | [1, 7, 3, 3], 16 | [1, 8, 3, 3], 17 | [1, 9, 3, 3], 18 | [1, 10, 3, 3], 19 | [1, 11, 3, 3], 20 | [1, 12, 3, 3], 21 | [1, 13, 3, 3], 22 | [1, 14, 3, 3], 23 | [1, 15, 3, 3], 24 | [2, 16, 3, 3], 25 | [2, 17, 3, 3], 26 | [2, 17, 3, 3], 27 | [2, 17, 3, 3], 28 | [2, 17, 3, 3], 29 | [2, 17, 3, 3], 30 | [2, 17, 3, 3], 31 | [2, 17, 3, 3], 32 | [2, 17, 3, 3], 33 | [2, 17, 3, 3], 34 | [2, 17, 3, 3], 35 | [2, 17, 3, 3], 36 | [2, 17, 3, 3], 37 | [2, 17, 3, 3], 38 | [2, 17, 3, 3], 39 | [2, 17, 3, 3], 40 | [2, 17, 3, 3], 41 | [2, 17, 3, 3], 42 | [2, 17, 3, 3], 43 | [2, 17, 3, 3], 44 | [2, 17, 3, 3], 45 | [2, 17, 3, 3], 46 | [2, 17, 3, 3], 47 | [2, 17, 3, 3], 48 | [2, 17, 3, 3], 49 | [2, 17, 3, 3], 50 | [2, 17, 3, 3], 51 | [2, 17, 3, 3], 52 | [2, 17, 3, 3], 53 | [2, 17, 3, 3], 54 | [2, 17, 3, 3], 55 | [2, 17, 3, 3], 56 | [2, 17, 3, 3], 57 | [2, 17, 3, 3] 58 | ],[ 59 | [0, 0, 0, 0], 60 | [0, 0, 0, 0], 61 | [0, 0, 0, 0], 62 | [2, -3, 1, 3], 63 | [2, -2, 1, 3], 64 | [2, -1, 1, 3], 65 | [2, 0, 1, 3], 66 | [2, 1, 1, 3], 67 | [2, 2, 1, 3], 68 | [2, 3, 1, 3], 69 | [2, 4, 1, 3], 70 | [2, 5, 1, 3], 71 | [2, 6, 1, 3], 72 | [2, 7, 1, 3], 73 | [2, 8, 1, 3], 74 | [2, 9, 1, 3], 75 | [2, 10, 1, 3], 76 | [2, 11, 1, 3], 77 | [2, 12, 1, 3], 78 | [2, 13, 1, 3], 79 | [2, 14, 1, 3], 80 | [2, 15, 1, 3], 81 | [1, 16, 1, 3], 82 | [1, 17, 1, 3], 83 | [1, 17, 1, 3], 84 | [1, 17, 1, 3], 85 | [1, 17, 1, 3], 86 | [1, 17, 1, 3], 87 | [1, 17, 1, 3], 88 | [1, 17, 1, 3], 89 | [1, 17, 1, 3], 90 | [1, 17, 1, 3], 91 | [1, 17, 1, 3], 92 | [1, 17, 1, 3], 93 | [1, 17, 1, 3], 94 | [1, 17, 1, 3], 95 | [1, 17, 1, 3], 96 | [1, 17, 1, 3], 97 | [1, 17, 1, 3], 98 | [1, 17, 1, 3], 99 | [1, 17, 1, 3], 100 | [1, 17, 1, 3], 101 | [1, 17, 1, 3], 102 | [1, 17, 1, 3], 103 | [1, 17, 1, 3], 104 | [1, 17, 1, 3], 105 | [1, 17, 1, 3], 106 | [1, 17, 1, 3], 107 | [1, 17, 1, 3], 108 | [1, 17, 1, 3], 109 | [1, 17, 1, 3], 110 | [1, 17, 1, 3], 111 | [1, 17, 1, 3] 112 | ],[ 113 | [0, 0, 0, 0], 114 | [0, 0, 0, 0], 115 | [0, 0, 0, 0], 116 | [0, 0, 0, 0], 117 | [0, 0, 0, 0], 118 | [0, 0, 0, 0], 119 | [0, -3, 0, 4], 120 | [0, -2, 0, 4], 121 | [0, -1, 0, 4], 122 | [0, 0, 0, 4], 123 | [0, 1, 0, 4], 124 | [0, 2, 0, 4], 125 | [0, 3, 0, 4], 126 | [0, 4, 0, 4], 127 | [0, 5, 0, 4], 128 | [0, 6, 0, 4], 129 | [0, 7, 0, 4], 130 | [0, 8, 0, 4], 131 | [0, 9, 0, 4], 132 | [0, 10, 0, 4], 133 | [0, 11, 0, 4], 134 | [-1, 12, 0, 4], 135 | [-1, 13, 0, 4], 136 | [-1, 14, 0, 4], 137 | [-1, 15, 0, 4], 138 | [-1, 16, 0, 4], 139 | [-1, 17, 0, 4], 140 | [-1, 17, 0, 4], 141 | [-1, 17, 0, 4], 142 | [-1, 17, 0, 4], 143 | [-1, 17, 0, 4], 144 | [-1, 17, 0, 4], 145 | [-1, 17, 0, 4], 146 | [-1, 17, 0, 4], 147 | [-1, 17, 0, 4], 148 | [-1, 17, 0, 4], 149 | [-1, 17, 0, 4], 150 | [-1, 17, 0, 4], 151 | [-1, 17, 0, 4], 152 | [-1, 17, 0, 4], 153 | [-1, 17, 0, 4], 154 | [-1, 17, 0, 4], 155 | [-1, 17, 0, 4], 156 | [-1, 17, 0, 4], 157 | [-1, 17, 0, 4], 158 | [-1, 17, 0, 4], 159 | [-1, 17, 0, 4], 160 | [-1, 17, 0, 4], 161 | [-1, 17, 0, 4], 162 | [-1, 17, 0, 4], 163 | [-1, 17, 0, 4], 164 | [-1, 17, 0, 4], 165 | [-1, 17, 0, 4] 166 | ],[ 167 | [0, 0, 0, 0], 168 | [0, 0, 0, 0], 169 | [0, 0, 0, 0], 170 | [0, 0, 0, 0], 171 | [0, 0, 0, 0], 172 | [0, 0, 0, 0], 173 | [0, 0, 0, 0], 174 | [0, 0, 0, 0], 175 | [0, 0, 0, 0], 176 | [0, 0, 0, 0], 177 | [0, 0, 0, 0], 178 | [1, -3, 0, 4], 179 | [1, -2, 0, 4], 180 | [1, -1, 0, 4], 181 | [1, 0, 0, 4], 182 | [1, 1, 0, 4], 183 | [1, 2, 0, 4], 184 | [1, 3, 0, 4], 185 | [1, 4, 0, 4], 186 | [1, 5, 0, 4], 187 | [1, 6, 0, 4], 188 | [1, 7, 0, 4], 189 | [1, 8, 0, 4], 190 | [1, 9, 0, 4], 191 | [1, 10, 0, 4], 192 | [1, 11, 0, 4], 193 | [1, 12, 0, 4], 194 | [2, 13, 0, 4], 195 | [3, 14, 0, 4], 196 | [3, 15, 0, 4], 197 | [3, 15, 0, 4], 198 | [3, 15, 0, 4], 199 | [3, 15, 0, 4], 200 | [3, 15, 0, 4], 201 | [3, 15, 0, 4], 202 | [3, 15, 0, 4], 203 | [3, 15, 0, 4], 204 | [3, 15, 0, 4], 205 | [3, 15, 0, 4], 206 | [3, 15, 0, 4], 207 | [3, 15, 0, 4], 208 | [3, 15, 0, 4], 209 | [3, 15, 0, 4], 210 | [3, 15, 0, 4], 211 | [3, 15, 0, 4], 212 | [3, 15, 0, 4], 213 | [3, 15, 0, 4], 214 | [3, 15, 0, 4], 215 | [3, 15, 0, 4], 216 | [3, 15, 0, 4], 217 | [3, 15, 0, 4], 218 | [3, 15, 0, 4], 219 | [3, 15, 0, 4] 220 | ],[ 221 | [0, 0, 0, 0], 222 | [0, 0, 0, 0], 223 | [0, 0, 0, 0], 224 | [0, 0, 0, 0], 225 | [0, 0, 0, 0], 226 | [0, 0, 0, 0], 227 | [0, 0, 0, 0], 228 | [0, 0, 0, 0], 229 | [0, 0, 0, 0], 230 | [0, 0, 0, 0], 231 | [0, 0, 0, 0], 232 | [0, 0, 0, 0], 233 | [0, 0, 0, 0], 234 | [0, 0, 0, 0], 235 | [0, 0, 0, 0], 236 | [2, -3, 1, 2], 237 | [2, -2, 1, 2], 238 | [2, -1, 1, 2], 239 | [2, 0, 1, 2], 240 | [2, 1, 1, 2], 241 | [2, 2, 1, 2], 242 | [2, 3, 1, 2], 243 | [2, 4, 1, 2], 244 | [2, 5, 1, 2], 245 | [2, 6, 1, 2], 246 | [2, 7, 1, 2], 247 | [2, 8, 1, 2], 248 | [2, 9, 1, 2], 249 | [2, 10, 1, 2], 250 | [2, 11, 0, 2], 251 | [3, 12, 0, 2], 252 | [3, 13, 0, 2], 253 | [3, 13, 0, 2], 254 | [3, 13, 0, 2], 255 | [3, 13, 0, 2], 256 | [3, 13, 0, 2], 257 | [3, 13, 0, 2], 258 | [3, 13, 0, 2], 259 | [3, 13, 0, 2], 260 | [3, 13, 0, 2], 261 | [3, 13, 0, 2], 262 | [3, 13, 0, 2], 263 | [3, 13, 0, 2], 264 | [3, 13, 0, 2], 265 | [3, 13, 0, 2], 266 | [3, 13, 0, 2], 267 | [3, 13, 0, 2], 268 | [3, 13, 0, 2], 269 | [3, 13, 0, 2], 270 | [3, 13, 0, 2], 271 | [3, 13, 0, 2], 272 | [3, 13, 0, 2], 273 | [3, 13, 0, 2] 274 | ],[ 275 | [0, 0, 0, 0], 276 | [0, 0, 0, 0], 277 | [0, 0, 0, 0], 278 | [0, 0, 0, 0], 279 | [0, 0, 0, 0], 280 | [0, 0, 0, 0], 281 | [0, 0, 0, 0], 282 | [0, 0, 0, 0], 283 | [0, 0, 0, 0], 284 | [0, 0, 0, 0], 285 | [0, 0, 0, 0], 286 | [0, 0, 0, 0], 287 | [0, 0, 0, 0], 288 | [0, 0, 0, 0], 289 | [0, 0, 0, 0], 290 | [0, 0, 0, 0], 291 | [0, 0, 0, 0], 292 | [0, 0, 0, 0], 293 | [-1, -3, 0, 3], 294 | [-1, -2, 0, 3], 295 | [-1, -1, 0, 3], 296 | [-1, 0, 0, 3], 297 | [-1, 1, 0, 3], 298 | [-1, 2, 0, 3], 299 | [-1, 3, 0, 3], 300 | [-1, 4, 0, 3], 301 | [-1, 5, 0, 3], 302 | [-1, 6, 0, 3], 303 | [-1, 7, 0, 3], 304 | [-1, 8, 0, 3], 305 | [-1, 9, 0, 3], 306 | [-1, 10, 0, 3], 307 | [-1, 11, 0, 3], 308 | [-1, 12, 0, 3], 309 | [-1, 13, 0, 3], 310 | [-1, 13, 0, 3], 311 | [-1, 13, 0, 3], 312 | [-1, 13, 0, 3], 313 | [-1, 13, 0, 3], 314 | [-1, 13, 0, 3], 315 | [-1, 13, 0, 3], 316 | [-1, 13, 0, 3], 317 | [-1, 13, 0, 3], 318 | [-1, 13, 0, 3], 319 | [-1, 13, 0, 3], 320 | [-1, 13, 0, 3], 321 | [-1, 13, 0, 3], 322 | [-1, 13, 0, 3], 323 | [-1, 13, 0, 3], 324 | [-1, 13, 0, 3], 325 | [-1, 13, 0, 3], 326 | [-1, 13, 0, 3], 327 | [-1, 13, 0, 3] 328 | ],[ 329 | [0, 0, 0, 0], 330 | [0, 0, 0, 0], 331 | [0, 0, 0, 0], 332 | [0, 0, 0, 0], 333 | [0, 0, 0, 0], 334 | [0, 0, 0, 0], 335 | [0, 0, 0, 0], 336 | [0, 0, 0, 0], 337 | [0, 0, 0, 0], 338 | [0, 0, 0, 0], 339 | [0, 0, 0, 0], 340 | [0, 0, 0, 0], 341 | [0, 0, 0, 0], 342 | [0, 0, 0, 0], 343 | [0, 0, 0, 0], 344 | [0, 0, 0, 0], 345 | [0, 0, 0, 0], 346 | [0, 0, 0, 0], 347 | [0, 0, 0, 0], 348 | [0, 0, 0, 0], 349 | [2, -3, 1, 6], 350 | [2, -2, 1, 6], 351 | [2, -1, 1, 6], 352 | [2, 0, 1, 6], 353 | [2, 1, 1, 6], 354 | [2, 2, 1, 6], 355 | [2, 3, 1, 6], 356 | [2, 4, 1, 6], 357 | [2, 5, 1, 6], 358 | [2, 6, 1, 6], 359 | [2, 7, 1, 6], 360 | [2, 8, 1, 6], 361 | [2, 9, 1, 6], 362 | [1, 10, 1, 6], 363 | [1, 11, 0, 6], 364 | [1, 12, 0, 6], 365 | [1, 13, 0, 6], 366 | [1, 13, 0, 6], 367 | [1, 13, 0, 6], 368 | [1, 13, 0, 6], 369 | [1, 13, 0, 6], 370 | [1, 13, 0, 6], 371 | [1, 13, 0, 6], 372 | [1, 13, 0, 6], 373 | [1, 13, 0, 6], 374 | [1, 13, 0, 6], 375 | [1, 13, 0, 6], 376 | [1, 13, 0, 6], 377 | [1, 13, 0, 6], 378 | [1, 13, 0, 6], 379 | [1, 13, 0, 6], 380 | [1, 13, 0, 6], 381 | [1, 13, 0, 6] 382 | ],[ 383 | [0, 0, 0, 0], 384 | [0, 0, 0, 0], 385 | [0, 0, 0, 0], 386 | [0, 0, 0, 0], 387 | [0, 0, 0, 0], 388 | [0, 0, 0, 0], 389 | [0, 0, 0, 0], 390 | [0, 0, 0, 0], 391 | [0, 0, 0, 0], 392 | [0, 0, 0, 0], 393 | [0, 0, 0, 0], 394 | [0, 0, 0, 0], 395 | [0, 0, 0, 0], 396 | [0, 0, 0, 0], 397 | [0, 0, 0, 0], 398 | [0, 0, 0, 0], 399 | [0, 0, 0, 0], 400 | [0, 0, 0, 0], 401 | [0, 0, 0, 0], 402 | [0, 0, 0, 0], 403 | [0, 0, 0, 0], 404 | [0, 0, 0, 0], 405 | [0, 0, 0, 0], 406 | [0, 0, 0, 0], 407 | [0, 0, 0, 0], 408 | [0, -3, 1, 3], 409 | [0, -2, 1, 3], 410 | [0, -1, 1, 3], 411 | [0, 0, 1, 3], 412 | [0, 1, 1, 3], 413 | [0, 2, 1, 3], 414 | [0, 3, 1, 3], 415 | [0, 4, 1, 3], 416 | [0, 5, 1, 3], 417 | [0, 6, 1, 3], 418 | [0, 7, 1, 3], 419 | [0, 8, 1, 3], 420 | [0, 9, 1, 3], 421 | [0, 10, 0, 3], 422 | [0, 11, 0, 3], 423 | [0, 12, 0, 3], 424 | [0, 12, 0, 3], 425 | [0, 12, 0, 3], 426 | [0, 12, 0, 3], 427 | [0, 12, 0, 3], 428 | [0, 12, 0, 3], 429 | [0, 12, 0, 3], 430 | [0, 12, 0, 3], 431 | [0, 12, 0, 3], 432 | [0, 12, 0, 3], 433 | [0, 12, 0, 3], 434 | [0, 12, 0, 3], 435 | [0, 12, 0, 3] 436 | ],[ 437 | [0, 0, 0, 0], 438 | [0, 0, 0, 0], 439 | [0, 0, 0, 0], 440 | [0, 0, 0, 0], 441 | [0, 0, 0, 0], 442 | [0, 0, 0, 0], 443 | [0, 0, 0, 0], 444 | [0, 0, 0, 0], 445 | [0, 0, 0, 0], 446 | [0, 0, 0, 0], 447 | [0, 0, 0, 0], 448 | [0, 0, 0, 0], 449 | [0, 0, 0, 0], 450 | [0, 0, 0, 0], 451 | [0, 0, 0, 0], 452 | [0, 0, 0, 0], 453 | [0, 0, 0, 0], 454 | [0, 0, 0, 0], 455 | [0, 0, 0, 0], 456 | [0, 0, 0, 0], 457 | [0, 0, 0, 0], 458 | [0, 0, 0, 0], 459 | [0, 0, 0, 0], 460 | [0, 0, 0, 0], 461 | [0, 0, 0, 0], 462 | [0, 0, 0, 0], 463 | [0, 0, 0, 0], 464 | [0, 0, 0, 0], 465 | [0, 0, 0, 0], 466 | [2, -3, 0, 7], 467 | [2, -2, 0, 7], 468 | [2, -1, 0, 7], 469 | [2, 0, 0, 7], 470 | [2, 1, 0, 7], 471 | [2, 2, 0, 7], 472 | [2, 3, 0, 7], 473 | [2, 4, 0, 7], 474 | [2, 5, 0, 7], 475 | [2, 6, 0, 7], 476 | [2, 7, 0, 7], 477 | [2, 8, 1, 7], 478 | [3, 9, 1, 7], 479 | [3, 10, 1, 7], 480 | [3, 11, 1, 7], 481 | [3, 11, 1, 7], 482 | [3, 11, 1, 7], 483 | [3, 11, 1, 7], 484 | [3, 11, 1, 7], 485 | [3, 11, 1, 7], 486 | [3, 11, 1, 7], 487 | [3, 11, 1, 7], 488 | [3, 11, 1, 7], 489 | [3, 11, 1, 7] 490 | ],[ 491 | [0, 0, 0, 0], 492 | [0, 0, 0, 0], 493 | [0, 0, 0, 0], 494 | [0, 0, 0, 0], 495 | [0, 0, 0, 0], 496 | [0, 0, 0, 0], 497 | [0, 0, 0, 0], 498 | [0, 0, 0, 0], 499 | [0, 0, 0, 0], 500 | [0, 0, 0, 0], 501 | [0, 0, 0, 0], 502 | [0, 0, 0, 0], 503 | [0, 0, 0, 0], 504 | [0, 0, 0, 0], 505 | [0, 0, 0, 0], 506 | [0, 0, 0, 0], 507 | [0, 0, 0, 0], 508 | [0, 0, 0, 0], 509 | [0, 0, 0, 0], 510 | [0, 0, 0, 0], 511 | [0, 0, 0, 0], 512 | [0, 0, 0, 0], 513 | [0, 0, 0, 0], 514 | [0, 0, 0, 0], 515 | [0, 0, 0, 0], 516 | [0, 0, 0, 0], 517 | [0, 0, 0, 0], 518 | [0, 0, 0, 0], 519 | [0, 0, 0, 0], 520 | [0, 0, 0, 0], 521 | [0, 0, 0, 0], 522 | [0, 0, 0, 0], 523 | [0, 0, 0, 0], 524 | [-2, -3, 1, 5], 525 | [-2, -2, 1, 5], 526 | [-2, -1, 1, 5], 527 | [-2, 0, 1, 5], 528 | [-2, 1, 1, 5], 529 | [-2, 2, 1, 5], 530 | [-2, 3, 1, 5], 531 | [-2, 4, 1, 5], 532 | [-2, 5, 1, 5], 533 | [-2, 6, 1, 5], 534 | [-2, 7, 1, 5], 535 | [-2, 8, 1, 5], 536 | [-2, 9, 1, 5], 537 | [-2, 10, 1, 5], 538 | [-2, 10, 1, 5], 539 | [-2, 10, 1, 5], 540 | [-2, 10, 1, 5], 541 | [-2, 10, 1, 5], 542 | [-2, 10, 1, 5], 543 | [-2, 10, 1, 5] 544 | ],[ 545 | [0, 0, 0, 0], 546 | [0, 0, 0, 0], 547 | [0, 0, 0, 0], 548 | [0, 0, 0, 0], 549 | [0, 0, 0, 0], 550 | [0, 0, 0, 0], 551 | [0, 0, 0, 0], 552 | [0, 0, 0, 0], 553 | [0, 0, 0, 0], 554 | [0, 0, 0, 0], 555 | [0, 0, 0, 0], 556 | [0, 0, 0, 0], 557 | [0, 0, 0, 0], 558 | [0, 0, 0, 0], 559 | [0, 0, 0, 0], 560 | [0, 0, 0, 0], 561 | [0, 0, 0, 0], 562 | [0, 0, 0, 0], 563 | [0, 0, 0, 0], 564 | [0, 0, 0, 0], 565 | [0, 0, 0, 0], 566 | [0, 0, 0, 0], 567 | [0, 0, 0, 0], 568 | [0, 0, 0, 0], 569 | [0, 0, 0, 0], 570 | [0, 0, 0, 0], 571 | [0, 0, 0, 0], 572 | [0, 0, 0, 0], 573 | [0, 0, 0, 0], 574 | [0, 0, 0, 0], 575 | [0, 0, 0, 0], 576 | [0, 0, 0, 0], 577 | [0, 0, 0, 0], 578 | [0, 0, 0, 0], 579 | [0, 0, 0, 0], 580 | [0, 0, 0, 0], 581 | [0, 0, 0, 0], 582 | [0, -3, 1, 7], 583 | [0, -2, 1, 7], 584 | [0, -1, 1, 7], 585 | [0, 0, 1, 7], 586 | [0, 1, 1, 7], 587 | [0, 2, 1, 7], 588 | [0, 3, 1, 7], 589 | [0, 4, 1, 7], 590 | [0, 5, 1, 7], 591 | [0, 6, 0, 7], 592 | [0, 7, 0, 7], 593 | [0, 8, 0, 7], 594 | [0, 9, 0, 7], 595 | [0, 9, 0, 7], 596 | [0, 9, 0, 7], 597 | [0, 9, 0, 7] 598 | ],[ 599 | [0, 0, 0, 0], 600 | [0, 0, 0, 0], 601 | [0, 0, 0, 0], 602 | [0, 0, 0, 0], 603 | [0, 0, 0, 0], 604 | [0, 0, 0, 0], 605 | [0, 0, 0, 0], 606 | [0, 0, 0, 0], 607 | [0, 0, 0, 0], 608 | [0, 0, 0, 0], 609 | [0, 0, 0, 0], 610 | [0, 0, 0, 0], 611 | [0, 0, 0, 0], 612 | [0, 0, 0, 0], 613 | [0, 0, 0, 0], 614 | [0, 0, 0, 0], 615 | [0, 0, 0, 0], 616 | [0, 0, 0, 0], 617 | [0, 0, 0, 0], 618 | [0, 0, 0, 0], 619 | [0, 0, 0, 0], 620 | [0, 0, 0, 0], 621 | [0, 0, 0, 0], 622 | [0, 0, 0, 0], 623 | [0, 0, 0, 0], 624 | [0, 0, 0, 0], 625 | [0, 0, 0, 0], 626 | [0, 0, 0, 0], 627 | [0, 0, 0, 0], 628 | [0, 0, 0, 0], 629 | [0, 0, 0, 0], 630 | [0, 0, 0, 0], 631 | [0, 0, 0, 0], 632 | [0, 0, 0, 0], 633 | [0, 0, 0, 0], 634 | [0, 0, 0, 0], 635 | [0, 0, 0, 0], 636 | [0, 0, 0, 0], 637 | [0, 0, 0, 0], 638 | [0, 0, 0, 0], 639 | [2, -3, 2, 5], 640 | [2, -2, 2, 5], 641 | [2, -1, 2, 5], 642 | [2, 0, 2, 5], 643 | [2, 1, 2, 5], 644 | [2, 2, 2, 5], 645 | [2, 3, 2, 5], 646 | [2, 4, 2, 5], 647 | [2, 5, 2, 5], 648 | [2, 6, 2, 5], 649 | [2, 7, 2, 5], 650 | [2, 8, 2, 5], 651 | [2, 9, 2, 5] 652 | ] 653 | ] 654 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/splash_screen.json: -------------------------------------------------------------------------------- 1 | 2 | [ 3 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 4 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 5 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 6 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 7 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 8 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 9 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 10 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 11 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 12 | [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 13 | [0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 14 | [0,0,0,0,0,0,0,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 15 | [0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 16 | [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 17 | [0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 18 | [0,0,0,0,0,0,0,0,0,7,0,7,0,7,0,0,5,5,0,0,0,0,0,0,0,0,0,0,0,0], 19 | [0,0,0,0,0,0,0,0,0,7,0,7,0,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0], 20 | [0,0,0,0,0,0,0,0,0,7,0,7,0,7,0,0,5,5,5,5,5,5,5,0,0,0,0,0,0,0], 21 | [0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0], 22 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,0,0,0,0,0,0,0,0,0,0,0], 23 | [0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 24 | [0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0], 25 | [0,0,0,0,0,0,0,6,6,6,6,6,6,0,0,0,4,0,4,4,4,4,4,0,0,0,0,0,0,0], 26 | [0,0,0,0,0,0,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0], 27 | [0,0,0,0,0,0,0,0,0,6,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 28 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,0,0], 29 | [0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0], 30 | [0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0], 31 | [0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0], 32 | [0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0], 33 | [0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 34 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0], 35 | [0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0], 36 | [0,0,0,0,0,0,0,8,0,8,8,8,8,8,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0], 37 | [0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0], 38 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0], 39 | [0,0,0,0,0,0,0,0,0,0,5,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 40 | [0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 41 | [0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 42 | [0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 43 | [0,0,0,0,0,0,0,0,0,5,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 44 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 45 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 46 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 47 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 48 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 49 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 50 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 51 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 52 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] 53 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/tetris_blocks.json: -------------------------------------------------------------------------------- 1 | 2 | [ 3 | [ 4 | [[0,0,0,0], 5 | [0,0,0,0], 6 | [0,0,0,0], 7 | [0,0,0,0]], 8 | [[0,0,0,0], 9 | [0,0,0,0], 10 | [0,0,0,0], 11 | [0,0,0,0]], 12 | [[0,0,0,0], 13 | [0,0,0,0], 14 | [0,0,0,0], 15 | [0,0,0,0]], 16 | [[0,0,0,0], 17 | [0,0,0,0], 18 | [0,0,0,0], 19 | [0,0,0,0]] 20 | ],[ 21 | [[0,0,0,0], 22 | [0,0,0,0], 23 | [1,1,1,1], 24 | [0,0,0,0]], 25 | [[0,1,0,0], 26 | [0,1,0,0], 27 | [0,1,0,0], 28 | [0,1,0,0]], 29 | [[0,0,0,0], 30 | [0,0,0,0], 31 | [1,1,1,1], 32 | [0,0,0,0]], 33 | [[0,1,0,0], 34 | [0,1,0,0], 35 | [1,1,0,0], 36 | [0,1,0,0]] 37 | ],[ 38 | [[0,0,1,0], 39 | [0,0,1,0], 40 | [0,1,1,0], 41 | [0,0,0,0]], 42 | [[0,0,0,0], 43 | [0,1,0,0], 44 | [0,1,1,1], 45 | [0,0,0,0]], 46 | [[0,1,1,0], 47 | [0,1,0,0], 48 | [0,1,0,0], 49 | [0,0,0,0]], 50 | [[0,0,0,0], 51 | [0,1,1,1], 52 | [0,0,0,1], 53 | [0,0,0,0]] 54 | ],[ 55 | [[0,1,0,0], 56 | [0,1,0,0], 57 | [0,1,1,0], 58 | [0,0,0,0]], 59 | [[0,0,0,0], 60 | [0,1,1,1], 61 | [0,1,0,0], 62 | [0,0,0,0]], 63 | [[0,1,1,0], 64 | [0,0,1,0], 65 | [0,0,1,0], 66 | [0,0,0,0]], 67 | [[0,0,0,0], 68 | [0,0,0,1], 69 | [0,1,1,1], 70 | [0,0,0,0]] 71 | ],[ 72 | [[0,0,0,0], 73 | [0,1,1,0], 74 | [0,1,1,0], 75 | [0,0,0,0]], 76 | [[0,0,0,0], 77 | [0,1,1,0], 78 | [0,1,1,0], 79 | [0,0,0,0]], 80 | [[0,0,0,0], 81 | [0,1,1,0], 82 | [0,1,1,0], 83 | [0,0,0,0]], 84 | [[0,0,0,0], 85 | [0,1,1,0], 86 | [0,1,1,0], 87 | [0,0,0,0]] 88 | ],[ 89 | [[0,0,0,0], 90 | [0,0,1,0], 91 | [0,1,1,1], 92 | [0,0,0,0]], 93 | [[0,0,1,0], 94 | [0,0,1,1], 95 | [0,0,1,0], 96 | [0,0,0,0]], 97 | [[0,0,0,0], 98 | [0,1,1,1], 99 | [0,0,1,0], 100 | [0,0,0,0]], 101 | [[0,0,1,0], 102 | [0,1,1,0], 103 | [0,0,1,0], 104 | [0,0,0,0]] 105 | ],[ 106 | [[0,0,0,0], 107 | [0,0,1,1], 108 | [0,1,1,0], 109 | [0,0,0,0]], 110 | [[0,1,0,0], 111 | [0,1,1,0], 112 | [0,0,1,0], 113 | [0,0,0,0]], 114 | [[0,0,0,0], 115 | [0,0,1,1], 116 | [0,1,1,0], 117 | [0,0,0,0]], 118 | [[0,1,0,0], 119 | [0,1,1,0], 120 | [0,0,1,0], 121 | [0,0,0,0]] 122 | ],[ 123 | [[0,0,0,0], 124 | [0,1,1,0], 125 | [0,0,1,1], 126 | [0,0,0,0]], 127 | [[0,0,1,0], 128 | [0,1,1,0], 129 | [0,1,0,0], 130 | [0,0,0,0]], 131 | [[0,0,0,0], 132 | [0,1,1,0], 133 | [0,0,1,1], 134 | [0,0,0,0]], 135 | [[0,0,1,0], 136 | [0,1,1,0], 137 | [0,1,0,0], 138 | [0,0,0,0]] 139 | ] 140 | ] 141 | -------------------------------------------------------------------------------- /tetris_clock/assets/weather/cloudy.json: -------------------------------------------------------------------------------- 1 | [1200, 2 | [ 3 | [ 4 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 5 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 6 | [10,10,10,10, 9, 9, 9, 9,10,10,10, 0, 0], 7 | [10,10,10, 9, 9, 9, 9, 9, 9,10,10, 0, 0], 8 | [10,10,10,10, 9, 9, 9,10,10,10,10, 0, 0], 9 | [ 0,10,10,10,10,10,10,10,10, 0, 0, 0, 0] 10 | ],[ 11 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 12 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 13 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 14 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 15 | [ 0,10,10,10,10, 9, 9, 9,10,10,10,10, 0], 16 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0] 17 | ],[ 18 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 19 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 20 | [ 0, 0,10,10, 9, 9, 9, 9,10,10,10,10,10], 21 | [ 0, 0,10, 9, 9, 9, 9, 9, 9,10,10,10,10], 22 | [ 0, 0,10,10,10, 9, 9, 9,10,10,10,10,10], 23 | [ 0, 0, 0,10,10,10,10,10,10,10,10, 0, 0] 24 | ],[ 25 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 26 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 27 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 28 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 29 | [ 0,10,10,10, 9, 9, 9,10,10,10,10,10, 0], 30 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0] 31 | ] 32 | ] 33 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/weather/foggy.json: -------------------------------------------------------------------------------- 1 | [ 2000, 2 | [ 3 | [ 4 | [0,0,0,0,0,0,0,0,0,0,0], 5 | [0,0,0,0,0,0,0,0,0,0,0], 6 | [0,9,9,9,9,9,9,0,0,0,0], 7 | [0,0,0,0,0,0,0,0,0,0,0], 8 | [0,0,0,9,9,9,9,9,9,0,0], 9 | [0,0,0,0,0,0,0,0,0,0,0], 10 | [0,9,9,9,9,9,9,0,0,0,0] 11 | ],[ 12 | [0,0,0,0,0,0,0,0,0,0,0], 13 | [0,0,0,0,0,0,0,0,0,0,0], 14 | [0,0,9,9,9,9,9,9,0,0,0], 15 | [0,0,0,0,0,0,0,0,0,0,0], 16 | [0,0,9,9,9,9,9,9,0,0,0], 17 | [0,0,0,0,0,0,0,0,0,0,0], 18 | [0,0,9,9,9,9,9,9,0,0,0] 19 | ],[ 20 | [0,0,0,0,0,0,0,0,0,0,0], 21 | [0,0,0,0,0,0,0,0,0,0,0], 22 | [0,0,0,9,9,9,9,9,9,0,0], 23 | [0,0,0,0,0,0,0,0,0,0,0], 24 | [0,9,9,9,9,9,9,0,0,0,0], 25 | [0,0,0,0,0,0,0,0,0,0,0], 26 | [0,0,0,9,9,9,9,9,9,0,0] 27 | ],[ 28 | [0,0,0,0,0,0,0,0,0,0,0], 29 | [0,0,0,0,0,0,0,0,0,0,0], 30 | [0,0,9,9,9,9,9,9,0,0,0], 31 | [0,0,0,0,0,0,0,0,0,0,0], 32 | [0,0,9,9,9,9,9,9,0,0,0], 33 | [0,0,0,0,0,0,0,0,0,0,0], 34 | [0,0,9,9,9,9,9,9,0,0,0] 35 | ] 36 | ] 37 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/weather/rainy.json: -------------------------------------------------------------------------------- 1 | [1000, 2 | [ 3 | [ 4 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 5 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 6 | [10,10,10,10, 9, 9, 9, 9,10,10,10, 0, 0], 7 | [10,10,10, 9, 9, 9, 9, 9, 9,10,10, 0, 0], 8 | [10,10,10,10, 9, 9, 9,10,10,10,10, 0, 0], 9 | [ 0,10,10,10,10,10,10,10,10, 0, 0, 0, 0], 10 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 11 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 12 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0] 13 | ],[ 14 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 15 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 16 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 17 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 18 | [ 0,10,10,10,10, 9, 9, 9,10,10,10,10, 0], 19 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 20 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 21 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 22 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0] 23 | ],[ 24 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 25 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 26 | [ 0, 0,10,10, 9, 9, 9, 9,10,10,10,10,10], 27 | [ 0, 0,10, 9, 9, 9, 9, 9, 9,10,10,10,10], 28 | [ 0, 0,10,10,10, 9, 9, 9,10,10,10,10,10], 29 | [ 0, 0, 0,10,10,10,10,10,10,10,10, 0, 0], 30 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 31 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 32 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0] 33 | ],[ 34 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 35 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 36 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 37 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 38 | [ 0,10,10,10, 9, 9, 9,10,10,10,10,10, 0], 39 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 40 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 41 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 42 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0] 43 | ] 44 | ] 45 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/weather/snowy.json: -------------------------------------------------------------------------------- 1 | [ 1100, 2 | [ 3 | [ 4 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 5 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 6 | [10,10,10,10, 9, 9, 9, 9,10,10,10, 0, 0], 7 | [10,10,10, 9, 9, 9, 9, 9, 9,10,10, 0, 0], 8 | [10,10,10,10, 9, 9, 9,10,10,10,10, 0, 0], 9 | [ 0,10,10,10,10,10,10,10,10, 0, 0, 0, 0], 10 | [ 0, 9, 0, 9, 0, 0, 0, 0, 0, 9, 0, 9, 0], 11 | [ 0, 0, 9, 0, 0, 9, 0, 9, 0, 0, 9, 0, 0], 12 | [ 0, 9, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 0], 13 | [ 0, 0, 0, 0, 0, 9, 0, 9, 0, 0, 0, 0, 0] 14 | ],[ 15 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 16 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 17 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 18 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 19 | [ 0,10,10,10,10, 9, 9, 9,10,10,10,10, 0], 20 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 21 | [ 0, 0, 0, 0, 0, 9, 0, 9, 0, 0, 0, 0, 0], 22 | [ 0, 9, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 0], 23 | [ 0, 0, 9, 0, 0, 9, 0, 9, 0, 0, 9, 0, 0], 24 | [ 0, 9, 0, 9, 0, 0, 0, 0, 0, 9, 0, 9, 0] 25 | ],[ 26 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 27 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 28 | [ 0, 0,10,10, 9, 9, 9, 9,10,10,10,10,10], 29 | [ 0, 0,10, 9, 9, 9, 9, 9, 9,10,10,10,10], 30 | [ 0, 0,10,10,10, 9, 9, 9,10,10,10,10,10], 31 | [ 0, 0, 0,10,10,10,10,10,10,10,10, 0, 0], 32 | [ 0, 9, 0, 9, 0, 0, 0, 0, 0, 9, 0, 9, 0], 33 | [ 0, 0, 9, 0, 0, 9, 0, 9, 0, 0, 9, 0, 0], 34 | [ 0, 9, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 0], 35 | [ 0, 0, 0, 0, 0, 9, 0, 9, 0, 0, 0, 0, 0] 36 | ],[ 37 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 38 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 39 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 40 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 41 | [ 0,10,10,10, 9, 9, 9,10,10,10,10,10, 0], 42 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 43 | [ 0, 0, 0, 0, 0, 9, 0, 9, 0, 0, 0, 0, 0], 44 | [ 0, 9, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 0], 45 | [ 0, 0, 9, 0, 0, 9, 0, 9, 0, 0, 9, 0, 0], 46 | [ 0, 9, 0, 9, 0, 0, 0, 0, 0, 9, 0, 9, 0] 47 | ] 48 | ] 49 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/weather/sun.json: -------------------------------------------------------------------------------- 1 | [ 1600, 2 | [ 3 | [ 4 | [7,7,7,7,7,7,0,0,0,0,0], 5 | [7,7,7,7,7,7,0,7,7,0,0], 6 | [7,7,7,7,7,0,0,0,0,0,0], 7 | [7,7,7,7,7,0,7,7,0,0,0], 8 | [7,7,7,7,0,0,0,0,0,0,0], 9 | [7,7,0,0,0,7,0,0,0,0,0], 10 | [0,0,0,7,0,0,7,0,0,0,0], 11 | [0,7,0,7,0,0,0,0,0,0,0], 12 | [0,7,0,0,0,0,0,0,0,0,0], 13 | [0,0,0,0,0,0,0,0,0,0,0], 14 | [0,0,0,0,0,0,0,0,0,0,0] 15 | ],[ 16 | [7,7,7,7,7,7,0,0,0,0,0], 17 | [7,7,7,7,7,7,0,0,7,7,0], 18 | [7,7,7,7,7,0,0,0,0,0,0], 19 | [7,7,7,7,7,0,0,7,0,0,0], 20 | [7,7,7,7,0,0,0,0,7,0,0], 21 | [7,7,0,0,0,0,0,0,0,0,0], 22 | [0,0,0,0,0,0,7,0,0,0,0], 23 | [0,0,0,7,0,0,0,7,0,0,0], 24 | [0,7,0,0,7,0,0,0,0,0,0], 25 | [0,7,0,0,0,0,0,0,0,0,0], 26 | [0,0,0,0,0,0,0,0,0,0,0] 27 | ] 28 | ] 29 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/weather/thunderstorm.json: -------------------------------------------------------------------------------- 1 | [ 300, 2 | [ 3 | [ 4 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 5 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 6 | [10,10,10,10,10, 9, 9, 9,10,10,10, 0, 0], 7 | [10,10,10,10, 9, 9, 9, 9, 9,10,10, 0, 0], 8 | [10,10,10,10, 9, 9, 9,10,10,10,10, 0, 0], 9 | [ 0,10,10,10,10,10,10,10,10, 0, 0, 0, 0], 10 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 11 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 12 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 13 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 14 | ],[ 15 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 16 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 17 | [10,10,10,10,10, 9, 9, 9,10,10,10, 0, 0], 18 | [10,10,10,10, 9, 7, 9, 9, 9,10,10, 0, 0], 19 | [10,10,10, 7, 7, 7, 9,10,10,10,10, 0, 0], 20 | [ 0,10,10, 7,10,10,10,10,10, 0, 0, 0, 0], 21 | [ 0, 0, 0, 9, 7, 0, 0, 9, 0, 0, 0, 0, 0], 22 | [ 0, 0, 0, 9, 7, 9, 0, 9, 0, 9, 0, 0, 0], 23 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 24 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 25 | ],[ 26 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 27 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 28 | [10,10,10,10,10, 9, 9, 9,10,10,10, 0, 0], 29 | [10,10,10,10, 9, 9, 9, 9, 9,10,10, 0, 0], 30 | [10,10,10,10, 9, 9, 9,10,10,10,10, 0, 0], 31 | [ 0,10,10,10,10,10,10,10,10, 0, 0, 0, 0], 32 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 33 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 34 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 35 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 36 | ],[ 37 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 38 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 39 | [10,10,10,10,10, 9, 9, 9,10,10,10, 0, 0], 40 | [10,10,10,10, 9, 7, 9, 9, 9,10,10, 0, 0], 41 | [10,10,10, 7, 7, 7, 9,10,10,10,10, 0, 0], 42 | [ 0,10,10, 7,10,10,10,10,10, 0, 0, 0, 0], 43 | [ 0, 0, 0, 9, 7, 0, 0, 9, 0, 0, 0, 0, 0], 44 | [ 0, 0, 0, 9, 7, 9, 0, 9, 0, 9, 0, 0, 0], 45 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 46 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 47 | ],[ 48 | [ 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0, 0], 49 | [ 0,10,10,10,10,10,10,10,10,10, 0, 0, 0], 50 | [10,10,10,10,10, 9, 9, 9,10,10,10, 0, 0], 51 | [10,10,10,10, 9, 9, 9, 9, 9,10,10, 0, 0], 52 | [10,10,10,10, 9, 9, 9,10,10,10,10, 0, 0], 53 | [ 0,10,10,10,10,10,10,10,10, 0, 0, 0, 0], 54 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 55 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 56 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 57 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 58 | ],[ 59 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 60 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 61 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 62 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 63 | [ 0,10,10,10,10, 9, 9, 9,10,10,10,10, 0], 64 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 65 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 66 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 67 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 68 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 69 | ],[ 70 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 71 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 72 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 73 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 74 | [ 0,10,10,10,10, 9, 9, 9,10,10,10,10, 0], 75 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 76 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 77 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 78 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 79 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 80 | ],[ 81 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 82 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 83 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 84 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 85 | [ 0,10,10,10,10, 9, 9, 9,10,10,10,10, 0], 86 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 87 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 88 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 89 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 90 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 91 | ],[ 92 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 93 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 94 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 95 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 96 | [ 0,10,10,10,10, 9, 9, 9,10,10,10,10, 0], 97 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 98 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 99 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 100 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 101 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 102 | ],[ 103 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 104 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 105 | [ 0, 0,10,10, 9, 9, 9, 9,10,10,10,10,10], 106 | [ 0, 0,10, 9, 9, 9, 9, 9, 9,10,10,10,10], 107 | [ 0, 0,10,10,10, 9, 9, 9,10,10,10,10,10], 108 | [ 0, 0, 0,10,10,10,10,10,10,10,10, 0, 0], 109 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 110 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 111 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 112 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 113 | ],[ 114 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 115 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 116 | [ 0, 0,10,10, 9, 9, 9, 9, 7,10,10,10,10], 117 | [ 0, 0,10, 9, 9, 9, 9, 7, 9,10,10,10,10], 118 | [ 0, 0,10,10,10, 9, 9, 7, 7, 7,10,10,10], 119 | [ 0, 0, 0,10,10,10,10,10,10, 7,10, 0, 0], 120 | [ 0, 0, 0, 9, 0, 0, 0, 9, 7, 0, 0, 0, 0], 121 | [ 0, 0, 0, 9, 0, 9, 0, 9, 7, 9, 0, 0, 0], 122 | [ 0, 0, 0, 0, 0, 9, 0, 7, 0, 9, 0, 0, 0], 123 | [ 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0] 124 | ],[ 125 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 126 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 127 | [ 0, 0,10,10, 9, 9, 9, 9,10,10,10,10,10], 128 | [ 0, 0,10, 9, 9, 9, 9, 9, 9,10,10,10,10], 129 | [ 0, 0,10,10,10, 9, 9, 9,10,10,10,10,10], 130 | [ 0, 0, 0,10,10,10,10,10,10,10,10, 0, 0], 131 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 132 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 133 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 134 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 135 | ],[ 136 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 137 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 138 | [ 0, 0,10,10, 9, 9, 9, 9, 7,10,10,10,10], 139 | [ 0, 0,10, 9, 9, 9, 9, 7, 9,10,10,10,10], 140 | [ 0, 0,10,10,10, 9, 9, 7, 7, 7,10,10,10], 141 | [ 0, 0, 0,10,10,10,10,10,10, 7,10, 0, 0], 142 | [ 0, 0, 0, 9, 0, 0, 0, 9, 7, 0, 0, 0, 0], 143 | [ 0, 0, 0, 9, 0, 9, 0, 9, 7, 9, 0, 0, 0], 144 | [ 0, 0, 0, 0, 0, 9, 0, 7, 0, 9, 0, 0, 0], 145 | [ 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0] 146 | ],[ 147 | [ 0, 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0], 148 | [ 0, 0, 0,10,10,10,10,10,10,10,10,10, 0], 149 | [ 0, 0,10,10, 9, 9, 9, 9,10,10,10,10,10], 150 | [ 0, 0,10, 9, 9, 9, 9, 9, 9,10,10,10,10], 151 | [ 0, 0,10,10,10, 9, 9, 9,10,10,10,10,10], 152 | [ 0, 0, 0,10,10,10,10,10,10,10,10, 0, 0], 153 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 154 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 155 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 156 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 157 | ], [ 158 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 159 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 160 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 161 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 162 | [ 0,10,10,10, 9, 9, 9,10,10,10,10,10, 0], 163 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 164 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 165 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 166 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 167 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 168 | ],[ 169 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 170 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 171 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 172 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 173 | [ 0,10,10,10, 9, 9, 9,10,10,10,10,10, 0], 174 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 175 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 176 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 177 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 178 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 179 | ],[ 180 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 181 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 182 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 183 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 184 | [ 0,10,10,10, 9, 9, 9,10,10,10,10,10, 0], 185 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 186 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 187 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 188 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 189 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 190 | ],[ 191 | [ 0, 0, 0,10,10, 0, 0,10,10,10, 0, 0, 0], 192 | [ 0, 0,10,10,10,10,10,10,10,10,10, 0, 0], 193 | [ 0,10,10,10, 9, 9, 9, 9,10,10,10,10, 0], 194 | [ 0,10,10, 9, 9, 9, 9, 9, 9,10,10,10, 0], 195 | [ 0,10,10,10, 9, 9, 9,10,10,10,10,10, 0], 196 | [ 0, 0,10,10,10,10,10,10,10,10, 0, 0, 0], 197 | [ 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0], 198 | [ 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0], 199 | [ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0], 200 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 201 | ] 202 | ] 203 | ] -------------------------------------------------------------------------------- /tetris_clock/assets/weather/windy.json: -------------------------------------------------------------------------------- 1 | [ 200, 2 | [ 3 | [ 4 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 5 | [0,0,0,0,0,0,9,0,0,0,0,9,0], 6 | [9,9,9,9,9,9,0,0,0,0,0,0,9], 7 | [0,0,0,0,0,0,9,9,9,9,9,9,0], 8 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 9 | [0,0,0,9,9,9,9,9,9,0,0,0,0], 10 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 11 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 12 | ],[ 13 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 14 | [0,0,0,0,0,0,9,0,0,0,0,9,0], 15 | [0,9,9,9,9,9,0,0,0,0,0,0,9], 16 | [0,0,0,0,0,0,0,9,9,9,9,9,0], 17 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 18 | [0,0,0,0,9,9,9,9,9,0,0,0,0], 19 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 20 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 21 | ],[ 22 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 23 | [0,0,0,0,0,0,9,0,0,0,0,9,0], 24 | [0,0,9,9,9,9,0,0,0,0,0,0,9], 25 | [0,0,0,0,0,0,0,0,9,9,9,9,0], 26 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 27 | [0,0,0,0,0,9,9,9,9,0,0,0,0], 28 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 29 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 30 | ],[ 31 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 32 | [0,0,0,0,0,0,9,0,0,0,0,9,0], 33 | [9,0,0,9,9,9,0,0,0,0,0,0,9], 34 | [0,0,0,0,0,0,9,0,0,9,9,9,0], 35 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 36 | [0,0,0,9,0,0,9,9,9,0,0,0,0], 37 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 38 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 39 | ],[ 40 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 41 | [0,0,0,0,0,0,9,0,0,0,0,9,0], 42 | [9,9,0,0,9,9,0,0,0,0,0,0,9], 43 | [0,0,0,0,0,0,9,9,0,0,9,9,0], 44 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 45 | [0,0,0,9,9,0,0,9,9,0,0,0,0], 46 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 47 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 48 | ],[ 49 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 50 | [0,0,0,0,0,0,9,0,0,0,0,9,0], 51 | [9,9,9,0,0,9,0,0,0,0,0,0,9], 52 | [0,0,0,0,0,0,9,9,9,0,0,9,0], 53 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 54 | [0,0,0,9,9,9,0,0,9,0,0,0,0], 55 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 56 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 57 | ],[ 58 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 59 | [0,0,0,0,0,0,9,0,0,0,0,9,0], 60 | [9,9,9,9,0,0,0,0,0,0,0,0,9], 61 | [0,0,0,0,0,0,9,9,9,9,0,0,0], 62 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 63 | [0,0,0,9,9,9,9,0,0,0,0,0,0], 64 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 65 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 66 | ],[ 67 | [0,0,0,0,0,9,0,0,0,0,0,0,0], 68 | [0,0,0,0,0,0,0,0,0,0,0,9,0], 69 | [9,9,9,9,9,0,0,0,0,0,0,0,0], 70 | [0,0,0,0,0,0,9,9,9,9,9,0,0], 71 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 72 | [0,0,0,9,9,9,9,9,0,0,0,0,0], 73 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 74 | [0,0,0,0,0,0,0,0,9,0,0,0,0] 75 | ],[ 76 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 77 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 78 | [9,9,9,9,9,9,0,0,0,0,0,0,0], 79 | [0,0,0,0,0,0,9,9,9,9,9,9,0], 80 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 81 | [0,0,0,9,9,9,9,9,9,0,0,0,0], 82 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 83 | [0,0,0,0,0,0,0,0,0,0,0,0,0] 84 | ],[ 85 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 86 | [0,0,0,0,0,0,9,0,0,0,0,0,0], 87 | [9,9,9,9,9,9,0,0,0,0,0,0,9], 88 | [0,0,0,0,0,0,9,9,9,9,9,9,0], 89 | [0,0,0,0,0,0,0,0,0,0,0,0,0], 90 | [0,0,0,9,9,9,9,9,9,0,0,0,0], 91 | [0,0,0,0,0,0,0,0,0,9,0,0,0], 92 | [0,0,0,0,0,0,0,0,0,0,0,0,0] 93 | ] 94 | ] 95 | ] -------------------------------------------------------------------------------- /tetris_clock/digital.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/tetris_clock/digital.gif -------------------------------------------------------------------------------- /tetris_clock/digital_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/tetris_clock/digital_dark.png -------------------------------------------------------------------------------- /tetris_clock/digital_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msoftware/flutter_clock/51d62e6cc24813fa956cbdf3b2c68059854db84a/tetris_clock/digital_light.png -------------------------------------------------------------------------------- /tetris_clock/lib/main.dart: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | import 'dart:io'; 6 | 7 | import 'package:flutter_clock_helper/customizer.dart'; 8 | import 'package:flutter_clock_helper/model.dart'; 9 | import 'package:flutter/foundation.dart'; 10 | import 'package:flutter/material.dart'; 11 | 12 | import 'tetris_time.dart'; 13 | 14 | void main() { 15 | // A temporary measure until Platform supports web and TargetPlatform supports 16 | // macOS. 17 | if (!kIsWeb && Platform.isMacOS) { 18 | // TODO(gspencergoog): Update this when TargetPlatform includes macOS. 19 | // https://github.com/flutter/flutter/issues/31366 20 | // See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override. 21 | debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia; 22 | } 23 | 24 | // This creates a clock that enables you to customize it. 25 | // 26 | // The [ClockCustomizer] takes in a [ClockBuilder] that consists of: 27 | // - A clock widget (in this case, [DigitalClock]) 28 | // - A model (provided to you by [ClockModel]) 29 | // For more information, see the flutter_clock_helper package. 30 | // 31 | // Your job is to edit [DigitalClock], or replace it with your 32 | // own clock widget. (Look in digital_clock.dart for more details!) 33 | runApp(ClockCustomizer((ClockModel model) => TetrisClock(model))); 34 | } 35 | -------------------------------------------------------------------------------- /tetris_clock/pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | archive: 5 | dependency: transitive 6 | description: 7 | name: archive 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "2.0.11" 11 | args: 12 | dependency: transitive 13 | description: 14 | name: args 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "1.5.2" 18 | async: 19 | dependency: transitive 20 | description: 21 | name: async 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "2.4.0" 25 | boolean_selector: 26 | dependency: transitive 27 | description: 28 | name: boolean_selector 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.0.5" 32 | charcode: 33 | dependency: transitive 34 | description: 35 | name: charcode 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.1.2" 39 | collection: 40 | dependency: transitive 41 | description: 42 | name: collection 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.14.11" 46 | convert: 47 | dependency: transitive 48 | description: 49 | name: convert 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "2.1.1" 53 | crypto: 54 | dependency: transitive 55 | description: 56 | name: crypto 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "2.1.3" 60 | cupertino_icons: 61 | dependency: "direct main" 62 | description: 63 | name: cupertino_icons 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "0.1.3" 67 | flutter: 68 | dependency: "direct main" 69 | description: flutter 70 | source: sdk 71 | version: "0.0.0" 72 | flutter_clock_helper: 73 | dependency: "direct main" 74 | description: 75 | path: "../flutter_clock_helper" 76 | relative: true 77 | source: path 78 | version: "1.0.0+1" 79 | flutter_test: 80 | dependency: "direct dev" 81 | description: flutter 82 | source: sdk 83 | version: "0.0.0" 84 | image: 85 | dependency: transitive 86 | description: 87 | name: image 88 | url: "https://pub.dartlang.org" 89 | source: hosted 90 | version: "2.1.4" 91 | intl: 92 | dependency: transitive 93 | description: 94 | name: intl 95 | url: "https://pub.dartlang.org" 96 | source: hosted 97 | version: "0.16.1" 98 | matcher: 99 | dependency: transitive 100 | description: 101 | name: matcher 102 | url: "https://pub.dartlang.org" 103 | source: hosted 104 | version: "0.12.6" 105 | meta: 106 | dependency: transitive 107 | description: 108 | name: meta 109 | url: "https://pub.dartlang.org" 110 | source: hosted 111 | version: "1.1.8" 112 | path: 113 | dependency: transitive 114 | description: 115 | name: path 116 | url: "https://pub.dartlang.org" 117 | source: hosted 118 | version: "1.6.4" 119 | pedantic: 120 | dependency: transitive 121 | description: 122 | name: pedantic 123 | url: "https://pub.dartlang.org" 124 | source: hosted 125 | version: "1.8.0+1" 126 | petitparser: 127 | dependency: transitive 128 | description: 129 | name: petitparser 130 | url: "https://pub.dartlang.org" 131 | source: hosted 132 | version: "2.4.0" 133 | quiver: 134 | dependency: transitive 135 | description: 136 | name: quiver 137 | url: "https://pub.dartlang.org" 138 | source: hosted 139 | version: "2.0.5" 140 | sky_engine: 141 | dependency: transitive 142 | description: flutter 143 | source: sdk 144 | version: "0.0.99" 145 | source_span: 146 | dependency: transitive 147 | description: 148 | name: source_span 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "1.5.5" 152 | stack_trace: 153 | dependency: transitive 154 | description: 155 | name: stack_trace 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "1.9.3" 159 | stream_channel: 160 | dependency: transitive 161 | description: 162 | name: stream_channel 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "2.0.0" 166 | string_scanner: 167 | dependency: transitive 168 | description: 169 | name: string_scanner 170 | url: "https://pub.dartlang.org" 171 | source: hosted 172 | version: "1.0.5" 173 | term_glyph: 174 | dependency: transitive 175 | description: 176 | name: term_glyph 177 | url: "https://pub.dartlang.org" 178 | source: hosted 179 | version: "1.1.0" 180 | test_api: 181 | dependency: transitive 182 | description: 183 | name: test_api 184 | url: "https://pub.dartlang.org" 185 | source: hosted 186 | version: "0.2.11" 187 | typed_data: 188 | dependency: transitive 189 | description: 190 | name: typed_data 191 | url: "https://pub.dartlang.org" 192 | source: hosted 193 | version: "1.1.6" 194 | vector_math: 195 | dependency: transitive 196 | description: 197 | name: vector_math 198 | url: "https://pub.dartlang.org" 199 | source: hosted 200 | version: "2.0.8" 201 | xml: 202 | dependency: transitive 203 | description: 204 | name: xml 205 | url: "https://pub.dartlang.org" 206 | source: hosted 207 | version: "3.5.0" 208 | sdks: 209 | dart: ">=2.5.0 <3.0.0" 210 | -------------------------------------------------------------------------------- /tetris_clock/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: tetris_clock 2 | description: Tetris clock. 3 | version: 1.0.0+1 4 | environment: 5 | sdk: ">=2.1.0 <3.0.0" 6 | 7 | dependencies: 8 | flutter: 9 | sdk: flutter 10 | flutter_clock_helper: 11 | path: ../flutter_clock_helper 12 | cupertino_icons: ^0.1.2 13 | # screen: 0.0.5 14 | 15 | dev_dependencies: 16 | flutter_test: 17 | sdk: flutter 18 | 19 | flutter: 20 | uses-material-design: true 21 | 22 | assets: 23 | - assets/ 24 | - assets/numbers/ 25 | - assets/weather/ -------------------------------------------------------------------------------- /tetris_clock/test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:tetris_clock/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | --------------------------------------------------------------------------------