Subscribe:

AD (728x90)

About

Blogroll

Blogger templates

Blogger news

Impresión 3D

Excel

https://eductic.wikispaces.com/5.+TIC+1+Bachillerato

Photoshop

https://carolinaalzate.wordpress.com/photoshop-edicion/

Conferencia Chema Alonso

Adivina un número. Python

Juego en python: adivina numero aleatorio (Parte 1)


Hoy vamos a crear un juego de adivinar un numero aleatorio. 

En este juego, el participante va pensar un numero aleatorio entre el 1 y el 20 y el programa le pedirá que adivine el numero. Solo hay 6 intentos, pero con la ayuda del programa que nos dirá si el numero que ingresamos es mas chico o mas alto. Si el usuario adivina el numero antes de los 6 intentos, gana.

Este juego nos sirve para aprender a trabajar los numeros aleatorios, los bucles y las entradas del usuario. Tambien aprenderemos a convertir los valores en diferentes tipos de datos (y que se necesita para hacer esto).

Debido a que este programa es un juego, vamos a llamar al usuario: "jugador".

Esto es lo que le aparecerá al jugador una vez que ejecute el programa, el texto en azul es lo que ingresa el jugador:

Hola! Cual es tu nombre?
Albert
Hola Albert, Bienvenido a mi primer juego....
Elige un numero del 1 al 20
10
Tu numero es mas alto
Elige un numero del 1 al 20
2
Tu numero es mas bajo
Elige un numero del 1 al 20
4
Buen trabajo Albert, lo has logrado con 3 intentos

Aquí les voy a dejar el código fuente de nuestro juego de adivinar números. Al agregar este código en tu Editor de archivos (IDLE), asegúrate de prestar antencion en las sangrías que hay en algunas lineas. Esto es muy importante para que nuestro juego funcione. Después de ingresar el código, guarda el juego como adivina.py y puedes ejecutarlo apretando F5 para probar como funciona y comprobar que no tenga errores. Si aparece algún tipo de error, se paciente y fíjate si todas las lineas coinciden con las del código original. Ire explicando linea a linea como funciona nuestro juego.

Nota: es muy importante que tengas instalado python 2.x en tu ordenador, si tienes la versión 3.x te dará problemas y el programa no va a correr.
Por las dudas dejo la entrada: Como instalar python

#Juego de adivinar numero aleatorio

import random

intentos = 0

print ("JUEGO DE AZAR....")

print ("Cual es tu nombre?...")
nombre = raw_input()

x = random.randint (1, 20)

print ("Hola " + nombre + ", Bienvenido a mi primer juego...." )

while intentos < 6:
    intentos = intentos + 1
    print ("Elige un numero del 1 al 20")
    numero = raw_input()
    numero = int (numero)
    if numero < x:
        print ("Tu numero es mas bajo")
    if numero > x:
        print ("Tu numero es mas alto")
    if numero == x:
        break

if numero == x:
    print ("Eres un genio....")
    print (nombre + " lo lograste con %d intentos" % (intentos))
    print ("Nos vemos....")
   
if numero != x:
    print ("Has perdido, sera en otra oportunidad...")
    print ("Nos vemos")

A pesar de que estamos trabajando en el IDLE, podemos ir haciendo pruebas en el shell interactivo de python. El shell interactivo es muy practico para ir experimentando con diferentes instrucciones.

Vamos a estudiar el codigo linea a linea:

#Juego de adivinar numero aleatorio
Esta linea es un comentario. Como ya comente en la entrada anterior, todo lo que se escriba después del signo # no es interpretado como cogido por el ordenador. Esto solo nos recuerda que hace el programa, como funciona o lo que nosotros quisiéramos recordar del código. 

import random
Esto es una declaración de importación. Las declaraciones no son funciones. Recordemos que las declaraciones son instrucciones que realizan algo, pero no se evalúan como un valor.
Aunque python incluye muchas funciones integradas, existen algunas funciones por fuera llamadas módulos. Los módulos son programas en python que contienen funciones adicionales. Utilizamos las funciones de estos módulos poniéndolos en nuestros programas con la declaración de importación. En este caso, estamos importando el modulo random.
La declaración de importación se compone de la palabra clave de importación: import, seguido del nombre del modulo.
Lo que hacemos en esta linea entonces, es importar el modulo random, que contiene varias funciones relacionadas con los numeros aleatorios.

intentos = 0
Esta linea crea una variable llamada intentos. Vamos a guardar el numero de intentos que el jugador hace en esta variable. Dado que el jugador todavía no ha hecho ningún intento, la inicializamos en 0.


print ("JUEGO DE AZAR....")

print ("Cual es tu nombre?...")
nombre = raw_input()
Las primeras dos lineas llaman a la función print(). Recuerda que una función es como un mini-programa el programa general ejecuta  y cuando el programa general llama a la función esta se ejecuta. Lo que se ejecuta es lo que esta dentro de los paréntesis. La primera linea presenta nuestro juego y la segunda le pregunta el nombre al jugador.
Cuando estas dos lineas se terminan de ejecutar y el jugador escribe su nombre, el nombre se guardara en la variable nombre. Tenemos que recordar que el jugador no solo puede poner el nombre, pude escribir lo que se le ocurra.

x = random.randint (1, 20)
En la siguiente linea, otra ves llamamos a una función, esta ves es el turno de randint(), y a continuación, guarda el valor de retorno en la variable x. A esto lo llamamos valor de retorno de la función.
La función randint() devuelve un entero aleatorio entre los dos enteros que colocamos entre paréntesis, en este caso, un entero en el 1 y el 20. El numero aleatorio que devuelve la función randint() es guardado en la variable, y es el numero que el jugador va a tener que adivinar.
Si quieres, puedes practicar en el shell interactivo de python:

>>>import random
>>>x = random.randint (1, 20)
>>>x
12
 >>>x
5
 >>>x
9

Cada vez que queramos añadir aleatoriedad a nuestros juegos o programas podemos usar la función randint(). Recuerda cuantos juegos de mesas utilizan dados, un montón verdad?
También puedes probar diferentes rangos de números para familiarizarte con la función.
Recuerda que el programa necesita que importes random para que randint() funcione. Esta es la razon por las que los modulos de importación van al principio del programa.
Los valores escritos entre paréntesis en la función randint son llamados argumentos. Los argumentos son valores que se pasan a una funcion cuando se llama a la función. Los argumentos le indican a la función como comportarse.

Algunas funciones requieren que se pase valor cuando son llamadas. Miremos estas llamadas de funciones:

input()
print ("Hola")
random.randint (1, 20)

La función input no necesariamente usa argumentos, pero la función print() tiene un argumento y la función randint tiene dos. Cuando tenemos mas de un argumento los escribimos separados con comas, como en el ejemplo.

print ("Hola " + nombre + ", Bienvenido a mi primer juego...." )
En esta linea le damos la bienvenida al jugador, utilizamos tambien el signo de concatenacion + para sumarle a "Hola" el contenido de la variable nombre + ", Bienvenido a mi primer juego....".

while intentos < 6:
    intentos = intentos + 1
    print ("Elige un numero del 1 al 20")
    numero = raw_input()
    numero = int (numero)
    if numero < x:
        print ("Tu numero es mas bajo")
    if numero > x:
        print ("Tu numero es mas alto")
    if numero == x:
        break
En esta linea indicamos el comienzo de un bucle while. Los bucles son parte de código que se repiten una y otra vez. Pero antes de aprender los bucles while, tendremos que aprender otros conceptos. Esos conceptos son los bloques, booleanos, operadores de comparación, condicionales y por ultimo la sentencia while

Bloques:
Un bloque es una o mas lineas de código agrupados juntos con la misma cantidad mínima de identacion. Se puede decir que un bloque empieza y termina mirando la sangría de la linea.
Un bloque comienza cuando tiene sangría de 4 espacios o 1 tabulación. Cualquier linea de código siguiente que tenga la misma sangría es parte del mismo bloque.
A continuacion se muestra un diagrama del codigo con los bloques señalados y numerados:

Códigos C++

Comparto con todos los códigos con los que aprendí a programar en C++. Aquí están algunos de ellos que realicé en las primeras clases que recibía en la universidad, les servirá de ayuda y sería mejor si lo implementan, tal vez sean necesarios.
Código C++ – Contar Números Pares
Código C++ – Días Transcurridos
Código C++ – Triángulo de Pitágoras
Código C++ – Ejemplo de Menu
Código C++ – Insertar en Array
Código C++ – Signo Zodiacal
Código C++ – Ordenar Números
Código C++ – Posiciones de Array
Código C++ – Calcular Salario por Horas Trabajadas
Código C++ – Suma con recursividad
Código C++ – Resta con recursividad
Código C++ – Convertir Decimales a Números Romanos
Código C++ – Ejemplo de Matrices
Código C++ – Agregar Elementos al final de un arreglo
Código C++ – Calcular el número menor y mayor
Código C++ – Simulación de Matrícula
Código C++ – Calificación (Bueno, Regular, Malo, Pésimo)
Código C++ – Agregar, eliminar e insertar elementos
Código C++ – Agregar, eliminar, insertar y buscar elementos
Código C++ – Número de Días del Mes
Código C++ – Fibonacci con recursividad
Código C++ – Fibonacci sin recursividad
Código C++ – Suma de Pares e Impares
Código C++ – Sumar Múltiplos
Código C++ – Simulación de un Cajero
Código C++ – Torres de Hanoi
Código C++ – Calcular Número de Créditos (Matrícula)
Código C++ – Calcular Edad
Código C++ – Convertir Decimal a Binario
Código C++ – Calcular el número menor
Código C++ – Bisiestos
Código C++ – Sencillar Dinero
Código C++ – Calcular número de dígitos
Código C++ – Término Medio
Código C++ – Convierte Número a Letras
Código C++ – Númer

IDE C++


Download 
  • The setup which includes TDM-GCC 4.9.2 (32bit and 64bit) can be downloaded here (47MB)  Descargar aquí
  • The setup which does not include a compiler can be downloaded here (2MB).
  • The portable version which includes TDM-GCC 4.9.2 (32bit and 64bit) can be downloaded here (34MB).
  • The portable version which does not include a compiler can be downloaded here (2MB).
  • The latest tested compilers can be downloaded here.
  • Lastly, the source code can be found here (1MB). Alternatively, one can use git to clone any commit. Instructions can be found here.

Busquedas internet

http://e-forma.kzgunea.eus/course/view.php?id=152#section-3

Averroes

https://blogsaverroes.juntadeandalucia.es/ticganivet/

C++

https://www.dropbox.com/s/2l8yt0anyj6v7ch/Programaci%C3%B3n_C%2B%2B.pdf?dl=0

Ejercicios Excel