Commit b7ce1e61 by Miguel Do Carmo

Projecto Subido ... por favor no sea malo

ah! aplique el SharedPreferences y guardo el nombre con su record papa!
parents
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme>
</component>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.example.juegotocame"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
/** poner compilador version actual !!! prueba **/
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
package com.example.juegotocame
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.example.juegotocame", appContext.packageName)
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.juegotocame">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:name=".SharedApp"
android:theme="@style/AppTheme">
<activity android:name=".JuegoMatameActivity"></activity>
<activity android:name=".JuegoPersiguemeActivity" />
<activity android:name=".JuegoTocameActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
\ No newline at end of file
package com.example.juegotocame
import android.animation.ObjectAnimator
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.os.CountDownTimer
import android.util.DisplayMetrics
import android.view.ViewGroup
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import kotlinx.android.synthetic.main.activity_juego_matame.*
class JuegoMatameActivity : AppCompatActivity() {
internal val tiempo : Long = 15_000
internal var puntos : Int = 0
internal var vida : Int = 100
internal var jugadorPuntajeRecord = 0
internal lateinit var jugadorRecord : String
internal lateinit var jugadorActual : String
private val ALTO = 3
private val ANCHO = 4
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_juego_matame)
val intentRecibido : Intent = intent
/**Recibe Intent**/
jugadorActual = intentRecibido.getStringExtra("jugador")
jugadorRecord = intentRecibido.getStringExtra("jugadorAntiguo")
jugadorPuntajeRecord = intentRecibido.getIntExtra("jugadorRecordA", 0)
jugadorIngresado3.text = "Bienvenido $jugadorActual"
campeon3.text = "Record Anterior \n$jugadorRecord: $jugadorPuntajeRecord"
matame.isVisible = false
matame.setText("100%")
jugar3.setOnClickListener {
matame.isVisible = true
matame.isEnabled =true
volverInicio3.isVisible = false
campeon3.isVisible = false
jugar3.isVisible = false
puntos = 0
empiezaConteo()
}
matame.setOnClickListener {
puntos+=1
vida-=5
matame.setText("${vida}")
puntajeJuego3.setText("Puntos Alcanzados: $puntos")
adjustButtonSize(matame)
ObjectAnimator.ofFloat(matame, "translationX", ((-200..200).random()).toFloat()).apply {
duration = 100
start()
}
ObjectAnimator.ofFloat(matame, "translationY", ((-200..700).random()).toFloat()).apply {
duration = 100
start()
}
}
volverInicio3.setOnClickListener {
val devolverCampeon : Intent = Intent()
devolverCampeon.putExtra("jugador_finalizo",jugadorActual)
devolverCampeon.putExtra("puntaje", puntos)
devolverCampeon.putExtra("campeonNuevo", jugadorRecord)
devolverCampeon.putExtra("campeonRecord", jugadorPuntajeRecord)
setResult(Activity.RESULT_OK,devolverCampeon)
finish()
}
}//fin de onCreate
private fun adjustButtonSize(button : Button ) {
//var displayMetrics : DisplayMetrics = getResources().getDisplayMetrics()
//var width : Int = displayMetrics.widthPixels
//var height : Int = displayMetrics.heightPixels
var params : ViewGroup.LayoutParams = matame.getLayoutParams()
params.height -= (ALTO)
params.width -= (ANCHO)
button.setLayoutParams(params);
}
private fun empiezaConteo()
{
object : CountDownTimer(tiempo, 1000) {
/**onTick se encarga de que el contador disminuya relacion a 1000 ms**/
override fun onTick(millisUntilFinished: Long) {
if (vida == 0) {
finish()
}
tiempoTexto3.setText("00:${millisUntilFinished / 1000}")
jugar3.isEnabled = false
}
/**onFinish es un metodo que al terminar de contar puede realizar algun procedimiento **/
override fun onFinish() {
termino()
}
}.start()
}// Fin Conteo
fun termino(){
if (vida <= 0) tiempoTexto3.setText("Haz vencido con $puntos hits al pobre boton")
else tiempoTexto3.setText("El boton a uido!")
jugar3.isEnabled = true
matame.isEnabled = false
if (jugadorPuntajeRecord < puntos) {
puntajeJuego3.setText("$jugadorActual: $puntos\nSupero el Record de $jugadorRecord: $jugadorPuntajeRecord")
jugadorRecord = jugadorActual
jugadorPuntajeRecord = puntos
} else {
puntajeJuego3.setText("$jugadorActual: $puntos")
}
matame.isVisible = false
volverInicio3.isVisible = true
jugar3.isVisible = true
}
}
package com.example.juegotocame
import android.animation.ObjectAnimator
import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.CountDownTimer
import androidx.core.view.isVisible
import kotlinx.android.synthetic.main.activity_juego_persigueme.*
class JuegoPersiguemeActivity : AppCompatActivity() {
internal val tiempo : Long = 15_000
internal var puntos : Int = 0
internal var jugadorPuntajeRecord = 0
internal lateinit var jugadorRecord : String
internal lateinit var jugadorActual : String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_juego_persigueme)
val intentRecibido : Intent = intent
/**Recibe Intent**/
jugadorActual = intentRecibido.getStringExtra("jugador")
jugadorRecord = intentRecibido.getStringExtra("jugadorAntiguo")
jugadorPuntajeRecord = intentRecibido.getIntExtra("jugadorRecordA", 0)
jugadorIngresado2.text = "Bienvenido $jugadorActual"
campeon2.text = "Record Anterior \n$jugadorRecord: $jugadorPuntajeRecord"
jugar2.setOnClickListener {
botonEscurridizo.isVisible = true
botonEscurridizo.isEnabled =true
volverInicio2.isVisible = false
campeon2.isVisible = false
jugar2.isVisible = false
puntos = 0
empiezaConteo()
}
botonEscurridizo.setOnClickListener {
puntos += 1
puntajeJuego2.setText("Puntos Acumulados: ${puntos}")
ObjectAnimator.ofFloat(botonEscurridizo, "translationX", ((-200..200).random()).toFloat()).apply {
duration = 100
start()
}
ObjectAnimator.ofFloat(botonEscurridizo, "translationY", ((-200..700).random()).toFloat()).apply {
duration = 100
start()
}
}
volverInicio2.setOnClickListener {
val devolverCampeon : Intent = Intent()
devolverCampeon.putExtra("jugador_finalizo",jugadorActual)
devolverCampeon.putExtra("puntaje", puntos)
devolverCampeon.putExtra("campeonNuevo", jugadorRecord)
devolverCampeon.putExtra("campeonRecord", jugadorPuntajeRecord)
setResult(Activity.RESULT_OK,devolverCampeon)
finish()
}
}//fin de onCreate
fun empiezaConteo()
{
object : CountDownTimer(tiempo, 1000) {
/**onTick se encarga de que el contador disminuya relacion a 1000 ms**/
override fun onTick(millisUntilFinished: Long) {
tiempoTexto2.setText("00:${millisUntilFinished / 1000}")
jugar2.isEnabled = false
if (millisUntilFinished <= tiempo * 0.6) seAcabaElTiempo2.setText("Se te acaba el tiempo Crack!")
}
/**onFinish es un metodo que al terminar de contar puede realizar algun procedimiento **/
override fun onFinish() {
tiempoTexto2.setText("Opama che KP!")
jugar2.isEnabled = true
botonEscurridizo.isEnabled = false
if (jugadorPuntajeRecord < puntos) {
puntajeJuego2.setText ("$jugadorActual: $puntos\nSupero el Record de $jugadorRecord: $jugadorPuntajeRecord")
jugadorRecord = jugadorActual
jugadorPuntajeRecord = puntos
} else {
puntajeJuego2.setText("$jugadorActual: $puntos")
}
botonEscurridizo.isVisible = false
volverInicio2.isVisible = true
jugar2.isVisible = true
}
}.start()
}
}
package com.example.juegotocame
import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.CountDownTimer
import androidx.core.view.isVisible
import kotlinx.android.synthetic.main.activity_juego_tocame.*
class JuegoTocameActivity : AppCompatActivity() {
internal val tiempo : Long = 15_000
internal var puntos : Int = 0
internal var jugadorPuntajeRecord = 0
internal lateinit var jugadorRecord : String
internal lateinit var jugadorActual : String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_juego_tocame)
val intentRecibido : Intent = intent
/**Recibe Intent**/
jugadorActual = intentRecibido.getStringExtra("jugador")
jugadorRecord = intentRecibido.getStringExtra("jugadorAntiguo")
jugadorPuntajeRecord = intentRecibido.getIntExtra("jugadorRecordA", 0)
jugadorIngresado.text = "Bienvenido $jugadorActual"
campeon.text = "Record Anterior \n$jugadorRecord: $jugadorPuntajeRecord"
jugar.setOnClickListener {
botonTorturado.isVisible = true
botonTorturado.isEnabled = true
volverInicio.isVisible = false
campeon.isVisible = false
puntos = 0
empiezaConteo()
}
botonTorturado.setOnClickListener {
puntos = puntos + 1
puntajeJuego.setText("Puntos Acumulados: ${puntos}")
}
volverInicio.setOnClickListener {
val devolverCampeon : Intent = Intent()
devolverCampeon.putExtra("jugador_finalizo",jugadorActual)
devolverCampeon.putExtra("puntaje", puntos)
devolverCampeon.putExtra("campeonNuevo", jugadorRecord)
devolverCampeon.putExtra("campeonRecord", jugadorPuntajeRecord)
setResult(Activity.RESULT_OK,devolverCampeon)
finish()
}
}//fin onCreate
fun empiezaConteo()
{
object : CountDownTimer(tiempo, 1000) {
/**onTick se encarga de que el contador disminuya relacion a 1000 ms**/
override fun onTick(millisUntilFinished: Long) {
tiempoTexto.setText("00:${millisUntilFinished / 1000}")
jugar.isEnabled = false
if (millisUntilFinished <= tiempo * 0.6) seAcabaElTiempo.setText("Se te acaba el tiempo Crack!")
}
/**onFinish es un metodo que al terminar de contar puede realizar algun procedimiento **/
override fun onFinish() {
tiempoTexto.setText("Opama che KP!")
jugar.isEnabled = true
botonTorturado.isEnabled = false
if (jugadorPuntajeRecord < puntos) {
puntajeJuego.setText ("$jugadorActual: $puntos\nSupero el Record de $jugadorRecord: $jugadorPuntajeRecord")
jugadorRecord = jugadorActual
jugadorPuntajeRecord = puntos
} else {
puntajeJuego.setText("$jugadorActual: $puntos")
}
botonTorturado.isEnabled = false
volverInicio.isVisible = true
}
}.start()
}
}
package com.example.juegotocame
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.ActionMode
import android.view.Gravity
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
/**Textos**/
internal lateinit var jugadorNuevo : EditText
/**Botones**/
internal lateinit var registrarJugador : Button
/**Entidades**/
internal var jugadorAntiguo : String ="Android"
internal var jugadorRecordA : Int = 1
internal val EMPTY_VALUE = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
configView()
/**Capturas**/
jugadorNuevo = findViewById(R.id.jugadorNuevo)
registrarJugador = findViewById(R.id.registrarJugador)
registrarJugador.setOnClickListener{
if(jugadorNuevo.text.toString() == ""){
val mensaje = Toast.makeText(
applicationContext,
"Por favor Ingrese algun Alias\n\t\t\t\t\tNo sea flojo",
Toast.LENGTH_LONG
)
mensaje.setGravity(Gravity.TOP, 0, 100)
mensaje.show()
}else {
SharedApp.prefs.name = jugadorNuevo.text.toString()
configView()
}
}//fin de registrar Jugador Prueba de captura Nombre
borrarJugador.setOnClickListener {
borrarJugador()
configView()
}
juegoTocame.setOnClickListener{
val intentJuegoTocame : Intent = Intent(this, JuegoTocameActivity::class.java)
intentJuegoTocame.putExtra("jugador", jugadorNuevo.text.toString())
intentJuegoTocame.putExtra("jugadorAntiguo", jugadorAntiguo)
intentJuegoTocame.putExtra("jugadorRecordA", jugadorRecordA)
startActivityForResult(intentJuegoTocame, 10)
}
juegoSigueme.setOnClickListener{
val intentJuegoPersigueme : Intent = Intent(this, JuegoPersiguemeActivity::class.java)
intentJuegoPersigueme.putExtra("jugador", jugadorNuevo.text.toString())
intentJuegoPersigueme.putExtra("jugadorAntiguo", jugadorAntiguo)
intentJuegoPersigueme.putExtra("jugadorRecordA", jugadorRecordA)
startActivityForResult(intentJuegoPersigueme, 20)
}
juegoMatame.setOnClickListener{
val intentJuegoMatame : Intent = Intent(this, JuegoMatameActivity::class.java)
intentJuegoMatame.putExtra("jugador", jugadorNuevo.text.toString())
intentJuegoMatame.putExtra("jugadorAntiguo", jugadorAntiguo)
intentJuegoMatame.putExtra("jugadorRecordA", jugadorRecordA)
startActivityForResult(intentJuegoMatame, 30)
}
}//fin de onCreate
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(data != null){
if(resultCode == Activity.RESULT_OK){
jugadorRegistrado.setText("El jugador ${data.getStringExtra("jugador_finalizo")}, hizo ${data.getIntExtra("puntaje", 0)} puntos!")
jugadorAntiguo = data.getStringExtra("campeonNuevo")!!
if(jugadorRecordA < data.getIntExtra("campeonRecord", 0)) SharedApp.prefs.puntos = data.getIntExtra("campeonRecord", 0)
jugadorRecordA = data.getIntExtra("campeonRecord", 0)
}
}
}
private fun showProfile(){
jugadorRegistrado.setText("El jugador ${SharedApp.prefs.name}, hizo ${SharedApp.prefs.puntos} puntos!")
//tvName.text = "Hola ${SharedApp.prefs.name}"
//btnDeleteValue.visibility = View.VISIBLE
//campoUsuario.visibility = View.INVISIBLE
//registrar.visibility = View.INVISIBLE
}
private fun showGuest(){
//jugadorRegistrado.setText("El jugador ${SharedApp.prefs.name}, hizo ${SharedApp.prefs.name} puntos!")
//tvName.visibility = View.INVISIBLE
//btnDeleteValue.visibility = View.INVISIBLE
//campoUsuario.visibility = View.VISIBLE
//registrar.visibility = View.VISIBL
if (SharedApp.prefs.name != "") {
val mensaje = Toast.makeText(
applicationContext,
"Bienvenido ${jugadorNuevo.text}",
Toast.LENGTH_LONG
)
mensaje.setGravity(Gravity.TOP, 0, 100)
mensaje.show()
}
}
private fun configView(){
if(isSavedName()) showProfile() else showGuest()
}
private fun isSavedName():Boolean{
val myName = SharedApp.prefs.name
return myName != EMPTY_VALUE
}
private fun borrarJugador(){
SharedApp.prefs.name = EMPTY_VALUE
configView()
}
}
package com.example.juegotocame
import android.content.Context
import android.content.SharedPreferences
class Prefs (context : Context) {
val PREF_NAME ="com.example.juegotocame"
val SHARED_NAME = "Android"
val SHARED_PUNTOS = "Puntos"
val prefs: SharedPreferences = context.getSharedPreferences(PREF_NAME, 0)
var name: String?
get() = prefs.getString(SHARED_NAME, "ANDROID")
set(value) = prefs.edit().putString(SHARED_NAME, value).apply()
var puntos: Int
get() = prefs.getInt(SHARED_PUNTOS, 0)
set(value) = prefs.edit().putInt(SHARED_PUNTOS, value).apply()
}
\ No newline at end of file
package com.example.juegotocame
import android.app.Application
class SharedApp : Application() {
companion object{
lateinit var prefs: Prefs
}
override fun onCreate() {
super.onCreate()
prefs=Prefs(applicationContext)
}
}
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:duration="200"
android:fromXScale="3.0"
android:fromYScale="2.0"
android:pivotX="@android:integer/config_shortAnimTime"
android:pivotY="@android:integer/config_shortAnimTime"/>
</set>
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".JuegoMatameActivity">
<TextView
android:id="@+id/jugadorIngresado3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="30dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/puntajeJuego3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/jugadorIngresado3" />
<TextView
android:id="@+id/tiempoTexto3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/puntajeJuego3" />
<Button
android:id="@+id/jugar3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="104dp"
android:layout_marginRight="104dp"
android:layout_marginBottom="148dp"
android:text="Jugar!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/seAcabaElTiempo3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="8dp"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tiempoTexto3" />
<TextView
android:id="@+id/campeon3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="61dp"
android:layout_marginEnd="100dp"
android:layout_marginRight="100dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/matame"
android:layout_width="128dp"
android:layout_height="133dp"
android:layout_marginTop="236dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/volverInicio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginLeft="32dp"
android:layout_marginBottom="150dp"
android:text="Volver al Inicio"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".JuegoPersiguemeActivity">
<TextView
android:id="@+id/jugadorIngresado2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="311dp"
android:layout_marginLeft="311dp"
android:layout_marginTop="68dp"
android:layout_marginEnd="100dp"
android:layout_marginRight="100dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/puntajeJuego2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tiempoTexto2" />
<TextView
android:id="@+id/tiempoTexto2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="68dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/jugar2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jugar!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.554" />
<Button
android:id="@+id/volverInicio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="21dp"
android:layout_marginLeft="21dp"
android:layout_marginTop="503dp"
android:text="volver al Menu"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/seAcabaElTiempo2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="363dp"
android:layout_marginRight="363dp"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/puntajeJuego2" />
<TextView
android:id="@+id/campeon2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="299dp"
android:layout_marginLeft="299dp"
android:layout_marginTop="112dp"
android:layout_marginEnd="112dp"
android:layout_marginRight="112dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/botonEscurridizo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="269dp"
android:text="Pulsame!"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:paddingLeft="16dp"
android:paddingTop="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
tools:context=".JuegoTocameActivity">
<TextView
android:id="@+id/jugadorIngresado"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginLeft="50dp"
android:layout_marginTop="48dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/puntajeJuego"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginLeft="50dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/jugadorIngresado" />
<TextView
android:id="@+id/tiempoTexto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginLeft="50dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/puntajeJuego" />
<Button
android:id="@+id/botonTorturado"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="319dp"
android:text="Tocame BB"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/jugar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="110dp"
android:text="Jugar!"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/botonTorturado" />
<Button
android:id="@+id/volverInicio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="41dp"
android:layout_marginLeft="41dp"
android:layout_marginTop="66dp"
android:text="volver al Menu"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/jugar" />
<TextView
android:id="@+id/seAcabaElTiempo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginLeft="50dp"
android:layout_marginTop="131dp"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/campeon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="61dp"
android:layout_marginEnd="50dp"
android:layout_marginRight="50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/juegoMatame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginLeft="30dp"
android:layout_marginTop="44dp"
android:text="Matame"
android:textAllCaps="false"
app:layout_constraintStart_toEndOf="@+id/juegoSigueme"
app:layout_constraintTop_toBottomOf="@+id/registrarJugador" />
<TextView
android:id="@+id/campeonGuardado"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="61dp"
android:layout_marginEnd="50dp"
android:layout_marginRight="50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/jugadorRegistrado"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="200dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<EditText
android:id="@+id/jugadorNuevo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:layout_marginLeft="40dp"
android:layout_marginTop="168dp"
android:layout_marginEnd="100dp"
android:layout_marginRight="100dp"
android:ems="10"
android:hint="Alias Jugador"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/registrarJugador"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="52dp"
android:layout_marginEnd="17dp"
android:layout_marginRight="17dp"
android:text="Registrar Jugador"
android:textAllCaps="true"
app:layout_constraintEnd_toStartOf="@+id/borrarJugador"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/jugadorNuevo" />
<Button
android:id="@+id/juegoTocame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="34dp"
android:layout_marginLeft="34dp"
android:layout_marginTop="45dp"
android:text="Tocame"
android:textAllCaps="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.044"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/registrarJugador" />
<Button
android:id="@+id/juegoSigueme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginLeft="30dp"
android:layout_marginTop="44dp"
android:text="Sigueme"
android:textAllCaps="false"
app:layout_constraintStart_toEndOf="@+id/juegoTocame"
app:layout_constraintTop_toBottomOf="@+id/registrarJugador" />
<Button
android:id="@+id/borrarJugador"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="3dp"
android:layout_marginRight="3dp"
android:text="borrar Jugador"
app:layout_constraintBaseline_toBaselineOf="@+id/registrarJugador"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/registrarJugador" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="matame">200</dimen>
</resources>
\ No newline at end of file
<resources>
<string name="app_name">Juego Tocame Shared</string>
</resources>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
package com.example.juegotocame
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.3.61'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
#Mon Mar 02 08:01:31 PYST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ]; do
ls=$(ls -ld "$PRG")
link=$(expr "$ls" : '.*-> \(.*\)$')
if expr "$link" : '/.*' >/dev/null; then
PRG="$link"
else
PRG=$(dirname "$PRG")"/$link"
fi
done
SAVED="$(pwd)"
cd "$(dirname \"$PRG\")/" >/dev/null
APP_HOME="$(pwd -P)"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=$(basename "$0")
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn() {
echo "$*"
}
die() {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$(uname)" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
MINGW*)
msys=true
;;
NONSTOP*)
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ]; then
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ]; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ]; then
MAX_FD_LIMIT=$(ulimit -H -n)
if [ $? -eq 0 ]; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ]; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
APP_HOME=$(cygpath --path --mixed "$APP_HOME")
CLASSPATH=$(cygpath --path --mixed "$CLASSPATH")
JAVACMD=$(cygpath --unix "$JAVACMD")
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=$(find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null)
SEP=""
for dir in $ROOTDIRSRAW; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ]; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@"; do
CHECK=$(echo "$arg" | egrep -c "$OURCYGPATTERN" -)
CHECK2=$(echo "$arg" | egrep -c "^-") ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ]; then ### Added a condition
eval $(echo args$i)=$(cygpath --path --ignore --mixed "$arg")
else
eval $(echo args$i)="\"$arg\""
fi
i=$((i + 1))
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save() {
for i; do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/"; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
rootProject.name='JuegoTocame'
include ':app'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment