{"id":23224441,"url":"https://github.com/codingalecr/asteroids","last_synced_at":"2025-04-05T16:46:16.187Z","repository":{"id":98111997,"uuid":"157162259","full_name":"CodingAleCR/asteroids","owner":"CodingAleCR","description":null,"archived":false,"fork":false,"pushed_at":"2018-12-22T07:44:09.000Z","size":595,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-11T13:53:24.927Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodingAleCR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-12T05:43:51.000Z","updated_at":"2018-12-22T07:44:11.000Z","dependencies_parsed_at":"2023-05-23T20:15:36.475Z","dependency_job_id":null,"html_url":"https://github.com/CodingAleCR/asteroids","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingAleCR%2Fasteroids","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingAleCR%2Fasteroids/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingAleCR%2Fasteroids/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingAleCR%2Fasteroids/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodingAleCR","download_url":"https://codeload.github.com/CodingAleCR/asteroids/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247369933,"owners_count":20927927,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-18T23:34:11.310Z","updated_at":"2025-04-05T16:46:16.171Z","avatar_url":"https://github.com/CodingAleCR.png","language":"Java","readme":"## Descripción\nAsteroids es un popular videojuego de arcade basado en vectores lanzado en 1979 por Atari. El objetivo del juego es disparar y destruir asteroides evitando chocar contra los fragmentos de estos. Fue uno de los juegos más populares de la Época Dorada de los videojuegos arcade.\n\nAhora la intención es replicar este videojuego, adaptándolo a la plataforma Android como proyecto educativo.\n\n### Unidad 10\n- [X] Ejercicio: Almacenando las puntuaciones mediante un protocolo basado en sockets. (NOTA: La IP del servidor ha de ser:\"158.42.146.127:1234\")\n- [X] Ejercicio: Uso del servicio web PHP en Asteroides(Accediendo a http://158.42.146.127/puntuaciones/)\n- [X] Ejercicio: Un servicio web en un servidor de hosting (Tienes que añadir en la explicación de la tarea las dos URL con las acciones de\ntu servicio Web. Comprueba que al abrir estas URLs el servidor contesta correctamente.\n- [X] Ejercicio: Añade la posibilidad de usar tu hosting como una nueva opción de preferencias. Igual que ejercicio Uso del servicio web PHP en Asteroides pero ahora accediendo a http://tu_URL/puntuaciones/)\n\n_Extras:_\n- [X] Ejercicio: Uso síncrono de AsyncTask para acceso al servicio web PHP de puntuaciones.\n- [X] Desafío: Acceso al servidor de sockets con AsyncTask. Hay que eliminar configuración de StrictMode y usar los sockets en un nuevo hilo.\n- [ ] Ejercicio: Cargar imágenes de un RecyclerView con NetworkImageView\n- [ ] Desafío: Convertidor de divisas mediante un servicio web. El servidor propuesto en el libro no funciona. (Se entrega en el mismo proyecto. Añade un nuevo botón en la actividad principal de Asteroides)\n\n#### Servidor propio.\n- Lista de puntuaciones: http://asteroides-crc.herokuapp.com/puntuaciones/lista.php\n- Nueva puntuacion: http://asteroides-crc.herokuapp.com/puntuaciones/nueva.php\n\n### Unidad 9\n- [X] Ejercicio: Calculando la puntuación en Asteroides (obligatorio)\n- [X] Práctica: Almacenando las 10 últimas puntuaciones en preferencias\n- [X] Ejercicio: Almacenando puntuaciones en un fichero de la memoria interna.\n- [X] Practica: Configurar almacenamiento de puntuaciones desde preferencias (obligatorio)\n- [X] Ejercicio: Almacenando puntuaciones en la memoria externa\n- [X] Practica: Verificando acceso a la memoria externa\n- [X] Ejercicio: Leyendo puntuaciones de un fichero de recursos en res/raw\n- [X] Ejercicio: Leyendo puntuaciones de un fichero de recursos en assets\n- [X] Ejercicio: Almacenando puntuaciones en XML con SAX\n- [X] Ejercicio: Guardar una clase en JSON con la librería Gson\n- [X] Ejercicio: Guardar puntuaciones en JSON con la librería org.json\n- [X] Ejercicio: Utilizando una base de datos para guardar puntuaciones\n- [X] Ejercicio: Utilización del método query() para guardar puntuaciones.\n\n_Extras:_\n- [ ] Práctica: Almacenando puntuaciones en una carpeta de la aplicación de la memoria externa\n- [ ] Ejercicio: Almacenando puntuaciones en XML con DOM\n- [ ] Práctica: Guardar el string JSON en un fichero\n- [X] Ejercicio: Una base de datos relacional para las puntuaciones\n- [X] Ejercicio: Utilizando el método onUpgrade de la clase SQLiteOpenHelper\n- [ ] Ejercicio: Creación de un ContentProvider\n- [ ] Ejercicio: Acceso a PuntuacionesProvider desde Asteroides\n- [ ] Desafío: Permitir seleccionar diferentes almacenamientos externos\n\n### Unidad 8\n- [X] No existen ejercicios.\n\n### Unidad 7\n- [X] Ejercicio: Fragmentando los asteroides\n\n### Unidad 6\n- [X] Ejercicio: Aplicando eventos del ciclo de vida en la actividad Juego de\n (importante)\nAsteroides\n- [X] Práctica: Aplicando eventos del ciclo de vida en la actividad inicial.\n- [X] Práctica: Aplicando eventos del ciclo de vida en la actividad Juego para desactivar los sensores (importante)\n- [X] Práctica: Guardando el estado en la actividad inicial\n- [X] Ejercicio: Introduciendo audio con SoundPool en Asteroides.\n\n_Extras:_\n- [X] Propuesto: Reproducir musica de acuerdo a las preferencias.\n- [X] Entrega dentro de plazo (Entrega para antes del 17 de noviembre).\n\n### Unidad 5\n- [X] Ejercicio: Introduciendo movimiento en Asteroides\n- [X] Ejercicio: Introduciendo secciones críticas en Java (synchronized). Nota: _Tras realizar este ejercicio puede que la entrada en la actividad\nJuego se retrase unos segundos. Se explicó en el repaso de la U5 la\nforma de resolverlo._\n- [X] Ejercicio: Manejo de la nave con el teclado\n- [X] Práctica: Manejo de la nave con el teclado\n- [X] Ejercicio: Manejo de la nave con la pantalla táctil (importante)\n- [X] Ejercicio: Manejo de la nave con el sensor de orientación\n- [X] Práctica: Configurando tipo de entrada en preferencias\n- [X] Ejercicio: Introduciendo un misil en Asteroides (importante)\n\n_Extras:_\n- [X] Práctica: Manejo de la nave con el sensor de aceleración\n- [X] Práctica: Aceleración de la nave con sensores\n- [X] Desafio: Disparando varios misiles a la vez\n- [X] Desafio: Un misil basado en AnimationDrawable: En caso de que el usuario escoja gráficos en mapa de bits el drawable asignado al misil será de tipo AnimationDrawable, de forma que se muestre una animación con los tres gráficos proporcionados para el misil.\n\n### Unidad 4\n- [X] Ejercicio: Creando la actividad principal de Asteroides (importante)\n- [X] Ejercicio: La clase Gráfico (importante)\n- [X] Ejercicio: La clase VistaJuego (importante)\n- [X] Ejercicio: Introduciendo la nave en VistaJuego (importante)\n- [X] Ejercicio: Evitando que VistaJuego cambie su representación con el dispositivo en horizontal y en vertical\n- [X] Ejercicio: Representación vectorial de los asteroides\n- [X] Práctica: Introduciendo animaciones en Asteroides\n\n_Extras:_\n- [X] Práctica: Representación vectorial de la nave\n- [X] Desafío: Representación de los asteroides con VectorDrawable\n- [X] Desafío: Representación de la nave con VectorDrawable\n\n### Unidad 3\n- [X] Ejercicio: Implementación de una caja Acerca de\n- [X] Ejercicio: Un escuchador de evento por código\n- [X] Ejercicio: Añadiendo un menú a una actividad\n- [X] Ejercicio: Añadiendo una barra de acciones a nuestra aplicación\n- [X] Ejercicio: Añadiendo preferencias a Asteroides\n- [X] Práctica: Organizando preferencias (II)\n- [X] Ejercicio: Accediendo a los valores de las preferencias\n- [X] Ejercicio: Un RecyclerView en Asteroides (importante)\n- [X] Ejercicio: Selección de un elemento en un RecyclerView\n\n_Extras:_\n- [X] Práctica: Creación de iconos para la aplicación Asteroides\n\n### Unidad 2\n* [x] Ejercicio: Uso de FragmentTabHost\n* [x] Practica: Creación de aplicación Asteroides (importante)\n* [x] Practica: Recursos alternativos en Asteroides\n* [x] Ejercicio: Traducción de Asteroides\n* [x] Practica: Creando un Layout para tabletas en Asteroides\n* [x] Practica: Creando un estilo en Asteroides\n* [x] Practica: Creando un tema en Asteroides\n* [x] Ejercicio: Creación de un layout con ConstraintLayout\n* [x] Ejercicio: Líneas guía y cadenas en ConstraintLayout\n* [x] Ejercicio: Un botón con gráficos personalizados\n* [x] Ejercicio: Acceder y modificar las propiedades de las vistas\n* [x] Desafío: Creación de una lengüeta que solo visualice la calculadora\n(importante)\n\n### Extras:\n* [x] Desafío: Programación de la calculadora para convertir de € en ₧\n* [x] Desafío: Verificación de entradas incorrectas en calculadora\n* [x] Desafío: Programación de la calculadora para que sume\n* [x] Reiniciar operación al clickar \"=\" o \"Pts\".\n* [x] Habilitar función de \"+\" después de clickar \"=\" o \"Pts\".\n\n#### _Hecho con **Kotlin** :two_hearts:_","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingalecr%2Fasteroids","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodingalecr%2Fasteroids","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingalecr%2Fasteroids/lists"}