Ir al contenido

Buscar en La Comunidad

Mostrando resultados por etiquetas 'En Desarrollo'.

  • Buscar Por Etiquetas

    Añade etiquetas separadas por comas.
  • Buscar Por Autor

Tipo de Contenido


Foros

  • Contacto con el staff
    • Novedades / Anuncios del foro
    • Sugerencias
    • Problemas relacionados con el foro
  • Zona general de charla
    • Presentaciones
    • Charla
    • Zona de Humor, Curiosidades y Otros
    • Mascotas Vagos
    • Noticias del Mundo
    • Tecnología
    • Ayuda y consultas de carácter general
  • Zona GNU/Linux
    • Ayuda, consultas y soporte GNU/Linux
    • Distribuciones GNU/Linux
    • Repositorios. Software GNU/Linux
    • Personalización
    • Raspberry Pi
    • Arduino
    • Manuales / Tutoriales / Guías GNU/Linux
    • Programación
    • Noticias GNU/Linux
    • Hablando de GNU/Linux
  • Zona Gaming
    • Juegos GNU/Linux
    • Noticias Gamer
    • Charla Gamer
  • Zona Móvil
    • Ayuda y soporte para dispositivos móviles
    • Apps Móviles
    • Manuales / Tutoriales / Guías Móviles
    • Roms para dispositivos Móviles
    • Noticias sobre dispositivos Móviles
    • Hablando sobre dispositivos Móviles
  • Zona Mozilla
    • Ayuda, consultas y soporte Mozilla
    • Aplicaciones Mozilla
    • Roms Firefox OS
    • Manuales / Tutoriales / Guías Mozilla
    • Noticias Mozilla
    • Hablando de Mozilla
  • Microsoft
    • Papelera del Foro

Encontrar resultados en...

Encontrar resutados que...


Fecha de Creación

  • Start

    Fin


Última Actualización

  • Start

    Fin


Filtrar por numero de...

Joined

  • Start

    Fin


Grupo


Página Web


Diaspora


Pump


GNU Social


Google +


Twitter


Facebook


Xmpp


Skype


Steam


Desura


MediaGoblin


Youtube


Vimeo


Picasa


Flickr


Email


Lugar


Intereses

Encontramos 15 resultados

  1. ahora una pequeña alucinacion/sueño sobre un nuevo formato para forjar documentacion. la idea es que se unan programadores nivel dios y cualquera con propuestas al formato https://github.com/nasciiboy/morg si queren compilar el codigo de la carpeta gcc main.c regexp3.c exportToHtml.c fileUtils.c ripperMorg.c y para ejecutar ./a.out -e test.morg
  2. https://sourceforge.net/projects/visorrv1960/ Description(Biblia Reina-Valera 1960) Acceso a versículos muy rápido, Búsquedas de palabras en capítulos elegidos Visor de versículos en pantalla completa en letras grandes para usar con un proyector. Incluye juego de preguntas (en desarrollo) (Lenguaje de programación: Gambas) Este programa requiere la instalación previa de Gambas. Abrir la consola y agregar repositorio: sudo add-apt-repository ppa:gambas-team/gambas3 Luego actualiza las fuentes e instala Gambas3: sudo apt-get update sudo apt-get install gambas3 Sistema Operativo recomendado: Linux Mint Mate o Cinnamon (otros: Fedora, Debian,Ubuntu,Kubuntu,OpenSuse,Slackware,Mageia,Mandriva,EdulibreOS) NO DISPONIBLE PARA WINDOWS Paquetes disponibles: https://sourceforge.net/projects/visorrv1960/files/ Potente buscador de concordancias offline!! Acceso a versículos muy rápido. Imprimir resultado de búsquedas. Mirar videos mientras verificas versículos. Modo lectura. Mis Preguntas (sistema de estudio). Imprimir capítulos. Palabras (Lista personalizada, definición, etimología etc) Personas (Lista de personas bíblicas-biografías) Mi título, Mis referencias, Mis comentarios (En cada versículo) Ayudante de búsquedas Creador de capítulos en archivos .txt (Todos los libros o uno a elección)
  3. Descripcion: Realiza calculos para obtener dosis pediatricas, asi como el calculo el Indice de Masa Corporal, se agregara en el futuro la opciona para calcular fecha probable de parto, asi como nuevos medicamentos para calcular y entorno grafico. Lenguaje: Python Principal: ## Multi Herramienta Medica # Importa el modulo calculo import calculo, medicamentos # Variables continua = 1 # Loop principal while continua != 0: #Menu de eleccion print('''Bienvenido que deseas hacer: 1._ IMC. 2._Calcular medicamentos. 3._Cambiar peso y talla. 4._Salir ''' ) eleccion = int(input('Que deseas hacer: ')) if eleccion == 1: #Llama a la funcion imc del modulo calculo para generar el IMC calculo.imc(peso, talla) elif eleccion == 2: #Llama a la funcion medicamento del modulo medicamentos para generar las dosis medicamentos.medicamento(peso) elif eleccion == 3: #Pide al usuario peso y talla peso = float(input('Escribe tu peso actual: ')) talla = float(input('escribe tu talla actual: ')) elif eleccion == 4: continua = 0 Calculo de medicamentos: ## ---------------------------------------- ## -----MODULO DE CALCULO MEDICAMENTOS----- ## ---------------------------------------- def medicamento(peso): # Calculo de paracetamol presentacion: 500MG/5ml amoxicilina = float((((peso * 50 * 5) /500) / 3)) print ('la dosis de amoxicilina 500mg/5ml es: ' +str(amoxicilina)) # Calculo de paracetamol presentacion: 500g/5ml eritromicina = float((((peso * 50 * 5) /500) / 3)) print ('la dosis de eritromicina 500mg/5ml es: ' +str(eritromicina)) # Calculo de paracetamol presentacion: 3.2g/100ml paracetamol = float(((peso * 15 * 100) /3200)) print ('la dosis de paracetamol 3.2g/100ml es: ' +str(paracetamol)) Calculo IMC: ## ----------------------------------------- ## ----------MODULO DE CALCULO IMC---------- ## ----------------------------------------- def imc(peso, talla): calculo = (peso / (talla + talla)) if calculo < 18.4: print (' peso bajo, imc: ' +str(calculo)) if calculo >=18.4 and calculo<=24.9: print (' peso normal, imc: ' +str(calculo)) if calculo >=25 and calculo<=29.9: print (' sobrepeso, imc: ' +str(calculo)) if calculo >= 30: print (' obesidad, imc: ' +str(calculo))
  4. Saludos. Tengo un proyecto entre manos con Arduino para conectar nuestros electrodomésticos, lavadora, secadora, etc, cuando la electricidad es mas barata. De momento he hecho una página web donde trata la información que publica el ministerio correspondiente diariamente con el precio de los tramos horarios. Os dejo el enlace por si a alguien le interesa saber el precio de la electricidad a una hora en concreto. OPTIELEC Saludos
  5. Os dejo un sencillo juego para que los más pequeños de la casa se diviertan: BuscaCaras http://jsbsan.blogspot.com.es/2015/11/juego-buscacaras-uso-de-shuffle-barajar.html Se trata de encontrar la cara repetida entre las 32 caras que aparecen en el formulario. Si te equivocas te va quitando vidas, y si aciertas te las vas sumando. (como máximo tienes 3 vidas) Lo más interesante (a nivel de programación), es la forma que tiene de barajar las caras. En python sería utiliza la función shuffle, que usa internamente el algoritmo Knuth-Durstenfeld. Yo me he hecho mi propia función "barajar", que usa el algoritmo llamado Sattolo-Cycle Para más detalles: http://jsbsan.blogspot.com.es/2015/11/shuffle-barajar-aleatoriamente-con-el.html Saludos
  6. HelpTranslator, es una herramienta que desarrolle hace tiempo, para ayudar a traducir programas con google traduce y los fichero .po. La nueva versión que he presentado hoy trae una mejora que me han solicitado. Se trata de facilitar la traducción de archivos relativamente grandes, que daban problema con google traduce.... la mejora la he llamado "procesamiento por lotes" Enlaces con más información y descarga de codigo fuente e instalador: http://jsbsan.blogspot.com.es/2016/10/nueva-version-helptranslator-009.html http://jsbsan.blogspot.com.es/2015/02/helptranslator-herramienta-para-ayudar.html Saludos
  7. Os dejo un nuevo proyecto que he emprendido. Se trata de un programa para controlar el sistema operativo linux, con tu voz, con la ayuda del api de google de reconocimiento de voz. Os dejo un video para que veais que hace esta versión 0.0.2: Para más detalles: http://jsbsan.blogspot.com.es/2016/09/programa-control-por-voz-controla-tu.html Nota: Este proyecto no hubiera sido posible, sin los compañeros del foro de gambas-es.org. Icono (para que aparezca en el tema del foro)
  8. Bueno pues siguiendo a nuestro amigo jsbsan me vi en su canal que acaba de lanzar un nuevo programita que me pense - pues mira justo lo que yo necesito - un reproductor de musica muy liviano simple y extremadamente rápido , acostumbro a usar a Pogo que lo veo bien pero me da que este Naranjito me va a hacer mucha compañia para escuchar mis podcasts de radio que me bajo , ya sabeis el histocast, los de misterio, la historia, o los linuxeros de toda la vida como mintcast o mismo el del amigo YoYo con su Batiburrillo Digital.... Venga una captura → Por si lo quereis bajar → http://jsbsan.blogspot.pt/2016/05/naranjito-reproductor-de-musica-hecho.html Solo hay que bajar el .deb o el source si usais otros que no Debian y con Gambas podreis hacer el paquete para otras distros via Gambas.
  9. Hola a tod@s, últimamente he mejorado bastante el código del juego de pokemon que os enseñé, tanto que hasta he sacado una versión 1.0, he corregido muchos fallos que en principio daba y algunas cosas que se me habían escapado, pero el gran cambio es que... ahora soporta archivos .pkm (extensión que me he inventado) para cargar pokemons y sus diversas características, al arranar el programa nos pregunta que archivos .pkm queremos cargar para pokemon1 y pokemon2 respectivamente, en el .tar del juego, he dejado dos archivos .pkm de ejemplo y para que podais probar el juego llamados "pikachu.pkm" y "infernape.pkm", la sintaxys de los pkm es: #nombre del pokemon nombre= #vida del pokemon pv= #ataques del pokemon ataque1= ataque2= ataque3= ataque4= #puntos de daño del pokemon, es decir, la fuerza de los ataques, corresponden con los ataques anteriores en orden pd1= pd2= pd3= pd4= #puntos de poder del pokemon, es decir, las veces que puedes usar un ataque en la partida, corresponden #a los ataques anteriores y a los pd anteriores pp1= pp2= pp3= pp4= #numero de pociones que tiene el pokemon pociones= Un ejemplo de archivo pkm valido es: nombre=pikachu pv=100 ataque1=bola trueno ataque2=placaje ataque3=relampago ataque4=onda trueno pd1=15 pd2=32 pd3=53 pd4=21 pp1=2 pp2=30 pp3=10 pp4=40 pociones=2 En los archivos pkm, poniendo "#" al empezar una linea permite escribir comentarios, estos serán ignorados por el programa. Esto lo he conseguido, creandome una pequeña librería que obtiene el valor que hay delante del = pasandole el campo que hay detrás del =, es decir si es "nombre=pikachu", pasándole "nombre", el fichero donde buscar, y el char [] donde guardarlo, guarda "pikachu" en ese char [], además da igual el orden de las variables (pero cuidado que es sensible a espacios, no es lo mismo "nombre=pikachu" que "nombre= pikachu"). Podéis descargar el .tar con el código fuente y compilarlo (es muy sencilla la compilación, con un "gcc poketty.c -o poketty" se compila) desde: (Enlaces actualizados) Web del proyecto: http://poketty.hispagnu.org Última versión (1.4) (añadido módulo para convertir archivos .pkms antiguos a la versión actual automáticamente, módulo escrito por "Dan Rulos") http://hispagnu.no-ip.org/poketty/releases/poketty1.4.tar.gz Git del proyecto: http://git.hispagnu.org/?p=poketty.git;a=summary Bueno espero que os guste, disfrusteis del juego y aprendais un montón leyendo el código fuente Saludos. PD: No hace falta decir que es software libre y el desarrollo es puramente comunitario (yo y un tio más ahora mismo), así que si alguien quiere aportar al proyecto, que lo diga, si quieres hacer un clone simplemente haced un: git clone git://hispagnu.org/poketty.git Tiene hasta su makefile y todo, cualquier colaboración es más que bienvenida.
  10. Buenas a tod@s, esta tarde andaba algo aburrido y quería recordar mis tiempos de python, así que he creado un pequeño escaner de puertos en python, no es muy complejo pero funciona bastante bien: #!/usr/bin/python import socket import sys common_ports={21:'ftp',22:'ssh',23:'telnet',25:'smtp',53:'dns',135:'NetBios',139:'NetBios',110:'POP3',143:'imap',389:'LDAP',8080:'proxy web',80:'http', 443:'secure http', 9418:'git'} def scan_range(target, start, end, time=1): socket.setdefaulttimeout(time) for x in range(start,end+1): mi_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: mi_socket.connect((target, x)) try: print('\033[92m' + "open port -----> " + '\033[0m', x,common_ports[x]) mi_socket.close() except KeyError: print('\033[92m' + "open port -----> " + '\033[0m', x) mi_socket.close() except socket.error: mi_socket.close() return 0; def scan_common(target, time=1): socket.setdefaulttimeout(time) for x in common_ports.keys(): mi_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: mi_socket.connect((target, x)) print('\033[92m' + "open port -----> " + '\033[0m', x,common_ports[x]) mi_socket.close() except socket.error: mi_socket.close() return 0; def main(): try: if(sys.argv[1]=="--help"): print("sps 1.0 versión") print("USE:") print("common ports scan:") print("sps -c host/ip timeout(optional)") print("range ports scan:") print("sps -r host/ip initport endport timeout(optional)") exit() if(sys.argv[1]=="-c"): if(len(sys.argv)==4): scan_common(sys.argv[2], int(sys.argv[3])) exit() else: scan_common(sys.argv[2]) exit() if(sys.argv[1]=="-r"): if(len(sys.argv)==6): scan_range(sys.argv[2], int(sys.argv[3]), int(sys.argv[4]), int(sys.argv[5])) exit() else: scan_range(sys.argv[2], int(sys.argv[3]), int(sys.argv[4])) exit() print("invalid option, please use sps --help") except (IndexError, ValueError): print("syntax or value error, please use sps --help") if __name__=="__main__": main() else: exit() Tiene básicamente dos modos de funcionamiento, uno es con la opción "-c" que escanea el target pero sólo con puertos comunes establecidos en un diccionario: sps -c host/ip timeout(opcional) Por ejemplo: sps -c hispagnu.org 2 El timeout es el tiempo tope que va a esperar a la conexión para cada puerto, si no se establece ninguno, por defecto el valor es 1. Y el otro modo, algo más común, es con un rango ip: sps -r host/ip startport endport timeout(opcional) Por ejemplo: sps -r hispagnu.org 50 100 5 Sí sólo se quiere escanear un puerto, basta con establecer el mismo puerto para startport como para endport: sps -r hispagnu.org 80 80 1 Es cierto que existe nmap y utilidades de estas hay a patadas, pero es algo simple que he desarrollado en un rato y quería compartirlo con vosotr@s, lo mismo para aprender algo de python os vale el código. Saludos.
  11. Hola amig@s: Hace tiempo que no aparecia por el foro.... pero aqui os traigo un nuevo programa: VENTAS Se trata de un programa para gestionar los recibos/tickets, almacén, imprimir informes, etc. para pequeñas tiendas. http://softwarelibreventas.blogspot.com.es/p/presentacion.html También he subido unos cuantos videos para saberlo manejar: Saludos !!! Julio Nota: Esta hecho en gambas3, y necesitais tener instalado la versión de gambas3.5.4 o superior.
  12. Hace cosa así de un año, debido a mi necesidad de tener acceso a mis contraseñas (contraseñas que ni de coña me sabía de memoria debido a que la mayoría eran aleatorias) desde cualquier sitio, cree una especie de app web cutre que me permitía guardar mis contraseñas asociadas a que servicio pertenecía, hoy, se me ha ocurrido coger todo ese código, pulirlo más, hacerlo más seguro (haciendo uso de cifrado para el login y para las contraseñas guardadas, separando la pass que cifra la base de datos en un .ini...) hacerlo más profesional y añadirlo un instalador, después, le he puesto un readme explicando paso a paso como se instala (no es muy dificil) pulir un poco la interfaz y publicarlo como proyecto de HispaGNU bajo la GPLv3 ¿ Qué os parece ?. Privatekeys está pensado para que cualquiera se monte un servidor apache un gestor de contraseñas sencillo, además, es multiusuario pudiendose registrar usuarios, siempre y cuando, disponga de la correspondiente password de administración (para que no se nos registre cualquiera en nuestro server), una vez registrados, podemos añadir servicios con sus respectivas claves, eliminar dichos registros a través del nombre del servicio e incluso, generar una clave aleatoria de los carácteres que queramos (alfanuméricas). La instalación es sencilla: 1.- Primero, creamos una base de datos en blanco en mysql/mariadb (podemos usar una interfaz sencilla como phpmyadmin) 2.- Entrar al servidor por ssh como root y crear la carpeta "/etc/privatekeys", usando el comando "mkdir /etc/privatekeys" 3.- Darle permisos 700 a dicha carpeta, para ello usamos el comando "chmod 700 /etc/privatekeys/" 4.- Convertir al usuario de apache en propietario de dicha carpeta con el comando "chown www-data /etc/privatekeys" (cambiar www-data por otro en caso de que apache utilice otro usuario) 5.- Extraer el fichero comprimido y subir la carpeta "privatekeys" a tu servidor 6.- Entrar desde cualquier navegador a la carpeta /install de privatekeys, ejemplo "http://tuweb.com/privatekeys/install 7.- Rellenar tranquilamente el formulario de instalación PRESTANDO ATENCIÓN A CADA CAMPO 8.- En caso de que nos muestre un mensaje de que la instalación ha sido completada, borramos la carpeta /install de privatekeys (por seguridad, este paso es muy importante). 9.- Paso más importante, disfruta de privatekeys Privatekeys, tengo entendido que es seguro, ya que para el login se usa hashing md5, y no texto plano, y para guardar las contraseñas en la base de datos, no se hace en texto plano, si no con una encriptación aes (tenemos que expecificar la clave aes durante el proceso de instalación). Todos los parámetros definidos en la instalación, tales como clave de admin, base de datos, clave de aes etc... puede ser cambiada en todo momento editando el archivo "/etc/privatekeys/privatekeys.ini" La interfaz es sencilla y elegante: A mi esta app me ha sido de mucha ayuda desde hace más de un año, aunque esta realmente es la versión pulida de lo que yo usé así que debe funcionar mejor. Como no cabía duda, privatekeys es 100% libre bajo la GPLv3. Podeis ir a la página web de privatekeys de HispaGNU desde http://hispagnu.org/privatekeys.html Y descargarlo desde: http://hispagnu.org/pkreleases/privatekeys-2.5.tar.gz
  13. Bueno, pues gracias a Pacman, que ha subido su código en C de su juego de Batallas de Pokemon, yo me he hecho mi propia versión en gambas. En mi blog, podeis descargaros el código fuente y el instalador .deb Espero que os guste. Saludos
  14. Hola a tod@s, hoy me he puesto con C y para aprender he hecho un programilla que simula batallas pokemon (a lo cutre) en C. Para modificar los pokemons hay que editar las variables que estan comentadas en el codigo fuente, puedes editar, nombre de pokemon, nombre de ataques de cada pokemon, puntos de daño, puntos de poder, pociones de cada pokemon etc... lo he testeado bastante y funcionar funciona bien, aunque como he dicho, es bastante cutre, y la experiencia no es la misma que cuando juegas a pokemon XD. Bueno dejo aquí el código fuente: /* * Copyright (C) 2015 Francisco Domínguez Lerma * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <time.h> void ayuda(void); void atacar(); void pociones(); void informacion(); int azar(int); void ganador(); typedef struct { char nombre[25]; int pv; char *ataque[4]; int pd[4]; int pp[4]; int pociones; } pokemon; pokemon pokemon1; pokemon pokemon2; int turno=1; int main() { //rellenamos la informacion de cada pokemon(estos datos son modificables, adaptalos para crear batallas personalizadas) //Nombre del pokemon strcpy(pokemon1.nombre, "pokemon1"); //vida del pokemon pokemon1.pv=100; //nombre de los 4 ataques del pokemon pokemon1.ataque[0]="ataque1";pokemon1.ataque[1]="ataque2";pokemon1.ataque[2]="ataque3";pokemon1.ataque[3]="ataque4"; //puntos de daño, el valor maximo de daño que causa cada ataque pokemon1.pd[0]=15;pokemon1.pd[1]=32;pokemon1.pd[2]=53;pokemon1.pd[3]=21; //puntos de poder, las veces que podemos usar x ataque en una batalla pokemon1.pp[0]=2;pokemon1.pp[1]=30;pokemon1.pp[2]=10;pokemon1.pp[3]=40; //numero de pociones que tiene el pokemon pokemon1.pociones=2; //Igual que todo lo anterior pero con el segundo pokemon strcpy(pokemon2.nombre, "pokemon2"); pokemon2.pv=100; pokemon2.ataque[0]="ataque1";pokemon2.ataque[1]="ataque2";pokemon2.ataque[2]="ataque3";pokemon2.ataque[3]="ataque4"; pokemon2.pd[0]=24;pokemon2.pd[1]=38;pokemon2.pd[2]=73;pokemon2.pd[3]=45; pokemon2.pp[0]=25;pokemon2.pp[1]=30;pokemon2.pp[2]=70;pokemon2.pp[3]=15; pokemon2.pociones=3; char comando; ayuda(); while (1) { if (turno==1) printf("[%s]", pokemon1.nombre); else printf("[%s]", pokemon2.nombre); printf("Introduce la orden..."); comando = fgetc(stdin); while(fgetc(stdin) != '\n'); switch ( comando ) { case 'h': ayuda(); break;; case 'a': atacar(); break;; case 'p': pociones(); break;; case 'i': informacion(); break;; case 'e': printf("Se cancelo la partida\n"); exit(0); default: ayuda(); } } } void ayuda() { printf("h -> Despliega esta ayuda\n"); printf("a -> Ataca al pokemon enemigo\n"); printf("p -> Cura a tu pokemon si tienes pociones\n"); printf("i -> Da información sobre tu pokemon, ataques, pociones y el pv enemigo\n"); printf("e -> Cancelar la partida\n"); } void atacar() { int dano; char ataque; printf("Elige el ataque a usar [1-4]\n"); ataque=fgetc(stdin); while(fgetc(stdin) != '\n'); if (turno==1) { switch ( ataque ) { case '1': if (pokemon1.pp[0]==0){printf("no te quedan pp\n"); turno=2; break;;} dano=azar(pokemon1.pd[0]); printf("%s uso %s\n", pokemon1.nombre, pokemon1.ataque[0]); pokemon1.pp[0]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon2.pv-=dano; if (pokemon2.pv<=0) ganador(); turno=2; break;; case '2': if (pokemon1.pp[1]==0){printf("no te quedan pp\n"); turno=2; break;;} dano=azar(pokemon1.pd[1]); printf("%s uso %s\n", pokemon1.nombre, pokemon1.ataque[1]); pokemon1.pp[1]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon2.pv-=dano; if (pokemon2.pv<=0) ganador(); turno=2; break;; case '3': if (pokemon1.pp[2]==0){printf("no te quedan pp\n"); turno=2; break;;} dano=azar(pokemon1.pd[2]); printf("%s uso %s\n", pokemon1.nombre, pokemon1.ataque[2]); pokemon1.pp[2]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon2.pv-=dano; if (pokemon2.pv<=0) ganador(); turno=2; break;; case '4': if (pokemon1.pp[3]==0){printf("no te quedan pp\n"); turno=2; break;;} dano=azar(pokemon1.pd[3]); printf("%s uso %s\n", pokemon1.nombre, pokemon1.ataque[3]); pokemon1.pp[3]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon2.pv-=dano; if (pokemon2.pv<=0) ganador(); turno=2; break;; default: printf("no has elegido ninguna opcion, así que pierdes el turno\n"); turno=2; break;; } }else{ switch ( ataque ) { case '1': if (pokemon2.pp[0]==0){printf("no te quedan pp\n"); turno=1; break;;} dano=azar(pokemon2.pd[0]); printf("%s uso %s\n", pokemon2.nombre, pokemon2.ataque[0]); pokemon2.pp[0]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon1.pv-=dano; if (pokemon1.pv<=0) ganador(); turno=1; break;; case '2': if (pokemon2.pp[1]==0){printf("no te quedan pp\n"); turno=1; break;;} dano=azar(pokemon2.pd[1]); printf("%s uso %s\n", pokemon2.nombre, pokemon2.ataque[1]); pokemon2.pp[1]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon1.pv-=dano; if (pokemon1.pv<=0) ganador(); turno=1; break;; case '3': if (pokemon2.pp[2]==0){printf("no te quedan pp\n"); turno=1; break;;} dano=azar(pokemon2.pd[2]); printf("%s uso %s\n", pokemon2.nombre, pokemon2.ataque[2]); pokemon2.pp[2]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon1.pv-=dano; if (pokemon1.pv<=0) ganador(); turno=1; break;; case '4': if (pokemon2.pp[3]==0){printf("no te quedan pp\n"); turno=1; break;;} dano=azar(pokemon2.pd[3]); printf("%s uso %s\n", pokemon2.nombre, pokemon2.ataque[3]); pokemon2.pp[3]--; printf("Le has quitado %d puntos de vida\n", dano); pokemon1.pv-=dano; if (pokemon1.pv<=0) ganador(); turno=1; break;; } } } void pociones() { if (turno==1){ turno=2; if(pokemon1.pociones==0) { printf("no tienes pociones, así que pierdes el turno\n"); } else { pokemon1.pociones-=1; pokemon1.pv+=60; if (pokemon1.pv>100) pokemon1.pv=100; printf("Poción activa, ahora tu pv es de %d\n", pokemon1.pv); } } else { turno=1; if(pokemon2.pociones==0) { printf("no tienes pociones, así que pierdes el turno\n"); } else { pokemon2.pociones-=1; pokemon2.pv+=60; if (pokemon2.pv>100) pokemon2.pv=100; printf("Poción activa, ahora tu pv es de %d\n", pokemon2.pv); } } } void informacion() { if (turno==1){ printf("**********\n"); printf("%s\n", pokemon1.nombre); printf("pv:%d\n", pokemon1.pv); printf("\t-----ATAQUES-----\n"); printf("\t%s pp:%d\n", pokemon1.ataque[0], pokemon1.pp[0]); printf("\t%s pp:%d\n", pokemon1.ataque[1], pokemon1.pp[1]); printf("\t%s pp:%d\n", pokemon1.ataque[2], pokemon1.pp[2]); printf("\t%s pp:%d\n", pokemon1.ataque[3], pokemon1.pp[3]); printf("\t-----------------\n"); printf("Numero de pociones:%d\n", pokemon1.pociones); printf("pv enemigo:%d\n", pokemon2.pv); printf("**********\n"); } if (turno==2){ printf("**********\n"); printf("%s\n", pokemon2.nombre); printf("pv:%d\n", pokemon2.pv); printf("\t-----ATAQUES-----\n"); printf("\t%s pp:%d\n", pokemon2.ataque[0], pokemon2.pp[0]); printf("\t%s pp:%d\n", pokemon2.ataque[1], pokemon2.pp[1]); printf("\t%s pp:%d\n", pokemon2.ataque[2], pokemon2.pp[2]); printf("\t%s pp:%d\n", pokemon2.ataque[3], pokemon2.pp[3]); printf("\t-----------------\n"); printf("Numero de pociones:%d\n", pokemon2.pociones); printf("pv enemigo:%d\n", pokemon1.pv); printf("**********\n"); } } int azar(int maximo){ srand(time(NULL)); return rand() % (maximo+1); } void ganador() { if (turno==1) { printf("--------------------\n"); printf("%s ha ganado la partida\n", pokemon1.nombre); printf("--------------------\n"); exit(0); } else { printf("--------------------\n"); printf("%s ha ganado la partida\n", pokemon2.nombre); printf("--------------------\n"); exit(0); } } Como habreis visto, esta licenciado bajo GPL3, así que haced lo que querais con el código mientras libereis los cambios claro, es más, me gustaría mucho que alguien lo mejorara, me gustaría verlo avanzar. Las instruciones de como se usa (ya que funciona con comandos simples) te las dice el juego nada más ejecutarlo. Para compilarlo simplemente: gcc pokemon.c -o pokemon y para ejecutarlo, le dais permisos y: ./pokemon Espero que os guste y sobretodo que podais aprender algo de C leyendo mi código. Saludos.
  15. Pues estoy pensado en hacer un juego de "gestión económica" personal, algo asi el juego CASH FLOW https://cashflowmx.wordpress.com/%C2%BFcomo-se-juega-cash-flow/ o muy similar a MONE RACE que existe en Android ( https://play.google.com/store/apps/details?id=com.grupoheron.moneyrace ) El juego trata de: - Tienes una profesión con un sueldo, y unos gastos que varian dependiendo de tu situación (soltero/casado, con hijos, compras realizadas, pagos de hipoteca, impuestos) Y puedes hacer negocios para aumentar tus ingresos (o arruinarte): - comprar / vender viviendas - comprar / vender acciones Y también pedir préstamos al banco y gastar con tu tarjeta de crédito, los cuales tienes que pagar o te "desahucian" ( como en la vida misma ) El proposito del juego es "enseñar" a gestionar tu dinero "ficticio" que tienes, de una forma "didáctiva y divertida" Me gustaria buscar colaboradores, para dar más ideas sobre el juego, ir probando el programa, y en el futuro, traducirlo a otros idiomas. Yo me encargaria de programarlo, en gambas3, que es un lenguaje que "más o menos" conozco. El programa seria softwarelibre y descarga gratuita, licenciado como GPL 2.0 Nota: Como suelo hacer con mis otros programas, lo publicaría en mi blog o uno que cree especifico en la plataforma blogspot, donde coloco anuncios de google adsense y un botón donate. En el caso de recibir algún donativo, lo ingresaria en mi cuenta de Suiza.
×
×
  • Crear Nuevo...