miércoles, 27 de noviembre de 2019
Imagenes y sonido en mp3 carpeta
https://drive.google.com/drive/folders/1ikrxLiex8gLwwQ71582C9WYJSD8tFqCJ?usp=sharing
https://drive.google.com/drive/folders/1dWi3MhIRZyBKquRFcgQuhAmtxxD6ZlzE?usp=sharing
martes, 5 de noviembre de 2019
miércoles, 30 de octubre de 2019
Documentacion Libreria Emu8086.inc
emu8086.inc define las siguientes macros :
PUTC char - macro con 1 parámetro, imprime un carácter ASCII en la posición actual del cursor.
GOTOXY col, fila - macro con 2 parámetros, establece la posición del cursor.
PRINT string - macro con 1 parámetro, imprime una cadena. PRINTN string - macro con 1 parámetro, imprime una cadena. Lo mismo que PRINT pero agrega automáticamente "retorno de carro" al final de la cadena.
CURSOROFF - apaga el cursor de texto.
CURSORON - enciende el cursor de texto. Para usar cualquiera de las macros anteriores, simplemente escriba su nombre en algún lugar de su código y, si es necesario, los parámetros emu8086.inc también define los siguientes procedimientos :
PRINT_STRING : procedimiento para imprimir una cadena terminada en nulo en la posición actual del cursor, recibe la dirección de la cadena en el registro DS: SI . Para usarlo declare: DEFINE_PRINT_STRING antes de la directiva END .
PTHIS : procedimiento para imprimir una cadena terminada en nulo en la posición actual del cursor (igual que PRINT_STRING), pero recibe la dirección de la cadena desde la Pila. La cadena TERMINADA A CERO debe definirse justo después de la instrucción CALL. Por ejemplo: CALL PTHIS db 'Hello World!', 0 Para usarlo declare: DEFINE_PTHIS antes de la directiva END . GET_STRING : procedimiento para obtener una cadena terminada en nulo de un usuario, la cadena recibida se escribe en el búfer en DS: DI , el tamaño del búfer debe estar en DX . El procedimiento detiene la entrada cuando se presiona 'Enter'. Para usarlo declare: DEFINE_GET_STRING antes de la directiva END . CLEAR_SCREEN : procedimiento para borrar la pantalla (que se realiza al desplazar la ventana completa de la pantalla) y establecer la posición del cursor en la parte superior. Para usarlo declare: DEFINE_CLEAR_SCREEN antes de la directiva END . SCAN_NUM : procedimiento que obtiene el número FIRMADO de varios dígitos del teclado y almacena el resultado en el registro CX . Para usarlo declare: DEFINE_SCAN_NUM antes de la directiva END . PRINT_NUM : procedimiento que imprime un número firmado en el registro AX . Para usarlo declare: DEFINE_PRINT_NUM y DEFINE_PRINT_NUM_UNS antes de la directiva END . PRINT_NUM_UNS : procedimiento que imprime un número sin firma en el registro AX . Para usarlo declare: DEFINE_PRINT_NUM_UNS antes de la directiva END . Para utilizar cualquiera de los procedimientos anteriores, primero debe declarar la función en la parte inferior de su archivo (pero antes de END ), y luego usar la instrucción CALL seguida de un nombre de procedimiento.
PUTC char - macro con 1 parámetro, imprime un carácter ASCII en la posición actual del cursor.
GOTOXY col, fila - macro con 2 parámetros, establece la posición del cursor.
PRINT string - macro con 1 parámetro, imprime una cadena. PRINTN string - macro con 1 parámetro, imprime una cadena. Lo mismo que PRINT pero agrega automáticamente "retorno de carro" al final de la cadena.
CURSOROFF - apaga el cursor de texto.
CURSORON - enciende el cursor de texto. Para usar cualquiera de las macros anteriores, simplemente escriba su nombre en algún lugar de su código y, si es necesario, los parámetros emu8086.inc también define los siguientes procedimientos :
PRINT_STRING : procedimiento para imprimir una cadena terminada en nulo en la posición actual del cursor, recibe la dirección de la cadena en el registro DS: SI . Para usarlo declare: DEFINE_PRINT_STRING antes de la directiva END .
PTHIS : procedimiento para imprimir una cadena terminada en nulo en la posición actual del cursor (igual que PRINT_STRING), pero recibe la dirección de la cadena desde la Pila. La cadena TERMINADA A CERO debe definirse justo después de la instrucción CALL. Por ejemplo: CALL PTHIS db 'Hello World!', 0 Para usarlo declare: DEFINE_PTHIS antes de la directiva END . GET_STRING : procedimiento para obtener una cadena terminada en nulo de un usuario, la cadena recibida se escribe en el búfer en DS: DI , el tamaño del búfer debe estar en DX . El procedimiento detiene la entrada cuando se presiona 'Enter'. Para usarlo declare: DEFINE_GET_STRING antes de la directiva END . CLEAR_SCREEN : procedimiento para borrar la pantalla (que se realiza al desplazar la ventana completa de la pantalla) y establecer la posición del cursor en la parte superior. Para usarlo declare: DEFINE_CLEAR_SCREEN antes de la directiva END . SCAN_NUM : procedimiento que obtiene el número FIRMADO de varios dígitos del teclado y almacena el resultado en el registro CX . Para usarlo declare: DEFINE_SCAN_NUM antes de la directiva END . PRINT_NUM : procedimiento que imprime un número firmado en el registro AX . Para usarlo declare: DEFINE_PRINT_NUM y DEFINE_PRINT_NUM_UNS antes de la directiva END . PRINT_NUM_UNS : procedimiento que imprime un número sin firma en el registro AX . Para usarlo declare: DEFINE_PRINT_NUM_UNS antes de la directiva END . Para utilizar cualquiera de los procedimientos anteriores, primero debe declarar la función en la parte inferior de su archivo (pero antes de END ), y luego usar la instrucción CALL seguida de un nombre de procedimiento.
martes, 29 de octubre de 2019
miércoles, 23 de octubre de 2019
martes, 22 de octubre de 2019
Django de Python con Mysql
No olvidar instalar el modulo que se ocupa para conectar Django con Mysql
Descargar el siguiente archivo auxiliar que permitirá poder establecer la conexión entre django y MYSQL: https://drive.google.com/open?id=1ZseQPHsGmICJ-oyhre0U-3Fo2R_fStOT
Pasarlo a la carpeta donde se creo el proyecto.
Ir al CDM e instalarlo con el comando PIP
Crear nuestra bases de Datos en Mysql (recuerda que la puedes hacer desde el Workbench
Bases de Datos Relacionales!! tomar video:
Esta Conferencia se impartirá el jueves vía remota, como el cupo sera limitado favor de ponerse de acuerdo, para la toma de la conferencia en vídeo....
es el jueves 24 a las 19:00 hrs (es tarea para las materias de Graficacion, Admon de Base de Datos y Lenguaje de Interfaz)
lunes, 21 de octubre de 2019
Metodos, Clases, y la Gui con Pyqt4 ----- hacer Ejercicio practicando la GUI con Pyhton
http://pythoninicios.blogspot.com/2015/09/validar-usuario-y-contrasena-en-python.html
miércoles, 16 de octubre de 2019
martes, 15 de octubre de 2019
Sensor Detector de movimiento con Arduino:
https://www.luisllamas.es/detector-de-movimiento-con-arduino-y-sensor-pir/
****************
https://robologs.net/2018/07/19/como-construir-un-sensor-de-movimiento-con-arduino-y-sensor-pir/
lunes, 14 de octubre de 2019
viernes, 11 de octubre de 2019
miércoles, 9 de octubre de 2019
lunes, 7 de octubre de 2019
miércoles, 25 de septiembre de 2019
jueves, 19 de septiembre de 2019
Metodos de Orden en Array de Python
https://uniwebsidad.com/libros/python/capitulo-7/metodos-de-orden
miércoles, 18 de septiembre de 2019
Conectar Mongodb con python:
Excelente ejemplo del video:
https://jarroba.com/python-mongodb-driver-pymongo-con-ejemplos/
martes, 17 de septiembre de 2019
Compartir en github:
<br />
<br />
<br />
<script src="https://gist.github.com/85410515/aef924ada391411255972ddfb89e7fa6.js"></script>
<br />
<br />
<script src="https://gist.github.com/85410515/aef924ada391411255972ddfb89e7fa6.js"></script>
jueves, 12 de septiembre de 2019
Practicas de Usuarios, Roles, Backup - Recovery
http://gpd.sip.ucm.es/rafa/docencia/nosql/seguridad.html#Usarios%20y%20Roles
************
Este Link esta interesante sobre el tema:
https://professor-falken.com/linux/como-crear-o-eliminar-usuarios-en-mongodb/
Este Link
****************
https://parzibyte.me/blog/2018/12/11/autenticacion-administrador-mongodb/
martes, 10 de septiembre de 2019
martes, 3 de septiembre de 2019
Hola Mundo en Arduino por pin 13
void setup() {
pinMode(13,OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(2000);
digitalWrite(13,LOW);
delay(2000);
}
NOTA.- IMPORTANTE CHECAR EL PUERTO COM EN ADMINISTRADOR DE DISPOSITIVOS,
EN LA OPCIÓN DE HERRAMIENTAS MARCAR CON CHECK BOARD GENUINO/UNO
jueves, 29 de agosto de 2019
martes, 27 de agosto de 2019
lunes, 26 de agosto de 2019
prueba
>>> raiz=Tk(); raiz.title("Mi segunda Aplicacion"); nombreLabel1=Label(raiz,text="Nombre:"); nombreLabel1.grid(row=0,column=0); cuadronombre=Entry(raiz);cuadronombre.grid(row=0,column=1); raiz.mainloop();
Videos Turoriales de Arduino:
13 video Tutoriales:
https://www.youtube.com/watch?v=Kgz0vD1vSxY&t=3s ---- video 1 - que es? y partes de Arduino
https://www.youtube.com/watch?v=bwkHUXa9HWM ------ video 2, Hola mundo! en Arduino
miércoles, 21 de agosto de 2019
martes, 20 de agosto de 2019
Instalacion de el IDE pycharm para python:
Guia Aqui:
Otro IDE Recomendado aportacion: Victor Hugo Vazquez Gomez
https://code.visualstudio.com/
Sulime text
Otro IDE Recomendado aportacion: Victor Hugo Vazquez Gomez
https://code.visualstudio.com/
Sulime text
martes, 14 de mayo de 2019
Loteria de Ambro !!
import os #libreria para obtener rutas de direcciones en carpetas
import random # para generar numeros aleatorios
import threading #libreria para manejar hilos
from Tkinter import * # GUI,botones,label,menu,entry,tk,frame etc
import PIL
from PIL import Image, ImageTk # tratar imagenes ,png
import time # para tiermpos o dormir o espera o wait en segundos
import pygame # para juegos 2D y 3d
"""Variables globales"""
imagen = 0
stop = 0
dir = os.path.dirname(__file__)
Ccartas = dir + "/Cartas/" # establece la ruta hacia las imagenes de cartas
Csonido = dir + "/Sonidos/" # establece la ruta hacia los sonidos
play = 1
"""--------------------------------------------------------"""
def setimagen(nombre, x, y): # carga la imagen
global imagen # Declaro el uso de una variable global
img = Image.open(nombre) # cargo la imagen mandada como parametro
img.thumbnail((x, y), Image.ANTIALIAS) # establezco sus dimensiones y la propiedad antialiasado
imagen = ImageTk.PhotoImage(img) # la convierto a un formato soportado por los widgets de tkinter
return imagen # retorno el objeto con la imagen
def play():
global stop, play, TBoton # Declaro el uso de las variables stop y play
"""play: sirve para controlar la pulsasion del boton, si se pulsa una vez el boton jugar en pantalla deberia iniciar el juego
pero si se vuelve a pulsar deberia detenerse y dado que se usa el mismo boton para ambas acciones la uso para controlar las acciones
stop: se usa para controlar el hilo de ejecucion declarado, si stop vale 1 debera terminar el hilo, si vale 0 debera continuar hasta que se le indique"""
if play == 1:
TBoton.set("Pausar")
t = threading.Thread(target=hilo)
t.start()
stop = 0 # El hilo continua con normalidad
play = 0 # La proxima vez que se pulse el boton debera entrar en el else
else:
TBoton.set("Jugar")
play = 1 # La proxima vez que se pulse el boton debera entrar en el if
stop = 1 # Se detiene el hilo
def reproducirsonido(nombre):
pygame.mixer.music.load(nombre)
pygame.mixer.music.play()
def hilo():
global tiempo, cartas, Limagen, stop, Tetiqueta, spin
cartas = ["EL GALLO", "EL DIABLITO", "LA DAMA", "EL CATRIN", "EL PARAGUAS", "LA SIRENA", "LA ESCALERA",
"LA BOTELLA", "EL BARRIL", "EL ARBOL", "EL MELON",
"EL VALIENTE", "EL GORRITO", "LA MUERTE", "LA PERA", "LA BANDERA", "EL BANDOLON", "EL VIOLINCELLO",
"LA GARZA", "EL PAJARO", "LA MANO", "LA BOTA",
"LA LUNA", "EL COTORRO", "EL BORRACHO", "EL NEGRITO", "EL CORAZON", "LA SANDIA", "EL TAMBOR",
"EL CAMARON", "LAS JARAS", "EL MUSICO", "LA ARANA",
"EL SOLDADO", "LA ESTRELLA", "EL CAZO", "EL MUNDO", "EL APACHE", "EL NOPAL", "EL ALACRAN", "LA ROSA",
"LA CALAVERA", "LA CAMPANA", "EL CANTARITO",
"EL VENADO", "EL SOL", "LA CORONA", "LA CHALUPA", "EL PINO", "EL PESCADO", "LA PALMA", "LA MACETA",
"EL ARPA", "LA RANA"]
reproducirsonido(Csonido + "inicio.ogg")
time.sleep(3)
while True:
nombre = str(cartas.index(random.choice(cartas)) + 1)
carta = Ccartas + nombre + ".png"
Limagen.config(image=setimagen(carta, 400, 400))
Tetiqueta.set("Salio: " + cartas[int(nombre) - 1])
sonido = Csonido + "s_(" + nombre + ").ogg"
reproducirsonido(sonido)
time.sleep(float(spin.get()))
if stop == 1:
break
ventana = Tk() #creamos un objeto ventana Tk()
ventana.config(bg="gray")#con config y Bg es al fondo color
contenedor = Frame(ventana, width=700, height=700) # poner un frame arriba del marco o ventana TK
contenedor.pack()#para cargar ventana y frame
Etitulo = Label(contenedor, text="Loteria Mexicana", font=("Forte", 40, "bold")).place(x=120, y=20)
Etiempo = Label(contenedor, text="Tiempo entre cartas: ", font=("Forte", 12, "bold"))
Etiempo.place(x=130, y=100)
spin = Spinbox(contenedor, values=[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], font=("Arial", 12, "bold"))
spin.place(x=295, y=101)
Limagen = Label(contenedor)
Limagen.place(x=300, y=180)
TBoton = StringVar()
TBoton.set("Jugar")
Bplay = Button(contenedor, textvariable=TBoton, command=play)
Bplay.place(x=500, y=98)
Tetiqueta = StringVar()
Enombre = Label(contenedor, textvariable=Tetiqueta, font=("Arial", 40, "bold"))
Enombre.place(x=80, y=400)
pygame.init()
ventana.mainloop()
lunes, 13 de mayo de 2019
domingo, 12 de mayo de 2019
jueves, 9 de mayo de 2019
lunes, 6 de mayo de 2019
Proyecto jugdores parte 2 y continua.......
https://www.evernote.com/l/Apeek-PxbcpJY5bmmzwEza7pSRRQzW2tzDo/
jueves, 2 de mayo de 2019
miércoles, 1 de mayo de 2019
martes, 30 de abril de 2019
jueves, 4 de abril de 2019
Paleta de Colores de Python
https://es.wikibooks.org/wiki/Python/Interfaz_gr%C3%A1fica_con_Tkinter/Los_nombres_de_los_colores
martes, 2 de abril de 2019
video de Ambrosio Isaias Laureano Castro (estudiar)
https://www.youtube.com/watch?v=OYRiLZamAKU&feature=youtu.be
Campos en Los Modelos Django:
Los campos
Los campos son el tipo de objeto del atributo que guardara, hay varios tipos:
- AutoField: Es un IntegerField que se incrementa cuando creas un nuevo objeto, casi que no es necesario ya que django lo crea solo si no especificas otro campo como id.
- BigIntegerField: Representa un Entero de 64 bit, es como el IntegerField, solo que permite números desde el -9223372036854775808 hasta el 9223372036854775807. El campo por defecto de los formularios es el TextField.
- BooleanField: El campo de true/false. El campo por defecto de los formularios es un CheckboxInput. El vlaor por defecto es None si no defines el default.
- CharField: Para string pequeños, frases o palabras. El campo por defecto en los formularios es el TextInput.
- max_length=20: Establece el tamaño máximo del string, es requerido.
- CommaSeparateIntegerField: Guarda una lista de enteros separados por coma.
- Max_length=20: Establece el valor máximo de los enteros, es requerido.
- DateField: Guarda una instancia de la fecha a partir de la clase datetime.date de python.
- auto_now=True: Actualiza la fecha cada vez que se actualiza el objeto.
- auto_now_add=True: Guarda la fecha de cuando se creo.
- DateTimeField: Como el DateField solo que guarda también la hora
- auto_now=True: Actualiza la fecha cada vez que se actualiza el objeto.
- auto_now_add=True: Guarda la fecha de cuando se creo.
- DecimalField: Guarda números decimales.
- max_digits=5: Establece el numero de dígitos máximo, la suma de la parte entera y la decimal
- decimal_places=2: Establece el número de dígitos de la parte decimal.
- EmailField: Es un CharField que comprueba lo introducido para verificar que sea un email.
- max_length=75: Establece el tamaño máximo del email, es requerido.
- FileField: Sirve para guardar archivos en el servidor. En el formulario saldría el campo de escoger un fichero del ordenador. Tiene que estar definido el MEDIA_ROOT en el settings para que guarde los archivos. Guardara el archivo en la ruta especificada por el MEDIA_ROOT.
- upload_to='/videos': Subirá el archivo a la carpeta vídeos alojada en la carpeta definida por MEDIA_ROOT. (Requerido)
- FileField(upload_to='/video'[, max_length=100, **options]): si se quiere poner los atributos opcionales tendrán que añadirse así.
- FilePathField: Sirve para mostrar los archivos accesible de una carpeta siguiendo una restricción si se quiera, para hacer alguna operación sobre ellos.
- FilePathField(path=None[, match=None,recursive=False, max_length=100, **options])
- path (requerido): directorio del que sacara FilePathField las opciones.
- match: filtro por el que pasaran los archivos, se usaran expresiones regulares.
- recursive: False por defecto, especifica si entran las subcarpetas de la ruta indicada por path.
- max_length: Indica el tamaño máximo del nombre del archivo.
- FloatField: Campo que guarda una instancia del modelo Float de python.
- ImageField: Como el FileField pero solo acepta formatos de imágenes. Tiene dos campos opcionales mas que el FielField
- height_field: Representa el alto máximo de la imagen.
- width_field: Representa el ancho máximo de la imagen.
- IntegerField: Guarda un entero.
- IPAddressField: Guarda un string que coincida con el formato ip (192.168.0.1).
- GenericIPAddressField: Guarda una ip, ya sea ipv4 o ipv6. Para saber como las guarda Doc Django.
- NullBooleanField: Como el BooleanField pero permite null.
- PositiveIntegerField: Guarda un entero mayor o igual que cero.
- SlugField: Campo que guarda una pequeña etiqueta (letras, números, guiones) suele usarse en las url.
- TextField: Campo que guarda texto.
- TimeField: Guarda una hora, comparte los campos con DateField
- auto_now=True: Actualiza la hora cada vez que se actualiza el objeto.
- auto_now_add=True: Guarda la hora de cuando se creo.
- URLField: Guarda una dirección html, comprueba que lo introducido sea una dirección html.
- ForeignKey: Para referir objetos a un objeto, un modelo puede referirse a un modelo, pero un modelo puede estar referido a mas de uno, es lo que se llama un many-to-one referencia.
- ManyToManyField: Para guardar una referencia a varios objetos de la misma clase. Hay que definir la clase con la que se relaciona. Va guardando las referencias a esos objetos en una lista con las primary keys referncia.
- OneToOneField: Es como el ForeignKey pero tiene unique=True, por lo que solo puede haber una referencia a ese objeto.
Opciones que tiene todos los campos:
- null=True: Permite que los valores puedan ser null.
- blank=True: Permite que el campo se pueda quedar en blanco.
- choices=meses: Permite asignar un diccionario de elementos a un objetos para que los valores solo sean los contenidos en el diccionario. La clave del diccionario sera lo que se guarda en la base de datos, el valor asociado sera lo que se mostrar en el formulario que lo use.
- db_column: El nombre de la columna donde django guardara el campo, si no se especifica guarda el nombre del campo.
- db_index=True: Sirve para indexar el campo en las búsqueda de django. Por defecto django busca entre las PK de la base de datos, si añades esto también buscara entre esos datos y no tendrás que acceder directamente al objeto para comprobar el campo en las búsquedas.
- db_tablespace: El nombre al que se referencia para buscar si ha sido indicado como index.
- default: El valor por defecto que tiene el modelo, si se va a guardar un valor distinto a vació se guardara con el valor por defecto.
- editable=False: Indica si el valor se puede modificar, si es falso no aparecerá en el admin ni similares.
- error_messages={null:"Hay que darle un valor",blank:"No se puede dejar en blanco",invalid="El valor introducido es erróneo", invalid_choice:"Has escogido un valor inadecuado", unique="Este valor ya existe"}: Como se ve en el ejemplo hacer referencia a los mensajes que se mostraran si se produce ese error. No hace falta crear todos los mensajes. Si no los creas saldrá el que tiene por defecto.
- help_text="Inserta un nombre": Un texto que aparecerá en forma de ayuda en el campo del formulario.
- primary_key=True: Para asignar que el campos es la clave primaria del modelo.
- unique=True: Indica que el valor es único, solo podrá haber uno en la base de datos.
- unique_for_date='pub_date': El valor de esta propiedad tendrá que existir como campo del modelo y tendrá que ser del tipo DateField o DateTimeField. Lo que hace es no dejar que haya un elemento con el mismo valor del campo y el mismo día.
- unique_for_month='pub_date': El valor de esta propiedad tendrá que existir como campo del modelo y tendrá que ser del tipo DateField o DateTimeField. Lo que hace es no dejar que haya un elemento con el mismo valor del campo y el mismo mes.
- unique_for_year='pub_date': El valor de esta propiedad tendrá que existir como campo del modelo y tendrá que ser del tipo DateField o DateTimeField. Lo que hace es no dejar que haya un elemento con el mismo valor del campo y el mismo año.
- verbose_name="Nombre de usuario": Nombre del campo comprensible por humanos, si no se crea django lo generar automáticamente, convirtiendo los guiones en espacios.
- validators=[]: Una lista de validaciones para el campo referencia.
martes, 26 de marzo de 2019
Cuadros de Dialogo
#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
from tkMessageBox import *
def pregunta():
askokcancel(title='Cancelar ok',message='¿Desea cancelar?')
def salir():
if askyesno('Verificar', '¿Pasas mas de 3 horas en el celular?'):
showwarning('Si', 'Haz otra actividad')
else:
showinfo('No', 'Muy bien')
def Libros():
if askyesno("Libros","¿Te gusta leer libros?"):
showinfo("Si","Muy bien")
else:
showerror("No", "Que mal")
def Peliculas():
askquestion(title="Pregunta",message="¿Te gustan las peliculas?")
def Cancelar():
askretrycancel(title="Cancelar/Reintentar",message="Reintentar o cancelar")
def Tresbotones():
askyesnocancel(title="Tres botones",message="Seleccione uno de tres botones")
Button(text='Salir', command=pregunta).pack(fill=X)
Button(text='Pregunta 1', command=salir).pack(fill=X)
Button(text='Pregunta 2', command=Libros).pack(fill=X)
Button(text='Pregunta extra', command=Peliculas).pack(fill=X)
Button(text='Cancelar/Reintentar', command=Cancelar).pack(fill=X)
Button(text='Tres botones', command=Tresbotones).pack(fill=X)
mainloop()
jueves, 21 de marzo de 2019
martes, 19 de marzo de 2019
Poligonos Gpo A 2018
from Tkinter import *
def funcion(seleccion, figura):
vs = Toplevel()
vs.configure(bg="gray")
vs.title(figura)
if seleccion == 1:
panel = Canvas(vs, width=1200, height=650, bg="gray")
panel.pack()
# cara
panel.create_polygon(415, 50, 235, 490, 365, 625, 755, 625, 850, 500, 700, 50,
width=1, fill="#e0af77", outline="brown")
# orejas
panel.create_polygon(415, 50, 60, 320, 175, 635, width=1, fill="#bb6400", outline="#000000")
panel.create_polygon(700, 50, 1045, 320, 896, 635, width=1, fill="#bb6400", outline="#000000")
# menton
panel.create_polygon(365, 625, 550, 415, 755, 625, width=1, fill="#bb6400", outline="#000000")
# ojos
panel.create_oval(420, 225, 480, 305, width=1, fill="#1a1200", outline="#000000")
panel.create_oval(630, 225, 690, 305, width=1, fill="#1a1200", outline="#000000")
# bigotes
panel.create_oval(475, 525, 490, 540, width=1, fill="#1a1200", outline="#000000")
panel.create_oval(615, 525, 630, 540, width=1, fill="#1a1200", outline="#000000")
panel.create_oval(445, 560, 460, 575, width=1, fill="#1a1200", outline="#000000")
panel.create_oval(610, 560, 625, 575, width=1, fill="#1a1200", outline="#000000")
panel.create_oval(480, 560, 495, 575, width=1, fill="#1a1200", outline="#000000")
panel.create_oval(640, 560, 655, 575, width=1, fill="#1a1200", outline="#000000")
# nariz
panel.create_oval(470, 305, 640, 500, width=1, fill="#1a1200", outline="#000000")
elif seleccion == 2:
panel = Canvas(vs, width=500, height=450, bg="gray")
panel.pack()
# cara
panel.create_polygon(200, 80, 120, 240, 120, 260, 140, 300, 160, 310, 240, 310, 310, 290, 350, 280, 360, 250,
350, 230,
340, 210, 250, 80,
width=1, fill="yellow", outline="black")
# cejas
panel.create_polygon(150, 190, 142, 200, 175, 225, 185, 210, width=1, fill="black", outline="black")
panel.create_polygon(200, 210, 210, 220, 248, 205, 240, 190, width=1, fill="black", outline="black")
# boca
panel.create_polygon(150, 250, 150, 260, 185, 255, 170, 263,
173, 275, 205, 263, 200, 240, width=2, fill="orange", outline="black")
# ojos
panel.create_oval(210, 215, 255, 235, width=1, fill="white", outline="black")
panel.create_oval(140, 218, 175, 235, width=1, fill="white", outline="black")
# pupilas
panel.create_oval(215, 215, 235, 235, width=1, fill="black", outline="black")
panel.create_oval(140, 218, 160, 235, width=1, fill="black", outline="black")
# cabello
panel.create_polygon(200, 80, 210, 75, 210, 60, 220, 50, 220, 70, 230, 50, 240, 50,
240, 60, 230, 70, 255, 65, 260, 70, 240, 78,
260, 80, 230, 88, width=1, fill="black", outline="black")
elif seleccion == 3:
panel = Canvas(vs, width=500, height=450, bg="skyblue")
panel.pack()
# cara
panel.create_oval(120, 80, 320, 200, width=2, fill="chocolate", outline="black")
# ojos
panel.create_oval(180, 100, 200, 130, width=1, fill="black", outline="black")
panel.create_oval(240, 100, 260, 130, width=1, fill="black", outline="black")
# pupila
panel.create_oval(185, 105, 190, 115, width=1, fill="white", outline="black")
panel.create_oval(245, 105, 250, 115, width=1, fill="white", outline="black")
# boca
panel.create_arc(170, 140, 270, 180, extent=180, style=CHORD, start=180, width=2, fill="black", outline="black")
# sonrisa rosybrown
panel.create_arc(155, 145, 190, 160, extent=100, style=ARC, start=180, width=2, fill="black", outline="black")
panel.create_arc(255, 145, 290, 160, extent=100, style=ARC, start=255, width=2, fill="black", outline="black")
panel.create_oval(195, 170, 245, 180, width=2, fill="pink2", outline="black")
# Petalos
panel.create_arc(200, 30, 240, 130, extent=180, start=0, style=CHORD, width=2, fill="yellow2", outline="black")
panel.create_arc(240, 40, 280, 130, extent=180, start=353, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(275, 58, 315, 145, extent=185, start=340, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(255, 100, 365, 140, extent=190, start=280, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(260, 130, 360, 170, extent=180, start=268, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(245, 200, 360, 165, extent=220, start=225, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(255, 163, 295, 233, extent=215, start=178, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(225, 155, 265, 245, extent=190, start=180, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(170, 155, 215, 245, extent=190, start=170, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(135, 158, 175, 233, extent=210, start=150, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(80, 155, 192, 195, extent=198, start=105, style=CHORD, width=2, fill="yellow2",
outline="black")
panel.create_arc(65, 120, 172, 160, extent=193, start=84, style=CHORD, width=2, fill="yellow2", outline="black")
panel.create_arc(128, 50, 168, 133, extent=200, start=10, style=CHORD, width=2, fill="yellow2", outline="black")
panel.create_arc(80, 83, 170, 123, extent=233, start=35, style=CHORD, width=2, fill="yellow2", outline="black")
panel.create_arc(160, 40, 200, 125, extent=190, start=2, style=CHORD, width=2, fill="yellow2", outline="black")
# tallo
panel.create_polygon(210, 200, 210, 250, 220, 290, 235, 330, 230, 380, 230, 410,
245, 410, 245, 380, 250, 330, 235, 290, 225, 250, 225, 200, width=1, fill="forestgreen",
outline="black")
# hoja derecha
panel.create_arc(230, 250, 310, 300, extent=270, start=0, style=CHORD, width=2, fill="forestgreen",
outline="darkgreen")
panel.create_arc(230, 265, 300, 295, extent=105, start=75, style=ARC, width=2, outline="darkgreen")
# hoja izquierda
panel.create_arc(125, 250, 215, 300, extent=270, start=270, style=CHORD, width=2, fill="forestgreen",
outline="darkgreen")
panel.create_arc(130, 265, 215, 295, extent=105, start=0, style=ARC, width=2, outline="darkgreen")
# fondo derecho
panel.create_arc(245, 300, 360, 410, extent=180, start=0, style=CHORD, width=1, fill="darkgreen",
outline="black")
panel.create_arc(245, 325, 380, 440, extent=170, start=0, style=CHORD, width=2, fill="forestgreen",
outline="darkgreen")
panel.create_arc(240, 340, 365, 460, extent=105, start=35, style=ARC, width=2, fill="forestgreen",
outline="darkgreen")
# fondo izquierdo
panel.create_arc(115, 310, 235, 400, extent=195, start=345, style=CHORD, width=1, fill="darkgreen",
outline="black")
panel.create_arc(105, 340, 235, 470, extent=170, start=20, style=CHORD, width=2, fill="forestgreen",
outline="darkgreen")
panel.create_arc(135, 350, 240, 490, extent=130, style=ARC, start=8, width=2, fill="black", outline="darkgreen")
# fondo medio
panel.create_arc(185, 345, 350, 500, extent=180, start=0, style=CHORD, width=2, fill="forestgreen",
outline="darkgreen")
panel.create_arc(185, 365, 315, 500, extent=130, style=ARC, start=40, width=2, outline="darkgreen")
elif seleccion == 4:
panel = Canvas(vs, width=600, height=800, bg="linen")
panel.pack()
# cara
panel.create_polygon(200, 300, 200, 450, 210, 470, 390, 470, 400, 450, 400, 300, width=2, fill="lemonchiffon",
outline="black")
# cabeza
panel.create_arc(100, 80, 500, 520, extent=180, start=0, style=CHORD, width=2, fill="gold", outline="black")
# manchas
panel.create_oval(290, 100, 380, 140, width=1, fill="goldenrod", outline="khaki") # 1
panel.create_oval(170, 110, 275, 190, width=1, fill="goldenrod", outline="khaki") # 2
panel.create_oval(130, 220, 180, 270, width=1, fill="goldenrod", outline="khaki") # 3
panel.create_oval(210, 200, 300, 290, width=1, fill="goldenrod", outline="khaki") # 4
panel.create_oval(320, 160, 350, 210, width=1, fill="goldenrod", outline="khaki") # 5
panel.create_oval(325, 235, 375, 275, width=1, fill="goldenrod", outline="khaki") # 6
panel.create_oval(390, 140, 465, 285, width=1, fill="goldenrod", outline="khaki") # 7
# ojos
panel.create_oval(240, 320, 270, 390, width=1, fill="black", outline="black")
panel.create_oval(330, 320, 360, 390, width=1, fill="black", outline="black")
# pupila
panel.create_oval(245, 325, 265, 355, width=1, fill="white", outline="black")
panel.create_oval(335, 325, 355, 355, width=1, fill="white", outline="black")
# boca
panel.create_arc(260, 390, 340, 440, extent=180, style=ARC, start=180, width=2, fill="black", outline="black")
elif seleccion == 5:
panel = Canvas(vs, width=1148, height=700, bg='light blue')
panel.pack()
# casa
panel.create_rectangle(100, 410, 370, 650, width=2, fill='yellow', outline='black')
# tejado
panel.create_polygon(70, 409, 400, 409, 245, 200, width=2, fill='red', outline='black')
# ventanas
panel.create_rectangle(120, 420, 200, 500, width=2, fill='blue', outline='black')
panel.create_rectangle(270, 420, 350, 500, width=2, fill='purple', outline='black')
# Puerta
panel.create_rectangle(200, 550, 260, 650, width=2, fill='red', outline='black')
panel.create_line(230, 550, 230, 650, width=2, fill="black")
panel.create_oval(215, 600, 200, 620, width=2, fill='brown', outline='black')
# pasto
panel.create_rectangle(1, 650, 1147, 700, width=2, fill='green', outline='black')
# arbol
panel.create_rectangle(600, 410, 570, 650, width=2, fill='brown', outline='black')
panel.create_oval(700, 550, 480, 350, width=2, fill='green', outline='black')
# sol
panel.create_oval(1000, 150, 880, 50, width=2, fill='yellow', outline='black')
panel.create_line(900, 200, 1000, 1, width=10, fill="yellow")
panel.create_line(780, 125, 1100, 70, width=10, fill="yellow")
panel.create_line(1050, 200, 880, 10, width=10, fill="yellow")
elif seleccion == 6:
panel = Canvas(vs, width=200, height=200, bg="gray")
panel.pack()
# Primera parte negra
panel.create_polygon(70, 50, 70, 60, 50, 60, 50, 70, 40, 70, 40, 150, 50, 150, 50, 160, 60, 160, 60, 170, 80,
170, 80, 180,
110, 180, 110, 170, 130, 170, 130, 160, 140, 160, 140, 150, 150, 150, 150, 70,
140, 70, 140, 60, 120, 60, 120, 50, 70, 50, width=1, fill="black")
# ojo 1
panel.create_polygon(50, 80, 50, 120, 60, 120, 60, 130, 80, 130, 80, 120, 90, 120, 90, 110, 80, 110, 80, 100,
70, 100, 70, 90
, 60, 90, 60, 80, 50, 80, width=1, fill="white")
# ojo 2
panel.create_polygon(140, 80, 130, 80, 130, 90, 120, 90, 120, 100, 110, 100, 110, 110, 100, 110, 100, 120, 110,
130, 130, 130, 130, 120
, 140, 120, 140, 80, 130, 80, width=1, fill="white")
elif seleccion == 7:
panel = Canvas(vs, width=200, height=200, bg="yellow")
panel.pack()
# Parte negra
panel.create_polygon(70, 10, 130, 10, 130, 20, 150, 20, 150, 30, 160, 30, 160, 50, 170, 50, 170, 60, 180, 60,
180, 130,
170, 130, 170, 140, 160, 140, 160, 160, 150, 160, 150, 170, 50, 170, 50, 160, 40, 160, 40,
140, 30, 140, 30, 130, 20, 130,
20, 60, 30, 60, 30, 50, 40, 50, 40, 30, 50, 30, 50, 20, 70, 20, 70, 10, width=1,
fill="black", outline="black")
# Primera parte blanca
panel.create_polygon(80, 20, 120, 20, 120, 30, 140, 30, 140, 40, 150, 40, 150, 60, 160, 60, 160, 70, 170, 70,
170, 120, 150, 120, 150, 110, 50, 110, 50, 120, 30, 120, 30, 70, 40, 70, 40, 60, 50, 60,
50, 40, 60, 40, 60, 30, 80, 30, 80, 20, width=1, fill="white", outline="white")
# segunda parte blanca
panel.create_polygon(60, 120, 140, 120, 140, 130, 150, 130, 150, 150, 140, 150, 140, 160, 60, 160, 60, 150,
50, 150, 50, 130, 60, 130, 60, 120, width=1, fill="white", outline="white")
# ojos
panel.create_rectangle(80, 120, 90, 140, width=1, fill="black", outline="black")
panel.create_rectangle(110, 120, 120, 140, width=1, fill="black", outline="black")
# manchas
panel.create_polygon(80, 70, 120, 70, 120, 80, 130, 80, 130, 100, 120, 100, 120, 110, 80, 110, 80, 100, 70, 100,
70, 80, 80, 80, 80, 70, width=1, fill="red", outline="red")
panel.create_polygon(110, 20, 120, 20, 120, 30, 140, 30, 140, 50, 120, 50, 120, 40, 110, 40, 110, 20, width=1,
fill="red", outline="red")
panel.create_polygon(80, 20, 90, 20, 90, 40, 80, 40, 80, 50, 60, 50, 60, 30, 80, 30, 80, 20, width=1,
fill="red", outline="red")
panel.create_polygon(40, 60, 60, 60, 60, 90, 50, 90, 50, 100, 30, 100, 30, 70, 40, 70, 40, 60, width=1,
fill="red", outline="red")
panel.create_polygon(140, 60, 160, 60, 160, 70, 170, 70, 170, 100, 150, 100, 150, 90, 140, 90, 140, 60, width=1,
fill="red", outline="red")
elif seleccion == 8:
panel = Canvas(vs, width=400, height=400, bg='red')
panel.pack()
panel.create_polygon(60, 120, 100, 180, 140, 120, 100, 60, width=5, fill='blue',
outline='green') # coordenadas de x1,y1,x2,y2 etc etc y caracteristicas de las figura
elif seleccion == 9:
canvas = Canvas(vs, width=500, height=500, bg="white")
canvas.pack()
canvas.create_polygon(42, 372, 9, 396, -5, 415, -5, 502, 505, 505, 505, 396, 453, 372,
fill="BLUE", outline="black", width=2)
canvas.create_polygon(177, 261, 173, 293, 174, 323, 179, 329, 174, 323, 174, 312, 140, 323, 124, 335, 150, 420,
346, 435, 383, 341, 363, 324, 326, 312, 327, 312, 319, 340, 327, 312, 323, 268,
fill="peach puff", outline="black", width=2)
canvas.create_polygon(119, 337, 157, 340, 183, 356, 198, 382, 110, 381,
fill="peach puff", outline="black", width=2)
canvas.create_polygon(365, 337, 325, 340, 301, 356, 282, 382, 367, 381,
fill="peach puff", outline="black", width=2)
canvas.create_polygon(137, 365, 181, 363, 229, 369, 249, 382, 252, 403, 249, 382, 260, 373, 297, 365, 362, 367,
368, 482, 98, 482,
fill="peach puff", outline="black", width=2)
canvas.create_polygon(114, 353, 212, 399, 269, 401, 369, 355, 350, 484, 127, 482,
fill="blue", outline="black", width=2)
canvas.create_polygon(138, 325, 119, 319, 136, 373, 183, 422, 237, 460, 267, 457, 335, 399, 367, 331, 369, 313,
361, 319, 369, 313, 440, 347, 433, 382, 439, 353,
474, 372, 431, 502, 85, 502, 32, 374, 68, 357, 75, 375,
67, 357, 68, 346, 119, 319,
fill="orange", outline="black", width=2)
canvas.create_polygon(196, 306, 215, 334, 230, 353, 215, 334,
fill="peach puff", outline="black", width=2)
canvas.create_polygon(304, 306, 289, 334, 270, 353, 289, 334,
fill="peach puff", outline="black", width=2)
canvas.create_polygon(184, 260, 117, 276, 80, 305, 106, 254, 127, 233, 79, 232, 44, 249, 71, 203, 112, 184, 82,
165, 24, 165, 84, 125, 144, 108, 134, 55, 91, 1, 206, 43, 240, 89, 268, 88,
311, 103, 336, 130, 372, 132, 423, 170, 396, 170, 374, 177, 403, 203, 419, 232, 400, 224,
376, 224, 398, 246, 376, 241, 334, 243, 344, 239, 353, 250, 364, 271, 342, 261, 323, 260
)
canvas.create_oval(340, 445, 390, 495, fill="white", outline="black", width=2)
canvas.create_polygon(180, 260,
155, 244,
143, 208,
155, 193,
165, 195, fill="peach puff", outline="black", width=2)
canvas.create_polygon(320, 260,
345, 244,
357, 208,
345, 193,
335, 195, fill="peach puff", outline="black", width=2)
canvas.create_polygon(240, 325,
180, 275,
160, 170,
330, 170,
340, 190,
320, 275,
260, 325, fill="peach puff", outline="black", width=2)
canvas.create_polygon(250, 255,
250, 275,
260, 275,
250, 280,
240, 275, fill="peach puff3", outline="black", width=2)
canvas.create_polygon(235, 290,
260, 287,
265, 290,
260, 287, outline="black", width=2)
canvas.create_polygon(237, 247,
233, 253,
200, 245,
190, 195, fill="white", outline="black", width=2)
canvas.create_oval(210, 223.5,
230, 243, fill="black")
canvas.create_polygon(240, 250,
242, 235,
242, 243,
180, 180,
180, 200,
fill="black", outline="black", width=2)
canvas.create_polygon(263, 247,
267, 253,
300, 245,
310, 195, fill="white", outline="black", width=2)
canvas.create_oval(290, 223.5,
270, 243, fill="black")
canvas.create_polygon(260, 250,
257, 235,
258, 243,
320, 180,
320, 200,
fill="black", outline="black", width=2)
canvas.create_polygon(280, 160,
240, 220,
225, 265,
215, 180,
220, 160,
223, 183,
190, 200,
170, 250,
155, 170,
210, 160)
canvas.create_polygon(266, 174,
296, 206, 311, 245, 321, 204, 313, 156, 256, 121, 220, 174)
canvas.create_polygon(313, 184, 327, 200, 332, 226, 342, 198, 331, 149, 305, 128, 256, 125)
elif seleccion == 10:
poligono = Canvas(vs, width=400, height=400, bg="gray")
poligono.create_polygon(130, 20, 60, 80, 100, 140, 160, 140, 200, 80, width=3, fill="pink", outline="black")
poligono.pack()
elif seleccion == 11:
panel = Canvas(vs, width=500, height=400, bg='white')
panel.pack()
panel.create_polygon(140, 40, 300, 40, 400, 140, 40, 140, width=5, fill='white', outline='black')
# coordenadas y caracteristica de la figura
elif seleccion == 12:
panel = Canvas(vs, width=225, height=200, bg="white")
panel.pack()
# Parte negra
panel.create_polygon(70, 10, 170, 10, 170, 20, 190, 20, 190, 30, 200, 30, 200, 80, 190, 80, 190, 90, 170, 90,
170, 100, 140, 100, 140, 120, 150, 120, 150, 110, 170, 110, 170, 100, 190, 100, 190, 110,
200, 110, 200, 140, 190, 140, 190, 150, 180, 150, 180, 160, 160, 160, 160, 170, 80, 170,
80, 160, 60, 160, 60, 150, 50, 150, 50, 140, 40, 140, 40, 110, 50, 110, 50, 100, 70, 100,
70, 110, 90, 110, 90, 120, 100, 120, 100, 100, 70, 100, 70, 90, 50, 90, 50, 80, 40, 80, 40,
30, 50, 30, 50, 20, 70, 20, 70, 10, width=1, fill="black", outline="black")
# Parte naranja
panel.create_polygon(80, 20, 160, 20, 160, 30, 180, 30, 180, 40, 190, 40, 190, 70, 180, 70, 180, 80, 160, 80,
160, 90, 80, 90, 80, 80, 60, 80, 60, 70, 50, 70, 50, 40, 60, 40, 60, 30, 80, 30, 80, 20,
width=1, fill="orange", outline="orange")
# Parte amarilla
panel.create_polygon(90, 30, 150, 30, 150, 40, 170, 40, 170, 70, 150, 70, 150, 80, 90, 80, 90, 70, 70, 70, 70,
40, 90, 40, 90, 30, width=1, fill="yellow", outline="yellow")
# Parte blanca
panel.create_polygon(90, 50, 150, 50, 150, 60, 90, 60, 90, 50, width=1, fill="white", outline="white")
# Ojos rectangulos negros
panel.create_rectangle(100, 40, 110, 70, width=1, fill="black", outline="black")
panel.create_rectangle(130, 40, 140, 70, width=1, fill="black", outline="black")
# Parte verde
panel.create_polygon(110, 100, 130, 100, 130, 150, 140, 150, 140, 130, 150, 130, 150, 120, 170, 120, 170, 110,
190, 110, 190, 140, 180, 140, 180, 150, 160, 150, 160, 160, 80, 160, 80, 150, 60, 150, 60,
140, 50, 140, 50, 110, 70, 110, 70, 120, 90, 120, 90, 130, 100, 130, 100, 150, 110, 150,
110, 100, width=1, fill="green", outline="green")
elif seleccion == 13:
panel = Canvas(vs, width=300, height=200, bg="black")
panel.pack()
# Cuerpo del fantasma
panel.create_polygon(100, 10, 130, 10, 130, 20, 150, 20, 150, 20, 150, 30, 160, 30, 160, 40, 170, 40, 170, 60,
180, 60, 180, 160, 170, 160,
170, 150, 160, 150, 160, 140, 150, 140, 150, 150, 140, 150, 140, 160, 130, 160, 130, 140,
100, 140, 100, 160,
90, 160, 90, 150, 80, 150, 80, 140, 70, 140, 70, 150, 60, 150, 60, 160, 50, 160, 50, 60,
60, 60,
60, 40, 70, 40, 70, 30, 80, 30, 80, 20, 100, 20, width=1, fill="blue", outline="white")
# Ojos Fantasma
panel.create_polygon(80, 50, 100, 50, 100, 70, 80, 70, width=1, fill="white")
panel.create_polygon(130, 50, 150, 50, 150, 70, 130, 70, width=1, fill="white")
# Boca Fantasma
panel.create_polygon(65, 110, 70, 110, 70, 120, 65, 120, width=1, fill="white")
panel.create_polygon(70, 100, 90, 100, 90, 110, 70, 110, width=1, fill="white")
panel.create_polygon(90, 110, 110, 110, 110, 120, 90, 120, width=1, fill="white")
panel.create_polygon(110, 100, 130, 100, 130, 110, 110, 110, width=1, fill="white")
panel.create_polygon(130, 110, 150, 110, 150, 120, 130, 120, width=1, fill="white")
panel.create_polygon(150, 100, 170, 100, 170, 110, 150, 110, width=1, fill="white")
panel.create_polygon(170, 110, 175, 110, 175, 120, 170, 120, width=1, fill="white")
elif seleccion == 14:
Escudo = Canvas(vs, width=420, height=420, bg='blue')
# Primer Arco Rojo
Escudo.create_oval(40, 40, 400, 400, width=7, fill='red')
# Arco Gris
Escudo.create_oval(90, 90, 350, 350, width=7, fill='grey')
# Segundo Arco Rojo
Escudo.create_oval(140, 140, 302, 302, width=7, fill='red')
# Arco Azul
Escudo.create_oval(163, 163, 278, 278, width=7, fill='blue')
# Estrella Blanca
Escudo.create_polygon(222, 170,
250, 268,
170, 200,
270, 200,
185, 268, width=5, fill="white", outline="white")
Escudo.pack() # para que pueda aparecer el Escudo
elif seleccion == 15:
circulo = Canvas(vs, width=210, height=210, bg='magenta')
circulo.pack()
circulo.create_oval(20, 20, 200, 200, width=10, fill='yellow')
circulo.create_oval(90, 92, 70, 70, width=10, fill='black')
circulo.create_oval(140, 70, 160, 92, width=10, fill='black')
circulo.create_oval(140, 155, 90, 110, width=10, fill='black')
elif seleccion == 16:
dib = Canvas(vs, width=800, height=800, bg="cyan")
dib.pack(expand=YES, fill=BOTH)
# gorra
dib.create_polygon(250, 0, 250, 50, 200, 50, 200, 100, 650, 100, 650, 50, 500, 50, 500, 0, width=1, fill="red",
outline="black")
# cabelloenJota
dib.create_polygon(200, 100, 200, 150, 250, 150, 250, 250, 350, 250, 350, 200, 300, 200, 300, 150, 350, 150,
350, 100, width=1, fill="brown", outline="black")
# oreja
dib.create_polygon(200, 150, 200, 250, 250, 250, 250, 150, width=1, fill="yellow", outline="black")
# cabellodetrasoreja
dib.create_polygon(200, 150, 150, 150, 150, 250, 200, 250, 200, 150, width=1, fill="brown", outline="black")
# cabellobajooreja
dib.create_polygon(200, 250, 200, 300, 250, 300, 250, 250, width=1, fill="brown", outline="black")
# cara
dib.create_polygon(350, 100, 350, 150, 300, 150, 300, 200, 350, 200, 350, 250, 250, 250, 250, 350, 550, 350,
550, 250, 700, 250, 700, 200, 650, 200, 650, 150, 550, 150, 550, 100, 350, 100, width=1,
fill="yellow", outline="black")
# ojo
dib.create_polygon(450, 100, 450, 200, 500, 200, 500, 100)
# Mostacho
dib.create_polygon(500, 200, 500, 250, 450, 250, 450, 300, 650, 300, 650, 250, 550, 250, 550, 200)
# Mangaizquierda
dib.create_polygon(300, 350, 200, 350, 200, 400, 150, 400, 150, 450, 100, 450, 100, 500, 200, 500, 200, 550,
250, 550, 250, 500, 300, 500, 300, 350, width=1, fill="red", outline="black")
# centro
dib.create_polygon(350, 350, 350, 450, 450, 450, 450, 350, width=1, fill="red", outline="black")
# Mangaderecha
dib.create_polygon(500, 350, 500, 500, 550, 500, 550, 550, 600, 550, 600, 500, 700, 500, 700, 450, 650, 450,
650, 400, 600, 400, 600, 350, width=1, fill="red", outline="black")
# Manoizquierda
dib.create_polygon(100, 500, 100, 650, 200, 650, 200, 600, 250, 600, 250, 550, 200, 550, 200, 500, width=1,
fill="yellow", outline="black")
# Manoderecha
dib.create_polygon(600, 500, 600, 550, 550, 550, 550, 600, 600, 600, 600, 650, 700, 650, 700, 500, width=1,
fill="yellow", outline="black")
# ropita
dib.create_polygon(300, 350, 300, 500, 250, 500, 250, 600, 200, 600, 200, 700, 350, 700, 350, 650, 450, 650,
450, 700, 600, 700, 600, 600, 550, 600, 550, 500, 500, 500, 500, 350, 450, 350, 450, 450,
350, 450, 350, 350, width=1, fill="blue", outline="black")
# botonizquierdo
dib.create_polygon(300, 500, 300, 550, 350, 550, 350, 500, width=1, fill="yellow", outline="black")
# botonderecho
dib.create_polygon(450, 500, 450, 550, 500, 550, 500, 500, width=1, fill="yellow", outline="black")
# botaizquierda
dib.create_polygon(150, 700, 150, 750, 100, 750, 100, 800, 300, 800, 300, 700, width=1, fill="brown",
outline="black")
# botaderecha
dib.create_polygon(500, 700, 500, 800, 700, 800, 700, 750, 650, 750, 650, 700, width=1, fill="brown",
outline="black")
elif seleccion == 17:
bat = Canvas(vs, width=280, height=280, bg="blue")
bat.pack(expand=YES, fill=BOTH)
# Mascara
bat.create_polygon(80, 20, 60, 20, 60, 160, 80, 160, 80, 180, 180, 180, 180, 160, 200, 160, 200, 20, 180, 20,
180, 40, 160, 40, 160, 60, 100, 60, 100, 40, 80, 40, 80, 20)
# ojoizquierdo
bat.create_polygon(100, 100, 100, 120, 120, 120, 120, 100, width=1, fill="white", outline="black")
# ojoderecho
bat.create_polygon(140, 100, 140, 120, 160, 120, 160, 100, width=1, fill="white", outline="black")
# boca
bat.create_polygon(80, 140, 80, 160, 180, 160, 180, 140, width=1, fill="pink", outline="black")
# brazos
bat.create_polygon(80, 160, 40, 160, 40, 200, 220, 200, 220, 160, 180, 160, 180, 180, 80, 180, width=1,
fill="gray", outline="black")
# capa
bat.create_polygon(60, 200, 60, 260, 80, 260, 80, 220, 180, 220, 180, 260, 200, 260, 200, 200)
# cinturon
bat.create_polygon(120, 200, 120, 220, 140, 220, 140, 200, width=1, fill="yellow", outline="black")
# piernas
bat.create_polygon(80, 220, 80, 260, 120, 260, 120, 240, 140, 240, 140, 260, 180, 260, 180, 220, width=1,
fill="gray", outline="black")
# restocapa
bat.create_polygon(120, 240, 120, 260, 140, 260, 140, 240)
elif seleccion == 18:
Space = Canvas(vs, width=800, height=500, bg="RED")
Space.pack(expand=YES, fill=BOTH)
Space.create_polygon(250, 50, 200, 50, 200, 100, 250, 100, 250, 150, 200, 150, 200, 200, 150, 200, 150, 250,
100, 250, 100, 400, 150, 400,
150, 300, 200, 300, 200, 450, 350, 450, 350, 400, 250, 400, 250, 350, 500, 350, 500, 400,
400, 400, 400, 450, 550, 450, 550, 300, 600, 300, 600, 400,
650, 400, 650, 250, 600, 250, 600, 200, 550, 200, 550, 150, 500, 150, 500, 100, 550, 100,
550, 50, 450, 50, 450, 150, 300, 150, 300, 50, fill="green", outline="blue", width=6)
Space.create_polygon(250, 200, 250, 250, 300, 250, 300, 200, fill="white", outline="white", width=6)
Space.create_polygon(500, 200, 450, 200, 450, 250, 500, 250, fill="white", outline="white", width=6)
elif seleccion == 19:
canvas = Canvas(vs, width=500, height=800, bg="White")
canvas.pack()
canvas.create_arc(100, 100, 400, 400, start=0, extent=180, fill="green", outline="green")
canvas.create_oval(175, 150, 200, 175, fill="white", outline="white")
canvas.create_oval(300, 150, 325, 175, fill="white", outline="white")
canvas.create_oval(100, 550, 200, 450, fill="green", outline="green")
canvas.create_polygon(100, 260, 100, 500, 150, 550, 350, 550, 400, 500, 400, 260, fill="green", outline="green")
canvas.create_oval(300, 550, 400, 450, fill="green", outline="green")
canvas.create_polygon(160, 550, 160, 625, 220, 625, 220, 550, fill="green", outline="green")
canvas.create_polygon(280, 550, 280, 625, 340, 625, 340, 550, fill="green", outline="green")
canvas.create_oval(160, 600, 220, 650, fill="green", outline="green")
canvas.create_oval(280, 600, 340, 650, fill="green", outline="green")
canvas.create_polygon(30, 275, 30, 450, 90, 450, 90, 275, fill="green", outline="green")
canvas.create_oval(30, 250, 90, 300, fill="green", outline="green")
canvas.create_oval(30, 425, 90, 475, fill="green", outline="green")
canvas.create_polygon(410, 275, 410, 450, 470, 450, 470, 275, fill="green", outline="green")
canvas.create_oval(410, 250, 470, 300, fill="green", outline="green")
canvas.create_oval(410, 425, 470, 475, fill="green", outline="green")
canvas.create_polygon(160, 130,
180, 118,
160, 88,
140, 100, fill="green", outline="green")
canvas.create_oval(141, 85, 163, 110, fill="green", outline="green")
canvas.create_polygon(335, 130,
315, 118,
335, 88,
355, 100, fill="green", outline="green")
canvas.create_oval(354, 85, 332, 110, fill="green", outline="green")
def funcion_main():
vp = Tk()
vp.geometry("300x800+5+5")
vp.configure(bg="black")
vp.title("Poligonos grupo A")
boton1 = Button(vp, text="Perrito", bg="blue", fg="White",
command=lambda: funcion(1, "Programa por Ambrocio Laureano"))
boton1.pack(padx=5, pady=5, fill=X)
boton2 = Button(vp, text="Angry Bird", bg="blue", fg="White",
command=lambda: funcion(2, "Programa por Griselda Maldonado"))
boton2.pack(padx=5, pady=5, fill=X)
boton3 = Button(vp, text="Girasol", bg="blue", fg="White",
command=lambda: funcion(3, "Programa por Griselda Maldonado"))
boton3.pack(padx=5, pady=5, fill=X)
boton4 = Button(vp, text="Hongo", bg="blue", fg="White",
command=lambda: funcion(4, "Programa por Griselda Maldonado"))
boton4.pack(padx=5, pady=5, fill=X)
boton5 = Button(vp, text="Paisaje", bg="blue", fg="White",
command=lambda: funcion(5, "Programa por Manuel Ramirez"))
boton5.pack(padx=5, pady=5, fill=X)
boton6 = Button(vp, text="Venom", bg="blue", fg="White",
command=lambda: funcion(6, "Programa por Livan Sanchez"))
boton6.pack(padx=5, pady=5, fill=X)
boton7 = Button(vp, text="Seta", bg="blue", fg="White",
command=lambda: funcion(7, "Programa por Carolina Sauceda"))
boton7.pack(padx=5, pady=5, fill=X)
boton8 = Button(vp, text="Rombo", bg="blue", fg="White",
command=lambda: funcion(8, "Programa por Carlos Olvera"))
boton8.pack(padx=5, pady=5, fill=X)
boton9 = Button(vp, text="Goku", bg="blue", fg="White",
command=lambda: funcion(9, "Programa por Santiago Lopez"))
boton9.pack(padx=5, pady=5, fill=X)
boton10 = Button(vp, text="Pentagono", bg="blue", fg="White",
command=lambda: funcion(10, "Programa por Alondra Adamary"))
boton10.pack(padx=5, pady=5, fill=X)
boton11 = Button(vp, text="Cuadrilatero", bg="blue", fg="White",
command=lambda: funcion(11, "Programa por Rocio Mahe"))
boton11.pack(padx=5, pady=5, fill=X)
boton12 = Button(vp, text="Flor", bg="blue", fg="White",
command=lambda: funcion(12, "Programa por Lyvan Lumbreras"))
boton12.pack(padx=5, pady=5, fill=X)
boton13 = Button(vp, text="Fantasma", bg="blue", fg="White",
command=lambda: funcion(13, "Programa por Fernando Veliz"))
boton13.pack(padx=5, pady=5, fill=X)
boton14 = Button(vp, text="Escudo", bg="blue", fg="White",
command=lambda: funcion(14, "Programa por Jesus Uribe"))
boton14.pack(padx=5, pady=5, fill=X)
boton15 = Button(vp, text="Carita", bg="blue", fg="White",
command=lambda: funcion(15, "Programa por Diana Lucia"))
boton15.pack(padx=5, pady=5, fill=X)
boton16 = Button(vp, text="Mario Bros", bg="blue", fg="White",
command=lambda: funcion(16, "Programa por Alejandro Echavarria"))
boton16.pack(padx=5, pady=5, fill=X)
boton17 = Button(vp, text="Batman", bg="blue", fg="White",
command=lambda: funcion(17, "Programa por Alejandro Echavarria"))
boton17.pack(padx=5, pady=5, fill=X)
boton18 = Button(vp, text="Arcade", bg="blue", fg="White",
command=lambda: funcion(18, "Programa por Jaziel Martinez"))
boton18.pack(padx=5, pady=5, fill=X)
boton19 = Button(vp, text="Android", bg="blue", fg="White",
command=lambda: funcion(19, "Programa por Ivan Gutierrez"))
boton19.pack(padx=5, pady=5, fill=X)
vp.mainloop()
funcion_main()
miércoles, 13 de marzo de 2019
jueves, 7 de marzo de 2019
Ciclos Condicionales:
Mejorar el siguiente Codigo, puede usar la libreria 'emu8086.inc' y que diga
si la palabra no contiene la cadena
http://jbwyatt.com/253/emu/asm_tutorial_07.html (Estructuras condicionales Loop y saltos)
si la palabra no contiene la cadena
http://jbwyatt.com/253/emu/asm_tutorial_07.html (Estructuras condicionales Loop y saltos)
org 100h
include 'emu8086.inc'
mov si, 0 ;ponemos si en 0
comienzo:
mov al, msg2[0] ;copiar la primera letra de la palabra A al
cmp msg[si],"$" ;si es el fin de la cadena mandar a final
jz final ; brinca si es igual
cmp msg[si], al ;comparar si encuentra la primera letra de la cadena
jne seguir ;brica si es diferente
mov di, 1 ;poner en 1 di
comprobar:
mov al, msg2[di]
mov bx, di
cmp msg[si+bx], al ;posicion de la letra coincidente + di, comparar con la cadena
jne seguir ;si no coincide mandar a seguir
inc di ;incrementar di para seguir recorriendo cadena
cmp msg2[di],"$" ;si es el fin de la cadena y el programa llego
jz resultado ;aca quiere decir que la cadena es parte de la palabra
loop comprobar ;bucle para recorrer cadena
seguir:
inc si ;para seguir recorriendo la palabra
loop comienzo ;bucle principal para recorrer palabra
resultado:
mov dx, offset msg3 ;copiar msg3 a dx
mov ah, 9 ;preparar ah con 9 para la interrupcion 21h
int 21h ;mostrar contenido en dx
final:
ret
msg db "tecnologico$"
msg2 db "tec$"
msg3 db "Si se encuentra$"
martes, 19 de febrero de 2019
1.7 PROCESO DE ENSAMBLADO Y LIGADO
1.7 PROCESO DE ENSAMBLADO Y LIGADO
Para poder crear un programa se requieren varias herramientas: Primero un editor para crear el programa fuente. Segundo un compilador que no es más que un programa que “traduce” el programa fuente a un programa objeto. Y tercero un enlazador o linker , que genere el programa ejecutable a partir del programa objeto.
lunes, 18 de febrero de 2019
Ejemplo While
import math
def calculo():
opc2=1
while opc2 !=4:
opc=0
print "Menu de opciones"
print "Seleccione la opcion"
print "1.- Determinar si el numero es par"
print "2.- Sacar seno y coseno de dos numeros"
print "3.- Logaritmo de un numero"
print "4.- Salir"
opc = int(input("Opcion:"))
if opc==1:
print "Ingrese un valor:"
a = int(input())
residuo = a % 2
if residuo == 0:
print "Es un numero par"
else:
print "Es un numero impar"
elif opc==2:
a = int(input("Ingrese un valor:"))
b = int(input("Ingrese otro valor:"))
# procedimiento de la maestra Zzz..
sin1 = math.sin(a)
cos1 = math.cos(a)
sin2 = math.sin(b)
cos2 = math.cos(b)
#print "Seno del valor 1: ", sin1
#print "Coseno del valor 1: ", cos1
#print "Seno del valor 2: ", sin2
# print "Coseno del valor 2: ", cos2
# procedimiento mio :p
print "El coseno del valor 1 es: ", math.cos(a)
print "El seno del valor 1 es: ", math.sin(a)
print "El coseno del valor 2 es: ", math.cos(b)
print "El seno del valor 2 es: ", math.sin(b)
elif opc==3:
a = int(input("Ingrese un valor para logaritmo: "))
print "El logaritmo del valor es: ", math.log10(a)
else:
opc2=4
Librerias Python
import math
print "Ingrese el valor de un cateto:"
a = int (input(""))
print "Ingrese el valor del otro cateto:"
b = int ( input(""))
res = math.hypot(a, b)
print "La hipotenusa del triangulo es: " , res
Ejemplo IF
import time
h= input("Introduzca un numero:")
if h%2 == 0 :
print "Es numero par"
else:
print "Es numero impar"
Div ejemplo1
aqui va el codigo
ORG 100h
call inicializar
call divaxbx
hlt;terminar proceso
inicializar:
mov ax,9
mov bx,9
ret
divtaxbx:
div bx
ret
Mult Eejemplo1
ORG 100h
call inicializar
call multaxbx
hlt;terminar proceso
inicializar:
mov ax,8
mov bx,9
ret
multaxbx:
mul bx
ret
miércoles, 13 de febrero de 2019
Mult Ejemplo 2
.model small ;Modelo de memoria m?s utilizado
.stack
.data ;definición de datos(variables), donde se almacenara información
.code
chr1 db ? ;primer digito
chr2 db ? ;segundo digito
chr3 db ? ;multiplo
chr4 db ?
r1 db ? ;resultado 1
r2 db ? ;resultado 2
r3 db ?
r4 db ?
ac db 0 ;acarreo
ac1 db 0
.startup
;cls
mov ah,00h ;Function(Set video mode)
mov al,03 ;Mode 80x25 8x8 16
int 10h ;Interruption Video
mov ah,01h ;Function(character read) Guarda en AL
int 21h ;Interruption DOS functions
sub al,30h ;ajustamos valores
mov chr1,al ;[chr1].chr2 * chr3 = ac.r1.r2
mov ah,01h ;Function(character read) Guarda en AL
int 21h ;Interruption DOS functions
sub al,30h ;Ajustamos valores
mov chr2,al ;chr1.[chr2] * chr3 = ac.r1.r2
mov ah,02h ;Function(character to send to standard output)
mov dl,'*' ;Character to show
int 21h
mov ah,01h ;Function(Read character) Guarda en AL
int 21h ;Interruption DOS Functions
sub al,30h ;Transform(0dec = 30hex)
mov chr3,al ;chr1.chr2 * [chr3] = ac.r1.r2
mov ah,01h ;Function(Read character) Guarda en AL
int 21h ;Interruption DOS Functions
sub al,30h ;Transform(0dec = 30hex)
mov chr4,al ;chr1.chr2 * [chr3] = ac.r1.r2
mov ah,02h ;Character to send to standar output
mov dl,'=' ;
int 21h ;Interruption DOS functions
;Realizamos operaci?n
mov al,chr4 ;unidad del segundo numero
mov bl,chr2 ;unidad del primer numero
mul bl ;multiplicar
mov ah,0 ;limpiamos ah0
aam ;separamos de hex a dec
mov ac1,ah ;decenas del primera multiplicacion
mov r4,al ;unidades del primera multiplicacion
mov al,chr4 ;unidades del segundo numero
mov bl,chr1 ;decentas del primer numero
mul bl ;multiplicar
mov r3,al ;movemos el resultado de la operacion a r3
mov bl,ac1 ;movemos el acarreo a bl
add r3,bl ;sumamos resultado mas acarreo
mov ah,00h ;limpiamos ah por residuos
mov al,r3 ;movemos el resultado de la suma a al
aam ;separamos de hex a dec
mov r3,al ;guardamos unidades en r3
mov ac1,ah ;guardamos decenas en ac1
mov al,chr3 ;al = chr3
mov bl,chr2 ;bl = chr2
mul bl ;AL = chr3*chr2 (BL*AL)
mov Ah,0h ;
AAM ;ASCII Adjusment
mov ac,AH ;ac = AH (Acarreo)
mov r2,AL ;r2 = AL (Unidad del resultado)
mov al,chr3 ;AL = chr3
mov bl,chr1 ;BL = chr1
mul bl ;AL = chr1*chr3 (BL*AL)
mov r1,al ;r1 = AL (Decena del resultado)
mov bl,ac ;BL = Acarreo anterior
add r1,bl ;r1 = r1+ac (r1 + Acarreo)
mov ah,00h ;
mov al,r1 ;AL = r1 (Asignaci?n para el ajust)
AAM ;ASCII Adjustment
mov r1,al ;r1 = AL
mov ac,ah ;ac = AH (Acarreo para la Centena del resultado)
;suma final
;R4 resulta ser las unidades de mul y no se toma en cuenta ya que se pasa entero
mov ax,0000h ;limpiamos ax
mov al,r3 ;movemos el segundo resultado de la primera mult a al
mov bl,r2 ;movemos primer resultado de la segunda mult a bl
add al,bl ;sumamos
mov ah,00h ;limpiamos ah
aam ;separamos hex a dec
mov r3,al ;r3 guarda las decenas del resultado final
mov r2,ah ;r2 se utiliza como nuevo acarreo
mov ax,0000h ;''''
mov al,ac1 ;movemos el acarreo de la primera mult a al
mov bl,r1 ;movemos segundo resultado de la segunda mult a bl
add al,r2 ;sumamos el nuevo acarreo de la suma anterior a al
add al,bl ;sumamos al a bl
mov ah,00h ;limpiamos el registro ah
aam ;separamos de hex a dec
mov r1,al ;r1 guarda las centenas
mov r2,ah ;ah se sigue utilizando como acarreo
mov al,r2 ;movemos el acarreo a al
mov bl,ac ;movemos ac a bl
add al,bl ;sumamos al a bl
;aam ;separamos hex a dec
mov ac,al ;mov al a ac como nuestro acarreo final
;Mostramos resultado
mov ah,02h
mov dl,ac
add dl,30h
int 21h ;Mostramos ac (millar)
mov ah,02H
mov dl,r1
add dl,30h
int 21h ;Mostramos r1 (centena)
mov ah,02H
mov dl,r3
add dl,30h
int 21h ;Mostramos r3 (decena)
mov ah,02H
mov dl,r4
add dl,30h
int 21h ;unidad
.exit
end
Suscribirse a:
Entradas (Atom)