Switch to Android Studio IDE and use English as the default language.
12 files deleted
7 files renamed
17 files added
4 files modified
New file |
| | |
| | | .gradle |
| | | /local.properties |
| | | /.idea/workspace.xml |
| | | /.idea/libraries |
| | | .DS_Store |
| | | /build |
| | |
| | | Obliczenia brydżowe |
| | | Bridge |
| | |
| | | <component name="CopyrightManager"> |
| | | <settings default=""> |
| | | <module2copyright /> |
| | | </settings> |
| | | <settings default="" /> |
| | | </component> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="GradleSettings"> |
| | | <option name="linkedExternalProjectsSettings"> |
| | | <GradleProjectSettings> |
| | | <option name="distributionType" value="DEFAULT_WRAPPED" /> |
| | | <option name="externalProjectPath" value="$PROJECT_DIR$" /> |
| | | <option name="gradleHome" value="$APPLICATION_HOME_DIR$/plugins/gradle" /> |
| | | <option name="modules"> |
| | | <set> |
| | | <option value="$PROJECT_DIR$" /> |
| | | <option value="$PROJECT_DIR$/app" /> |
| | | </set> |
| | | </option> |
| | | </GradleProjectSettings> |
| | | </option> |
| | | </component> |
| | | </project> |
| | | |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="EntryPointsManager"> |
| | | <entry_points version="2.0" /> |
| | | <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK"> |
| | | <output url="file://$PROJECT_DIR$/classes" /> |
| | | </component> |
| | | <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="Android SDK" project-jdk-type="Android SDK"> |
| | | <output url="file://$PROJECT_DIR$/out" /> |
| | | <component name="masterDetails"> |
| | | <states> |
| | | <state key="ProjectJDKs.UI"> |
| | | <settings> |
| | | <last-edited>1.7</last-edited> |
| | | <splitter-proportions> |
| | | <option name="proportions"> |
| | | <list> |
| | | <option value="0.2" /> |
| | | </list> |
| | | </option> |
| | | </splitter-proportions> |
| | | </settings> |
| | | </state> |
| | | </states> |
| | | </component> |
| | | </project> |
| | | |
| | |
| | | <project version="4"> |
| | | <component name="ProjectModuleManager"> |
| | | <modules> |
| | | <module fileurl="file://$PROJECT_DIR$/Android.iml" filepath="$PROJECT_DIR$/Android.iml" /> |
| | | <module fileurl="file://$PROJECT_DIR$/Bridge.iml" filepath="$PROJECT_DIR$/Bridge.iml" /> |
| | | <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> |
| | | </modules> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4"> |
| | | <component name="FacetManager"> |
| | | <facet type="java-gradle" name="Java-Gradle"> |
| | | <configuration> |
| | | <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" /> |
| | | </configuration> |
| | | </facet> |
| | | </component> |
| | | <component name="NewModuleRootManager" inherit-compiler-output="false"> |
| | | <output url="file://$MODULE_DIR$/build/classes/main" /> |
| | | <output-test url="file://$MODULE_DIR$/build/classes/test" /> |
| | | <exclude-output /> |
| | | <content url="file://$MODULE_DIR$"> |
| | | <excludeFolder url="file://$MODULE_DIR$/.gradle" /> |
| | | </content> |
| | | <orderEntry type="inheritedJdk" /> |
| | | <orderEntry type="sourceFolder" forTests="false" /> |
| | | </component> |
| | | </module> |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4"> |
| | | <component name="FacetManager"> |
| | | <facet type="android-gradle" name="Android-Gradle"> |
| | | <configuration> |
| | | <option name="GRADLE_PROJECT_PATH" value=":app" /> |
| | | </configuration> |
| | | </facet> |
| | | <facet type="android" name="Android"> |
| | | <configuration> |
| | | <option name="SELECTED_BUILD_VARIANT" value="debug" /> |
| | | <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> |
| | | <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> |
| | | <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" /> |
| | | <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> |
| | | <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" /> |
| | | <option name="ALLOW_USER_CONFIGURATION" value="false" /> |
| | | <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" /> |
| | | <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" /> |
| | | <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" /> |
| | | <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" /> |
| | | </configuration> |
| | | </facet> |
| | | </component> |
| | | <component name="NewModuleRootManager" inherit-compiler-output="false"> |
| | | <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" /> |
| | | <exclude-output /> |
| | | <content url="file://$MODULE_DIR$"> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/test/debug" isTestSource="true" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/test/debug" isTestSource="true" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/test/debug" isTestSource="true" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/test/debug" isTestSource="true" generated="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/test/debug" type="java-test-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" /> |
| | | <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> |
| | | <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> |
| | | </content> |
| | | <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" /> |
| | | <orderEntry type="sourceFolder" forTests="false" /> |
| | | <orderEntry type="library" exported="" name="appcompat-v7-21.0.3" level="project" /> |
| | | <orderEntry type="library" exported="" name="support-annotations-21.0.3" level="project" /> |
| | | <orderEntry type="library" exported="" name="support-v4-21.0.3" level="project" /> |
| | | </component> |
| | | </module> |
| | | |
New file |
| | |
| | | apply plugin: 'com.android.application' |
| | | |
| | | android { |
| | | compileSdkVersion 21 |
| | | buildToolsVersion "21.1.2" |
| | | |
| | | defaultConfig { |
| | | applicationId "net.jacekk.bridge" |
| | | minSdkVersion 14 |
| | | targetSdkVersion 21 |
| | | versionCode 1 |
| | | versionName "1.0" |
| | | } |
| | | buildTypes { |
| | | release { |
| | | minifyEnabled false |
| | | } |
| | | } |
| | | } |
| | | |
| | | dependencies { |
| | | compile fileTree(dir: 'libs', include: ['*.jar']) |
| | | compile 'com.android.support:appcompat-v7:21.0.3' |
| | | } |
File was renamed from proguard-project.txt |
| | |
| | | # To enable ProGuard in your project, edit project.properties |
| | | # to define the proguard.config property as described in that file. |
| | | # |
| | | # Add project specific ProGuard rules here. |
| | | # By default, the flags in this file are appended to flags specified |
| | | # in ${sdk.dir}/tools/proguard/proguard-android.txt |
| | | # You can edit the include path and order by changing the ProGuard |
| | | # include property in project.properties. |
| | | # in /home/jacek/Android/Sdk/tools/proguard/proguard-android.txt |
| | | # You can edit the include path and order by changing the proguardFiles |
| | | # directive in build.gradle. |
| | | # |
| | | # For more details, see |
| | | # http://developer.android.com/guide/developing/tools/proguard.html |
New file |
| | |
| | | package net.jacekk.bridge; |
| | | |
| | | import android.app.Application; |
| | | import android.test.ApplicationTestCase; |
| | | |
| | | public class ApplicationTest extends ApplicationTestCase<Application> { |
| | | public ApplicationTest() { |
| | | super(Application.class); |
| | | } |
| | | } |
New file |
| | |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.jacekk.bridge"> |
| | | <application android:allowBackup="true" android:label="@string/app_name" |
| | | android:icon="@drawable/icon" android:theme="@style/AppTheme"> |
| | | <activity android:name="net.jacekk.bridge.android.MainActivity" |
| | | android:label="@string/app_name"> |
| | | <intent-filter> |
| | | <action android:name="android.intent.action.MAIN"/> |
| | | <category android:name="android.intent.category.LAUNCHER"/> |
| | | </intent-filter> |
| | | </activity> |
| | | </application> |
| | | </manifest> |
New file |
| | |
| | | package net.jacekk.bridge; |
| | | |
| | | public class BridgeCompute { |
| | | // Points for tricks |
| | | protected int tricks[][] = { |
| | | {0, 20, 40, 60, 80, 100, 120, 140}, // minor suits |
| | | {0, 30, 60, 90, 120, 150, 180, 210}, // major suits |
| | | {0, 40, 70, 100, 130, 160, 190, 220} // no trump |
| | | }; |
| | | |
| | | // Points for [i] undertricks |
| | | protected int undertricks[][][] = { |
| | | { // non vulnerable |
| | | {0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650}, // normal |
| | | {0, 100, 300, 500, 700, 900, 1100, 1300, 1500, 1700, 1900, 2100, 2300, 2500}, // double |
| | | {0, 200, 600, 1000, 1400, 1800, 2200, 2600, 3000, 3400, 3800, 4200, 4600, 5000} // redouble |
| | | }, |
| | | { // vulnerable |
| | | {0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300}, // normal |
| | | {0, 200, 500, 800, 1100, 1400, 1700, 2000, 2300, 2600, 2900, 3200, 3500, 3800}, // double |
| | | {0, 400, 1000, 1600, 2200, 2800, 3400, 4000, 4600, 5200, 5800, 6400, 7000, 7600}// redouble |
| | | } |
| | | }; |
| | | |
| | | // Points required per Milton Work Point Count |
| | | protected int PC[][][] = { |
| | | { // We: non vulnerable, they: non vulnerable |
| | | {-1400, -1400, -1400, -1400, -1200, -1100, -1000, -900, -700, -600, -490, |
| | | -460, -430, -400, -350, -300, -200, -110, -70, -50, 0, |
| | | 50, 70, 110, 200, 300, 350, 400, 430, 460, 490, |
| | | 600, 700, 900, 1000, 1100, 1200, 1400, 1400, 1400, 1400}, |
| | | // We: non vulnerable, they: vulnerable |
| | | {-2100, -2100, -2100, -2100, -1800, -1650, -1500, -1350, -1050, -800, -690, |
| | | -660, -630, -600, -520, -440, -290, -110, -70, -50, 0, |
| | | 50, 70, 110, 200, 300, 350, 400, 430, 460, 490, |
| | | 600, 700, 900, 1000, 1100, 1200, 1400, 1400, 1400, 1400} |
| | | }, |
| | | { // We: vulnerable, they: non vulnerable |
| | | {-1400, -1400, -1400, -1400, -1200, -1100, -1000, -900, -700, -600, -490, |
| | | -460, -430, -400, -350, -300, -200, -110, -70, -50, 0, |
| | | 50, 70, 110, 290, 440, 520, 600, 630, 660, 690, |
| | | 800, 1050, 1350, 1500, 1650, 1800, 2100, 2100, 2100, 2100}, |
| | | // We: vulnerable, they: vulnerable |
| | | {-2100, -2100, -2100, -2100, -1800, -1650, -1500, -1350, -1050, -800, -690, |
| | | -660, -630, -600, -520, -440, -290, -110, -70, -50, 0, |
| | | 50, 70, 110, 290, 440, 520, 600, 630, 660, 690, |
| | | 800, 1050, 1350, 1500, 1650, 1800, 2100, 2100, 2100, 2100} |
| | | } |
| | | }; |
| | | |
| | | // Points required for [i] IMPs |
| | | protected int IMPs[] = { 0, 20, 50, 90, 130, 170, 220, 270, 320, 370, 430, 500, 600, 750, 900, |
| | | 1100, 1300, 1500, 1750, 2000, 2250, 2500, 3000, 3500, 4000, 9999999}; |
| | | |
| | | |
| | | // percent* properties are related to scoring system by Adam Królik |
| | | // See: http://www.gplewniak.republika.pl/strony/zapis.html |
| | | |
| | | // Points received - [i] used to access row from percent variable |
| | | protected int percent_points[][] = { |
| | | {0, 50, 90, 120, 150, 180, 210, 300, 400, 430, 460, 490, 520, 800, 920, 940, 980, 990, |
| | | 1020, 1400, 1440, 1520, 1530, 9999999}, // non vulnerable |
| | | {0, 50, 90, 120, 150, 180, 210, 500, 600, 360, 660, 690, 720, 810, 1370, 1390, 1430, |
| | | 1440, 1470, 1700, 2000, 2220, 2230, 9999999} // vulnerable |
| | | }; |
| | | |
| | | // Work Point Count - [i] used to access column from property percent |
| | | protected int percent_PC[] = {0, 6, 10, 16, 21, 25, 31, 35, 9999999}; |
| | | |
| | | // Percent score per [i] - points scored, [j] - PC had |
| | | protected int percent[][] = { |
| | | {-1, -1, -1, 50, 44, 26, 8, 0}, |
| | | {83, 74, 65, 56, 47, 29, 11, 0}, |
| | | {86, 77, 68, 59, 50, 32, 14, 0}, |
| | | {89, 80, 71, 62, 53, 35, 17, 0}, |
| | | {92, 83, 74, 65, 56, 38, 20, 2}, |
| | | {95, 86, 77, 68, 59, 41, 23, 5}, |
| | | {98, 89, 80, 71, 62, 44, 26, 8}, |
| | | {100, 92, 83, 74, 65, 47, 29, 11}, |
| | | {100, 95, 86, 77, 68, 50, 32, 14}, |
| | | {100, 98, 89, 80, 71, 53, 35, 17}, |
| | | {100, 100, 92, 83, 74, 56, 38, 20}, |
| | | {100, 100, 95, 86, 77, 59, 41, 23}, |
| | | {100, 100, 98, 89, 80, 62, 44, 26}, |
| | | {100, 100, 100, 92, 83, 65, 47, 29}, |
| | | {100, 100, 100, 95, 86, 68, 50, 32}, |
| | | {100, 100, 100, 98, 89, 71, 53, 35}, |
| | | {100, 100, 100, 100, 92, 74, 56, 38}, |
| | | {100, 100, 100, 100, 95, 77, 59, 41}, |
| | | {100, 100, 100, 100, 98, 80, 62, 44}, |
| | | {100, 100, 100, 100, 100, 83, 65, 47}, |
| | | {100, 100, 100, 100, 100, 86, 68, 50}, |
| | | {100, 100, 100, 100, 100, 89, 71, 53}, |
| | | {100, 100, 100, 100, 100, 100, 95, 90} |
| | | }; |
| | | |
| | | // Finds IMP score for points given (using IMPs property) |
| | | protected int IMP(int points) { |
| | | int i = 0; |
| | | while (IMPs[i + 1] <= points) { |
| | | i++; |
| | | } |
| | | return i; |
| | | } |
| | | |
| | | // Finds percent score for data given (using percent* properties) |
| | | protected int percent(int PC, int points, int vulnerability) { |
| | | int points_i = 0; |
| | | int PC_i = 0; |
| | | |
| | | while (this.percent_points[vulnerability][points_i + 1] <= points) { |
| | | points_i++; |
| | | } |
| | | |
| | | while (this.percent_PC[PC_i + 1] <= PC) { |
| | | PC_i++; |
| | | } |
| | | |
| | | return this.percent[points_i][PC_i]; |
| | | } |
| | | |
| | | public BridgeResult compute(int bid, int color, int dbl, int vulnerability, int PC, int tricks) { |
| | | BridgeResult result = new BridgeResult(); |
| | | int weVulnerable = vulnerability / 2; |
| | | int theyVulnerable = vulnerability % 2; |
| | | |
| | | // 4 passes |
| | | if (bid == 0) { |
| | | result.pointsFor = BridgeResult.PointsFor.Them; |
| | | result.points = this.PC[weVulnerable][theyVulnerable][PC]; |
| | | result.IMPs = this.IMP(result.points); |
| | | result.percent = 100 - this.percent(PC, 0, weVulnerable); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | // Result in points |
| | | int resultPoints; |
| | | // Points for tricks |
| | | int pointsForTricks; |
| | | // Result minus points required, according to PC property |
| | | int pointsForScoring; |
| | | |
| | | // Number of overtricks (or undertricks if negative) |
| | | int additionalTricks = tricks - 6 - bid; |
| | | |
| | | // Double/redouble multiplier |
| | | int multiplier = dbl + 1; |
| | | if (multiplier == 3) { |
| | | multiplier = 4; |
| | | } |
| | | |
| | | // Contract made |
| | | if (additionalTricks >= 0) { |
| | | // Ordinary contract |
| | | if (multiplier == 1) { |
| | | pointsForTricks = this.tricks[color][bid]; |
| | | resultPoints = this.tricks[color][tricks - 6]; |
| | | } |
| | | // Contract doubled/redoubled |
| | | else { |
| | | pointsForTricks = this.tricks[color][bid] * multiplier; |
| | | resultPoints = pointsForTricks; |
| | | |
| | | // Bonus for winning doubled/redoubled contract |
| | | resultPoints += 25 * multiplier; |
| | | // For overtricks |
| | | resultPoints += additionalTricks * (weVulnerable == 0 ? 50 : 100) * multiplier; |
| | | } |
| | | |
| | | if (bid == 6) { |
| | | // Bonus for small slam |
| | | resultPoints += (weVulnerable == 0 ? 500 : 750); |
| | | } else if (bid == 7) { |
| | | // Bonus for grand slam |
| | | resultPoints += (weVulnerable == 0 ? 1000 : 1500); |
| | | } |
| | | |
| | | if (pointsForTricks >= 100) { |
| | | // Bonus for game |
| | | resultPoints += (weVulnerable == 0 ? 300 : 500); |
| | | } else { |
| | | // Bonus for part-game |
| | | resultPoints += 50; |
| | | } |
| | | } |
| | | // Contract defeated |
| | | else { |
| | | // Points for undertricks (for defending side) |
| | | resultPoints = -1 * this.undertricks[weVulnerable][dbl][-1 * additionalTricks]; |
| | | } |
| | | |
| | | // Deduct points required |
| | | pointsForScoring = resultPoints - this.PC[weVulnerable][theyVulnerable][PC]; |
| | | |
| | | // Score for defeaters |
| | | if (pointsForScoring < 0) { |
| | | result.pointsFor = BridgeResult.PointsFor.Them; |
| | | result.pointsBefore = -1 * resultPoints; |
| | | result.points = -1 * pointsForScoring; |
| | | result.IMPs = IMP(result.points); |
| | | if (resultPoints < 0) { |
| | | result.percent = percent(40 - PC, -1 * resultPoints, theyVulnerable); |
| | | } else { |
| | | result.percent = 100 - percent(PC, resultPoints, weVulnerable); |
| | | } |
| | | } |
| | | // Score for declarers |
| | | else { |
| | | result.pointsFor = BridgeResult.PointsFor.Us; |
| | | result.pointsBefore = resultPoints; |
| | | result.points = pointsForScoring; |
| | | result.IMPs = IMP(result.points); |
| | | if (resultPoints > 0) { |
| | | result.percent = percent(PC, resultPoints, weVulnerable); |
| | | } else { |
| | | result.percent = 100 - percent(40 - PC, -1 * resultPoints, theyVulnerable); |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | } |
File was renamed from src/net/jacekk/brydz/BridgeResult.java |
| | |
| | | package net.jacekk.brydz; |
| | | package net.jacekk.bridge; |
| | | |
| | | public class BridgeResult { |
| | | public enum PointsFor { |
File was renamed from src/net/jacekk/brydz/android/MainActivity.java |
| | |
| | | package net.jacekk.brydz.android; |
| | | package net.jacekk.bridge.android; |
| | | |
| | | import android.app.Activity; |
| | | import android.os.Bundle; |
| | |
| | | import android.widget.SeekBar; |
| | | import android.widget.TextView; |
| | | import android.widget.ToggleButton; |
| | | import net.jacekk.brydz.BridgeCompute; |
| | | import net.jacekk.brydz.BridgeResult; |
| | | |
| | | import net.jacekk.bridge.R; |
| | | import net.jacekk.bridge.BridgeCompute; |
| | | import net.jacekk.bridge.BridgeResult; |
| | | |
| | | public class MainActivity extends Activity { |
| | | private SeekBar BidSlider; |
| | | private TextView BidText; |
| | | |
| | | private ToggleButton CDToggle; |
| | | private ToggleButton HSToggle; |
| | | private ToggleButton NTToggle; |
| | | private ToggleButton MinorSuitsToggle; |
| | | private ToggleButton MajorSuitsToggle; |
| | | private ToggleButton NoTrumpToggle; |
| | | |
| | | private ToggleButton NormToggle; |
| | | private ToggleButton DblToggle; |
| | | private ToggleButton ReDblToggle; |
| | | private ToggleButton ContractToggle; |
| | | private ToggleButton DoubleToggle; |
| | | private ToggleButton RedoubleToggle; |
| | | |
| | | private ToggleButton BBToggle; |
| | | private ToggleButton BAToggle; |
| | | private ToggleButton ABToggle; |
| | | private ToggleButton AAToggle; |
| | | private ToggleButton NNToggle; |
| | | private ToggleButton NVToggle; |
| | | private ToggleButton VNToggle; |
| | | private ToggleButton VVToggle; |
| | | |
| | | private EditText PCInput; |
| | | private EditText TricksInput; |
| | |
| | | BidSlider = (SeekBar) findViewById(R.id.BidSlider); |
| | | BidText = (TextView) findViewById(R.id.BidText); |
| | | |
| | | CDToggle = (ToggleButton) findViewById(R.id.CDToggle); |
| | | HSToggle = (ToggleButton) findViewById(R.id.HSToggle); |
| | | NTToggle = (ToggleButton) findViewById(R.id.NTToggle); |
| | | MinorSuitsToggle = (ToggleButton) findViewById(R.id.MinorSuitsToggle); |
| | | MajorSuitsToggle = (ToggleButton) findViewById(R.id.MajorSuitsToggle); |
| | | NoTrumpToggle = (ToggleButton) findViewById(R.id.NoTrumpToggle); |
| | | |
| | | NormToggle = (ToggleButton) findViewById(R.id.NormToggle); |
| | | DblToggle = (ToggleButton) findViewById(R.id.DblToggle); |
| | | ReDblToggle = (ToggleButton) findViewById(R.id.ReDblToggle); |
| | | ContractToggle = (ToggleButton) findViewById(R.id.ContractToggle); |
| | | DoubleToggle = (ToggleButton) findViewById(R.id.DoubleToggle); |
| | | RedoubleToggle = (ToggleButton) findViewById(R.id.RedoubleToggle); |
| | | |
| | | BBToggle = (ToggleButton) findViewById(R.id.BBToggle); |
| | | BAToggle = (ToggleButton) findViewById(R.id.BAToggle); |
| | | ABToggle = (ToggleButton) findViewById(R.id.ABToggle); |
| | | AAToggle = (ToggleButton) findViewById(R.id.AAToggle); |
| | | NNToggle = (ToggleButton) findViewById(R.id.NNToggle); |
| | | NVToggle = (ToggleButton) findViewById(R.id.NVToggle); |
| | | VNToggle = (ToggleButton) findViewById(R.id.VNToggle); |
| | | VVToggle = (ToggleButton) findViewById(R.id.VVToggle); |
| | | |
| | | PCInput = (EditText) findViewById(R.id.PCInput); |
| | | TricksInput = (EditText) findViewById(R.id.TricksInput); |
| | | |
| | | resultText = (TextView) findViewById(R.id.resultText); |
| | | resultText = (TextView) findViewById(R.id.ResultsText); |
| | | |
| | | BidSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { |
| | | @Override |
| | |
| | | public void onClick(View view) { |
| | | ToggleButton toggle = (ToggleButton) view; |
| | | |
| | | if (!toggle.equals(CDToggle)) |
| | | CDToggle.setChecked(false); |
| | | if (!toggle.equals(HSToggle)) |
| | | HSToggle.setChecked(false); |
| | | if (!toggle.equals(NTToggle)) |
| | | NTToggle.setChecked(false); |
| | | if (!toggle.equals(MinorSuitsToggle)) |
| | | MinorSuitsToggle.setChecked(false); |
| | | if (!toggle.equals(MajorSuitsToggle)) |
| | | MajorSuitsToggle.setChecked(false); |
| | | if (!toggle.equals(NoTrumpToggle)) |
| | | NoTrumpToggle.setChecked(false); |
| | | |
| | | updateResults(); |
| | | } |
| | | }; |
| | | |
| | | CDToggle.setOnClickListener(colorClickListener); |
| | | HSToggle.setOnClickListener(colorClickListener); |
| | | NTToggle.setOnClickListener(colorClickListener); |
| | | MinorSuitsToggle.setOnClickListener(colorClickListener); |
| | | MajorSuitsToggle.setOnClickListener(colorClickListener); |
| | | NoTrumpToggle.setOnClickListener(colorClickListener); |
| | | |
| | | ToggleButton.OnClickListener bidClickListener = new ToggleButton.OnClickListener() { |
| | | @Override |
| | | public void onClick(View view) { |
| | | ToggleButton toggle = (ToggleButton) view; |
| | | |
| | | if (!toggle.equals(NormToggle)) |
| | | NormToggle.setChecked(false); |
| | | if (!toggle.equals(DblToggle)) |
| | | DblToggle.setChecked(false); |
| | | if (!toggle.equals(ReDblToggle)) |
| | | ReDblToggle.setChecked(false); |
| | | if (!toggle.equals(ContractToggle)) |
| | | ContractToggle.setChecked(false); |
| | | if (!toggle.equals(DoubleToggle)) |
| | | DoubleToggle.setChecked(false); |
| | | if (!toggle.equals(RedoubleToggle)) |
| | | RedoubleToggle.setChecked(false); |
| | | |
| | | updateResults(); |
| | | } |
| | | }; |
| | | |
| | | NormToggle.setOnClickListener(bidClickListener); |
| | | DblToggle.setOnClickListener(bidClickListener); |
| | | ReDblToggle.setOnClickListener(bidClickListener); |
| | | ContractToggle.setOnClickListener(bidClickListener); |
| | | DoubleToggle.setOnClickListener(bidClickListener); |
| | | RedoubleToggle.setOnClickListener(bidClickListener); |
| | | |
| | | ToggleButton.OnClickListener baClickListener = new ToggleButton.OnClickListener() { |
| | | public void onClick(View view) { |
| | | ToggleButton toggle = (ToggleButton) view; |
| | | |
| | | if (!toggle.equals(AAToggle)) |
| | | AAToggle.setChecked(false); |
| | | if (!toggle.equals(ABToggle)) |
| | | ABToggle.setChecked(false); |
| | | if (!toggle.equals(BAToggle)) |
| | | BAToggle.setChecked(false); |
| | | if (!toggle.equals(BBToggle)) |
| | | BBToggle.setChecked(false); |
| | | if (!toggle.equals(VVToggle)) |
| | | VVToggle.setChecked(false); |
| | | if (!toggle.equals(VNToggle)) |
| | | VNToggle.setChecked(false); |
| | | if (!toggle.equals(NVToggle)) |
| | | NVToggle.setChecked(false); |
| | | if (!toggle.equals(NNToggle)) |
| | | NNToggle.setChecked(false); |
| | | |
| | | updateResults(); |
| | | } |
| | | }; |
| | | |
| | | AAToggle.setOnClickListener(baClickListener); |
| | | ABToggle.setOnClickListener(baClickListener); |
| | | BAToggle.setOnClickListener(baClickListener); |
| | | BBToggle.setOnClickListener(baClickListener); |
| | | VVToggle.setOnClickListener(baClickListener); |
| | | VNToggle.setOnClickListener(baClickListener); |
| | | NVToggle.setOnClickListener(baClickListener); |
| | | NNToggle.setOnClickListener(baClickListener); |
| | | |
| | | PCInput.addTextChangedListener( |
| | | new TextWatcher() { |
| | |
| | | int bid = BidSlider.getProgress(); |
| | | |
| | | int color = 0; |
| | | if (HSToggle.isChecked()) |
| | | if (MajorSuitsToggle.isChecked()) |
| | | color = 1; |
| | | if (NTToggle.isChecked()) |
| | | if (NoTrumpToggle.isChecked()) |
| | | color = 2; |
| | | |
| | | int dbl = 0; |
| | | if (DblToggle.isChecked()) |
| | | if (DoubleToggle.isChecked()) |
| | | dbl = 1; |
| | | if (ReDblToggle.isChecked()) |
| | | if (RedoubleToggle.isChecked()) |
| | | dbl = 2; |
| | | |
| | | int baba = 0; |
| | | if (BAToggle.isChecked()) |
| | | baba = 1; |
| | | if (ABToggle.isChecked()) |
| | | baba = 2; |
| | | if (AAToggle.isChecked()) |
| | | baba = 3; |
| | | int vulnerability = 0; |
| | | if (NVToggle.isChecked()) |
| | | vulnerability = 1; |
| | | if (VNToggle.isChecked()) |
| | | vulnerability = 2; |
| | | if (VVToggle.isChecked()) |
| | | vulnerability = 3; |
| | | |
| | | int PC = -1; |
| | | try { |
| | | PC = Integer.parseInt(PCInput.getText().toString()); |
| | | } catch (NumberFormatException e) { |
| | | } catch (NumberFormatException ignored) { |
| | | } |
| | | |
| | | int tricks = -1; |
| | | try { |
| | | tricks = Integer.parseInt(TricksInput.getText().toString()); |
| | | } catch (NumberFormatException e) { |
| | | } catch (NumberFormatException ignored) { |
| | | } |
| | | |
| | | if (bid < 0 || bid > 7) { |
| | |
| | | return; |
| | | } |
| | | |
| | | if (baba < 0 || baba > 3) { |
| | | if (vulnerability < 0 || vulnerability > 3) { |
| | | resultText.setText(getString(R.string.invalid_baba)); |
| | | return; |
| | | } |
| | |
| | | return; |
| | | } |
| | | |
| | | BridgeResult result = bridgeCompute.compute(bid, color, dbl, baba, PC, tricks); |
| | | BridgeResult result = bridgeCompute.compute(bid, color, dbl, vulnerability, PC, tricks); |
| | | resultText.setText( |
| | | (result.pointsFor == BridgeResult.PointsFor.Us ? getString(R.string.result_for_us) : getString(R.string.result_for_them)) + |
| | | "\n" + getString(R.string.result_pts_wo_pc) + " " + result.pointsBefore + |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="fill_parent" |
| | | android:layout_height="fill_parent" |
| | | android:layout_margin="10dp" |
| | | android:orientation="vertical"> |
| | | |
| | | <SeekBar |
| | | android:id="@+id/BidSlider" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:indeterminate="false" |
| | | android:max="7" /> |
| | | |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:gravity="center_vertical" |
| | | android:orientation="horizontal" |
| | | android:weightSum="1"> |
| | | |
| | | <TextView |
| | | android:id="@+id/BidText" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_gravity="center" |
| | | android:layout_weight="0.25" |
| | | android:text="0" |
| | | android:textAlignment="gravity" |
| | | android:textAppearance="?android:attr/textAppearanceLarge" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/MinorSuitsToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="0.25" |
| | | android:checked="true" |
| | | android:text="@string/minor_suits" |
| | | android:textOff="@string/minor_suits" |
| | | android:textOn="@string/minor_suits" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/MajorSuitsToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="0.25" |
| | | android:checked="false" |
| | | android:text="@string/major_suits" |
| | | android:textOff="@string/major_suits" |
| | | android:textOn="@string/major_suits" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/NoTrumpToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="0.25" |
| | | android:checked="false" |
| | | android:text="@string/no_trumph" |
| | | android:textOff="@string/no_trumph" |
| | | android:textOn="@string/no_trumph" /> |
| | | </LinearLayout> |
| | | |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:orientation="horizontal"> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/ContractToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:checked="true" |
| | | android:text="@string/bid_normal" |
| | | android:textOff="@string/bid_normal" |
| | | android:textOn="@string/bid_normal" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/DoubleToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:checked="false" |
| | | android:text="@string/bid_double" |
| | | android:textOff="@string/bid_double" |
| | | android:textOn="@string/bid_double" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/RedoubleToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:checked="false" |
| | | android:text="@string/bid_redouble" |
| | | android:textOff="@string/bid_redouble" |
| | | android:textOn="@string/bid_redouble" /> |
| | | </LinearLayout> |
| | | |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:orientation="horizontal"> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/NNToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:checked="true" |
| | | android:text="@string/before_before" |
| | | android:textOff="@string/before_before" |
| | | android:textOn="@string/before_before" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/NVToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:checked="false" |
| | | android:text="@string/before_after" |
| | | android:textOff="@string/before_after" |
| | | android:textOn="@string/before_after" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/VNToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:checked="false" |
| | | android:text="@string/after_before" |
| | | android:textOff="@string/after_before" |
| | | android:textOn="@string/after_before" /> |
| | | |
| | | <ToggleButton |
| | | android:id="@+id/VVToggle" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:checked="false" |
| | | android:text="@string/after_after" |
| | | android:textOff="@string/after_after" |
| | | android:textOn="@string/after_after" /> |
| | | </LinearLayout> |
| | | |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:orientation="horizontal"> |
| | | |
| | | <TextView |
| | | android:id="@+id/PCText" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_marginRight="10dp" |
| | | android:labelFor="@+id/PCInput" |
| | | android:text="@string/pc" |
| | | android:textAppearance="?android:attr/textAppearanceLarge" /> |
| | | |
| | | <EditText |
| | | android:id="@+id/PCInput" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:ems="4" |
| | | android:inputType="number" /> |
| | | |
| | | <Space |
| | | android:layout_width="20dp" |
| | | android:layout_height="wrap_content" /> |
| | | |
| | | <TextView |
| | | android:id="@+id/TricksText" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_marginRight="10dp" |
| | | android:labelFor="@+id/TricksInput" |
| | | android:text="@string/tricks" |
| | | android:textAppearance="?android:attr/textAppearanceLarge" /> |
| | | |
| | | <EditText |
| | | android:id="@+id/TricksInput" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:ems="4" |
| | | android:inputType="number" /> |
| | | </LinearLayout> |
| | | |
| | | <TextView |
| | | android:id="@+id/ResultsText" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:layout_marginTop="10dp" |
| | | android:text="@string/invalid_empty" |
| | | android:textAppearance="?android:attr/textAppearanceMedium" /> |
| | | </LinearLayout> |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <resources> |
| | | <string name="app_name">Obliczenia brydżowe</string> |
| | | |
| | | <string name="minor_suits">♣ / ♦</string> |
| | | <string name="major_suits">♥ / ♠</string> |
| | | <string name="no_trumph">NT</string> |
| | | |
| | | <string name="before_before">przed/przed</string> |
| | | <string name="before_after">przed/po</string> |
| | | <string name="after_before">po/przed</string> |
| | | <string name="after_after">po/po</string> |
| | | |
| | | <string name="bid_normal">norm.</string> |
| | | <string name="bid_double">ktr.</string> |
| | | <string name="bid_redouble">rektr.</string> |
| | | |
| | | <string name="pc">PC:</string> |
| | | <string name="tricks">Lew:</string> |
| | | |
| | | <string name="invalid_empty">Podaj wszystkie dane.</string> |
| | | <string name="invalid_bid">Niepoprawny kontrakt.</string> |
| | | <string name="invalid_color">Niepoprawny kolor kontraktu.</string> |
| | | <string name="invalid_dbl">Niepoprawna informacja o kontrze.</string> |
| | | <string name="invalid_baba">Niepoprawna informacja o partii.</string> |
| | | <string name="invalid_pc">Niepoprawna ilość punktów.</string> |
| | | <string name="invalid_tricks">Niepoprawna ilość wziętych lew.</string> |
| | | <string name="invalid_pass">Przy czterech pasach podaj większą liczę punktów.</string> |
| | | |
| | | <string name="result_for_us">Zapis dla rozgrywających.</string> |
| | | <string name="result_for_them">Zapis dla przeciwników.</string> |
| | | |
| | | <string name="result_pts_wo_pc">Punktów (bez PC):</string> |
| | | <string name="result_pts">Punktów (z PC):</string> |
| | | <string name="result_imps">IMP-ów:</string> |
| | | <string name="result_percent">Procent:</string> |
| | | </resources> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <resources> |
| | | <string name="app_name">Bridge scoring</string> |
| | | |
| | | <string name="minor_suits">♣ / ♦</string> |
| | | <string name="major_suits">♥ / ♠</string> |
| | | <string name="no_trumph">NT</string> |
| | | |
| | | <string name="before_before">non./non</string> |
| | | <string name="before_after">non./vuln.</string> |
| | | <string name="after_before">vunl./non.</string> |
| | | <string name="after_after">vuln./vuln.</string> |
| | | |
| | | <string name="bid_normal">norm.</string> |
| | | <string name="bid_double">dbl.</string> |
| | | <string name="bid_redouble">redbl.</string> |
| | | |
| | | <string name="pc">PC:</string> |
| | | <string name="tricks">Tricks:</string> |
| | | |
| | | <string name="invalid_empty">Enter required information.</string> |
| | | <string name="invalid_bid">Invalid contract level.</string> |
| | | <string name="invalid_color">Invalid contract color.</string> |
| | | <string name="invalid_dbl">Invalid information about doubling/redoubling.</string> |
| | | <string name="invalid_baba">Invalid information about vulnerability.</string> |
| | | <string name="invalid_pc">Invalid number for Milton Work Point Count.</string> |
| | | <string name="invalid_tricks">Invalid number of tricks taken.</string> |
| | | <string name="invalid_pass">For four passes enter data for side with more PCs.</string> |
| | | |
| | | <string name="result_for_us">Score for declaring side.</string> |
| | | <string name="result_for_them">Score for defending side.</string> |
| | | |
| | | <string name="result_pts_wo_pc">Points (excl. PC):</string> |
| | | <string name="result_pts">Points (incl. PC):</string> |
| | | <string name="result_imps">IMPs:</string> |
| | | <string name="result_percent">Percent:</string> |
| | | </resources> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <resources> |
| | | <style name="AppTheme" parent="android:Theme.Holo"> |
| | | </style> |
| | | </resources> |
New file |
| | |
| | | // Top-level build file where you can add configuration options common to all sub-projects/modules. |
| | | |
| | | buildscript { |
| | | repositories { |
| | | jcenter() |
| | | } |
| | | dependencies { |
| | | classpath 'com.android.tools.build:gradle:1.0.0' |
| | | |
| | | // NOTE: Do not place your application dependencies here; they belong |
| | | // in the individual module build.gradle files |
| | | } |
| | | } |
| | | |
| | | allprojects { |
| | | repositories { |
| | | jcenter() |
| | | } |
| | | } |
New file |
| | |
| | | #Wed Apr 10 15:27:10 PDT 2013 |
| | | distributionBase=GRADLE_USER_HOME |
| | | distributionPath=wrapper/dists |
| | | zipStoreBase=GRADLE_USER_HOME |
| | | zipStorePath=wrapper/dists |
| | | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip |