Batch (BAT): .bat
HTML: .html
CSS: .css
Java: .java
Python .py
Ruby: .rb.
C: .c
C++ .cpp
C#: .cs
El lenguaje de programación orientado a objetos fue creado en 1995 por James Gosling, lo que significa que representa conceptos como «objetos» con «campos» (que son atributos que describen el objeto) y «métodos» (acciones que el objeto puede hacer).
Bloc de notas o Notepad++ es un editor de textos que viene preinstalado en las computadoras con Windows. Este software no solo sirve para realizar anotaciones y abrir archivos . También puedes utilizarlo para crear programas de computadora básicos. Para ello, crea archivos batch que ejecuten scripts en el símbolo del sistema de Windows. También puedes escribir líneas de código en el interior del Bloc de notas. Este wikiHow te enseñará a crear programas utilizándolo
Tener en cuenta algunos consejos generales
Puedes usar una secuencia de comandos batch para crear archivos batch que se ejecuten en el símbolo del sistema de Windows.
Usa sangría.
añadir comentarios. (# en .app)
sintaxis esté correcta.
uso de mayúsculas sea correcto. ,
los corchetes o paréntesis de apertura correctos para el lenguaje de programación (por ejemplo, { o [).
cerrar las líneas abiertas de código se cierren.
caracteres especiales
extensión de archivo correcta
los lenguajes de programación comunes:
Batch (BAT): .bat
HTML: .html
CSS: .css
Java: .java
Python .py
Ruby: .rb.
C: .c
C++ .cpp
C#: .cs
Guardar el archivo correctamente. «Guardar como tipo:»>Todos los archivos (*.*). Se añade la extensión de archivo correcta al final.
BAT básico
«.bat»
Ejecución del archivo batch. Una vez guardado, se hace doble clic en él para abrir el símbolo del sistema y ejecutar la secuencia de comandos batch.
- @echo off: esto elimina todo el texto innecesario que puede interferir con el programa. Siempre debe ser el primer comando que ingreses.(apaga los comentarios de la línea de comandos.)
- echo: este comando muestra el texto que se haya escrito después de él en el símbolo del sistema (por ejemplo, «echo Hola, mundo» mostraría «Hola, mundo» como una línea de texto en el símbolo del sistema).
- echo.: el comando «echo.» (con un punto al final) muestra una línea en blanco en el símbolo del sistema. Esto es útil para aislar líneas de texto y hacer que no parezcan abarrotadas.
- pause: este comando muestra la instrucción «Presiona cualquier tecla para continuar…» en el símbolo del sistema. Se usa para crear un descanso en el programa. Puedes usarlo para darle tiempo al usuario de leer texto en el programa.
- cls: este comando es la abreviatura en inglés de «despejar pantalla». Despeja todo el texto de la pantalla. (borra la pantalla de la línea de comandos. Esto solamente hace que el símbolo del sistema luzca más ordenado.)
- title: este comando muestra el texto que le sigue en la barra de título del símbolo del sistema.
- color: con este comando, puedes cambiar el color del texto en el símbolo del sistema si ingresas la letra o número correspondiente después del comando. Puedes ver las letras y números que correspondan a cada color si escribes «color/?» en el símbolo del sistema.
- exit: este comando sale del programa.
- goto : dirígete a cualquier bandera que especifiques inmediatamente después de goto.
- %random% : una variable de Windows que genera aleatoriamente un número desde 0 a 9.
- : (número, letra o palabra) : una bandera. Los comandos «Goto» envían el programa a cualquier bandera que especifiquen
/a answer=%RANDOM%
set variable1=surf33
echo -------------------------------------------------
echo ¡Bienvenidos al juego de adivinanzas!
echo.
echo ¡Intenten adivinar mi número!
echo -------------------------------------------------
echo.
:top
echo.
set /p guess=
echo.
if %guess% GTR %answer% ECHO ¡Más alto!
if %guess% LSS %answer% ECHO ¡Más bajo!
if %guess%==%answer% GOTO EQUAL
set /a guessnum=%guessnum% +1
if %guess%==%variable1% ECHO ¿Encontraste la puerta trasera?, la respuesta es: %answer%
goto top
:equal
echo Felicidades, ¡¡¡adivinaste correctamente!!!
echo.
echo Te tomó %guessnum% intentos.
echo.
pause
lluvia de códigos
@echo off :a color 2 echo 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 ping localhost -n 1 > nul echo 1 1 0 1 1 1 0 0 0 1 0 1 a f h 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 echo 1 0 0 1 1 0 9 8 1 2 0 1 9 9 2 1 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 ping localhost -n 1 > nul echo 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 01 0 1 0 0 1 0 ping localhost -n 1 > nul echo 1 0 1 1 1 0 1 1 0 9 1 1 2 1 1 0 9 1 0 5 7 7 8 7 8 1 3 2 1 2 1 2 3 2 1 3 4 ping localhost -n 1 > nul echo 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 4 1 2 1 1 2 0 1 0 1 2 2 1 0 1 1 0 1 goto a
@ECHO OFF title Folder Private if EXIST "Panel de Control.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto :UNLOCK if NOT EXIST Private goto :MDLOCKER :CONFIRM echo Estás seguro que quieres bloquear la carpeta(Y/N) set/p "cho=>" if %cho%==Y goto :LOCK if %cho%==y goto :LOCK if %cho%==n goto :END if %cho%==N goto :END echo Invalid choice. goto :CONFIRM :LOCK ren Private "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" echo Folder locked goto :End :UNLOCK echo Enter password to unlock folder set/p "pass=>" if NOT %pass%== Contraseña aquí goto :FAIL// attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" ren "Panel de Control.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Private echo Folder Unlocked successfully goto :End :FAIL echo Invalid password goto :end :MDLOCKER md Private echo Private created successfully goto :End :End
No cambies el nombre después de asegurarlo, o ya no estará protegido.
Alguien que realmente entienda los archivos batch podrá averiguar tu contraseña. Si realmente necesitas proteger tu información, entonces necesitas encriptarla.
Programas como 7zip podrán acceder a esa carpeta.
El buscador de Windows puede encontrar esa carpeta.]
%%% abrir el Bloc de notas un número infinito de veces hasta que cierres la línea de comandos. @echo off :a start notepad goto a %%% abrir progamas un número infinito de veces hasta que cierres la línea de comandos. @echo off cls begin goto %random% :1 start cmd.exe goto begin :2 start mspaint.exe goto begin :3 start pinball.exe goto begin :4 start iexplore.exe goto begin :5 start explorer.exe goto begin :6 start solitaire.exe goto begin :7 start explorer.exe goto begin :8 start edit.exe goto begin :9 start iexplore.exe goto begin :0 start mspaint.exe goto begin
"x=msgbox("Mensaje de error aquí", 5+16, "Título de error aquí"). 'El "5+16" es: 5 (botones Reintentar y Cancelar) + 16 (ícono Crítico) * Donde: 0 (botón Aceptar) 1 (botones de Aceptar y Cancelar) 2 (botones Abortar, Reintentar e Ignorar) 3 (botones Sí, No y Cancelar) 4 (Botones Sí y No) 5 (botones Reintentar y Cancelar) 16 (ícono Crítico) 32 (ícono Ayuda) 48 (ícono Advertencia) 64 (ícono Información) *
HTML básico
«.html»
El HTML -HTML es la abreviación de Hyper Text Markup Language (lenguaje de marcas de hipertexto) -se usa principalmente para el diseño web.uno de los lenguajes de programación más fáciles de aprender. los HTML son de “texto sin formato” en lugar de “texto enriquecido” (a diferencia de los archivos «.doc»)
Con Notepad ; Microsoft Word para Windows; o TextEdit para Mac,
Archivo >→ Guardar como>“página web”,
o cambiar la extensión a “.html” o “.htm” en lugar de “.doc”, “.rtf” o alguna otra extensión.
[Como utilizar el navegador para “leer” el documento HTML como si fuera una página web, no para crear un sitio web en línea]
otra opcion , es arrastrar el archivo a la barra de URL en tu navegador
etiquetas: estan entre paréntesis triangulares <>(de inicio) y
</
>
(la final)<title> </title> Entre las etiquetas se escribe el titulo de la forma
<title>Mi Titulo</title>
y aparecera en la parte superior del navegador, arriba de la barra de direcciones.</head>, etiqueta de cierre
<h1>¡Hola!</h1>
» en el Bloc de Notas.<p>¿Cómo estás hoy?</p>
en el Bloc de Notas para que se muestre la frase «¿Cómo estás hoy?» debajo del encabezado.<!DOCTYPE html>
<html>
<body>
<h1>¡Hola!</h1>
<p>¿Cómo estás hoy?</p>
</body>
</html>
CCS
CSS: .css
A Cascading Style Sheet (CSS) is a system for website coding that allows designers to manipulate several features at once by assigning certain elements to groups. For instance, by using a code for the website background, designers can change the background color or image on all pages of the website with one change to the CSS file. Here’s how to create CSS for a basic website.
Be sure you have a basic understanding of HTML tags. You should know how tags work and of thesrc
and href
attributes.
- Some good basic CSS properties to know are
color
andfont-family
.
Learn about values for each respective property. All properties need a value. For thecolor
property, for example, you might put the red
value.
Learn about the style
HTML attribute. It is used within an element like href
or src
. To use it, within the quotation marks after the equal sign, put the CSS attribute, a colon, and then the value of the property. This is known as a CSS rule.
Understand that inline CSS is not usually used for websites by professional web developers. Inline CSS can add unnecessary clutter to an HTML document. However, it is a great way to get introduced to how CSS works.
Writing Basic CSS
Create a <style>
tag within your HTML head. This will let you write CSS without the need for a separate file.
Between the braces, type your CSS rules as you would using the style
attribute. Each line must end with a semicolon (;). To make your code legible, each rule should start on its own line and each line should be indented.
It is very important to note that this styling will affect all elements of the selected type on the page. More specific styling will be covered in the next section
.css
extension. Open your HTML file as well.<link>
tag in your HTML head. This will allow you to link a separate CSS file to your HTML document. Your link tag needs three attributes: rel
, type
, and href
.
rel
means «relationship» and tells the browser what the relationship is to the HTML document. Here it should have a value of"stylesheet"
.type
tells what type of media is being linked to. Here it should have a value of"text/css"
href
here is used similarly to how it is used in an<a>
element, but here it must link to a CSS file. If the CSS file is located in the same folder as the HTML file, only the file name needs to be written within the quotation marks.
Select elements of different types you want to add the same styling to. Add a class
attribute to these elements and set them equal to a class name of your choice. This will give your elements the same styling.
.class
).id
attribute. Id’s are created in CSS using a pound symbol (#) rather than a period.
- Id’s are more specific than classes, so an id will override any class styling if it has an attribute with a different value than the class.
<html> <head> <style> h1 {color:red;} p {color:blue;} </style> </head> </body> <h1>A heading</h1> <p>A paragraph,</p > </body> </htm1> <html> <body> <h1 id="myHeader">Hello World!</h1> <button onclick-"displayResult()>Change text</ button> <Script> function displayResults document.getElements ="Hace nice day"; } </script> </body> </html> w3schools.com link to a external style sheet <head> <link reloj ="stylesheet" type="text/ccs" href="theme.ccs"> </head>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drop-down box’s code for menu in HTML and CSS.
replace «#»=16 with the number you want to use (the larger the number, the larger your drop-down menu will be)
Close the CSS section:
</style>
</head>
<!DOCTYPE html> <html> <head> <style> .dropbtn { background-color: black; color: white; padding: 16px; font-size: 16px; border: none; } .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: lightgrey; min-width: 200px; z-index: 1; } .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } .dropdown-content a:hover {background-color: white;} .dropdown:hover .dropdown-content {display: block;} .dropdown:hover .dropbtn {background-color: grey;} </style> </head> <div class="dropdown"> <button class="dropbtn">Social Media</button> <div class="dropdown-content"> <a href="https://www.google.com">Google</a> <a href="https://www.facebook.com">Facebook</a> <a href="https://www.youtube.com">YouTube</a> </div> </div> </body> </html>
template example
<!DOCTYPE html> <html lang="en"> <head> <title>CSS Template</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> * { box-sizing: border-box; } body { margin: 0; font-family: Arial, Helvetica, sans-serif; } /* Style the side navigation */ .sidenav { height: 100%; width: 200px; position: fixed; z-index: 1; top: 0; left: 0; background-color: #111; overflow-x: hidden; } /* Side navigation links */ .sidenav a { color: white; padding: 16px; text-decoration: none; display: block; } /* Change color on hover */ .sidenav a:hover { background-color: #ddd; color: black; } /* Style the content */ .content { margin-left: 200px; padding-left: 20px; } </style> </head> <body> <div class="sidenav"> <a href="#">Link</a> <a href="#">Link</a> <a href="#">Link</a> </div> <div class="content"> <h2>CSS Template</h2> <p>A full-height, fixed sidenav and content.</p> </div> </body> </html>
programa básico de Python
«.py»
Instala Python. Si quieres ejecutar archivos Python en tu computadora, primero debes instalar Python. Puedes descargarlo en Python.org.
Abre el Bloc de Notas. Con el comando «print» en Python, puedes mostrar cualquier texto que desees. Sin espacios al escribir el comando de apertura.
print("¡Hola!")
Inicio de Windows>Escribe CMD>clic en ícono del Símbolo del sistema
Cambia la ubicación del archivo Python en el símbolo del sistema. si el simbolo de sistema (CMD) abre en C: y se quiere cambiar a leer el archivo de pyton en D: , se será necesario escribir los comando en el CMD
cd D:\user\….. [se escribe pega (Ctrl+V) la dirección del archivo «.py» ] [Enter]
allí se escribe el nombre del archivo con su extension «.py» y se presiona [Enter]
Descarga Pygame. Busca la versión correspondiente a tu plataforma en el sitio http://www.pygame.org/download.shtml. Ejecuta el instalador. y Verifica que la instalación haya funcionado. Abre la terminal de Python y escribe «import pygame». Si no aparece un error, entonces Pygame se habrá instalado correctamente.
-Configurar una ventana básica
-Crear un objeto del juego
-Organizar el juego
-Agregar un objeto del jugador
-Hacer que los objetos interactúen con el jugador
-Agregar un controlador de juego para crear objetos
-Agregar el puntaje y el mensaje de «Juego terminado»
'''[1.1]En el Hyperterminal de Python. Verifica que la instalación haya funcionado. Abre la terminal de Python y escribe "import pygame". Si no aparece un error, entonces Pygame se habrá instalado correctamente. ''' import pygame
'''[2.1]Importa Pygame. En archivo nuevo.''' import pygame '''------[2.1]''' '''[7.3]a .Agregar un controlador de juego para crear objetos. Asígnales velocidades aleatorias a las pelotas. Se importa la libreria ''' from random import random '''------[]''' '''[2.2]Importa Pygame.''' from pygame.locals import * '''------[2.2]''' '''[2.3]Configurar una ventana básica: Configura la resolución de pantalla. Ahora deberás crear una variable global para la resolución de la pantalla de modo que puedas referenciarla en distintas partes del juego. Generalmente va en la parte superior del archivo para que sea más fácil cambiarla más adelante. En proyectos avanzados, es mejor poner esta información en un archivo separado.''' resolution = (400,300) '''------[2.3]''' '''[2.4]Configurar una ventana básica Define algunos colores. Los colores en Pygame son RGBA, con valores que varían entre 0 y 255. El valor alfa (A) es opcional, pero los demás colores (rojo, azul y verde) son obligatorios.''' white = (255,255,255) black = (0,0,0) red = (255,0,0) '''------[2.4]''' '''[2.5]Configurar una ventana básica. Inicializa la pantalla. Utiliza la variable de la resolución que habías definido anteriormente.''' screen = pygame.display.set_mode(resolution) '''------[2.5]''' '''[3.1]Crear un objeto del juego. Crea una nueva clase y un constructor. Configura todas las propiedades del objeto. También deberás proporcionar valores para cada una de esas propiedades. ''' class Ball: def __init__(self, xPos = resolution[0] / 2, yPos = resolution[1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "ball" '''------[3.1]''' '''[7.4] Agregar un controlador de juego para crear objetos. Arregla la función de dibujo. La función de dibujo no acepta números en punto flotante, por lo que deberás convertir la posición de las pelotas a enteros para que estas se puedan dibujar.''' '''[3.2]Crear un objeto del juego. Determina la forma en la que se dibujará el objeto. Utiliza las propiedades que definiste en el constructor tanto para dibujar la pelota como un círculo, como para pasarle a la función la superficie sobre la cual se dibujará el objeto. La superficie será el objeto de la pantalla que creaste anteriormente a través de la resolución. ''' def draw(self, surface): '''pygame.draw.circle(surface, black, (self.x, self.y), self.radius) # Provisional de [3.2] hasta [7.4]''' pygame.draw.circle(surface, black, (int(self.x), int(self.y)), self.radius) # punto flotantes eliminados para aceptar la funcion de dbujo '''------[3.2]''' '''------[7.4]''' '''[6.1]a Hacer que los objetos interactúen con el jugador. Cambia las funciones de actualización. Para que los objetos puedan interactuar, es necesario que dichos objetos puedan accederse entre sí. Agrega otro parámetro a la función de actualización para pasarle la lista de objetos del juego (gameObjects). Tendrás que agregársela tanto al objeto del jugador como a los objetos de la pelota. Si tienes muchos objetos de juego, la herencia podría ayudarte a hacer que todas las firmas del método sean iguales. def update(self, gameObjects): # de [6.1] reemplaza la linea del [3.4] '''------[6.1]a''' '''[3.4] Crear un objeto del juego. Haz que el objeto se mueva. Crea una función que actualice la posición del objeto. Llama a esta función en cada repetición del bucle. ''' ''' def update(self): # esta linea de [3.4] provisional hasta [6.1]''' self.x += self.dx self.y += self.dy '''------[3.4]''' '''[3.6] Crear un objeto del juego. Mantén la pelota dentro de la pantalla. Agrega controles en la función de actualización para revertir la dirección de la pelota en caso de que golpee uno de los bordes de la pantalla. Correr el programa: hasta este punto se grafica el fondo blanco y la pelota negra''' if (self.x <= 0 or self.x >= resolution[0]): self.dx *= -1 if (self.y <= 0 or self.y >= resolution[1]): self.dy *= -1 ''------[3.6]''' '''[5.1] Agregar un objeto del jugador. Crea una clase y un constructor para el jugador. Ahora deberás crear otro círculo que se controle a través del ratón. Inicializa los valores en el constructor. El radio es el único valor importante.''' class Player: def __init__(self, rad = 20): <self.x = 0 self.y = 0 self.radius = rad self.type = "player" '''------[5.1]''' '''[8.2]a Agregar el puntaje y el mensaje de "Juego terminado". Modifica la finalización del juego. Ahora en vez de cerrar el juego cuando el jugador sufra una colisión, puedes configurar una variable en el jugador para que el juego pueda verificarla. Cuando la variable "gameOver" (juego terminado) tome el valor "true" (verdadero), deja de actualizar los objetos. Al hacerlo, se congelará la pantalla para que el jugador pueda ver lo que sucedió y revisar su puntaje. Ten en cuenta que los objetos quedarán dibujados, solo que no se actualizarán. ''' self.gameOver = False '''------[8.2]a''' '''[5.2] Agregar un objeto del jugador. Define cómo dibujar el objeto del jugador. Se dibujará del mismo modo que dibujaste los otros objetos del juego.''' def draw(self, surface): pygame.draw.circle(surface, red, (self.x, self.y), self.radius) '''------[5.2]''' '''[5.3] Agregar un objeto del jugador. Agrégale el control del ratón al objeto del jugador. En cada cuadro, revisa la ubicación del ratón y establece la ubicación de los objetos del jugador en ese punto. ''' '''[6.1]a Hacer que los objetos interactúen con el jugador. Cambia las funciones de actualización. def update(self, gameObjects): # se agrega reemplazando la del paso 5.3 '''------[6.1]b''' '''def update(self): # linea de [5.3] provisional hasta [6.1] ''' cord = pygame.mouse.get_pos() self.x = cord[0] self.y = cord[1] '''------[5.3]''' '''[6.2] Hacer que los objetos interactúen con el jugador. Ocúpate de las colisiones entre el jugador y las pelotas. Revisa todos los objetos del juego para determinar si son de tipo "ball" (pelota). Luego utiliza las fórmulas de radios y distancias entre dos objetos para determinar si estos colisionarán. Los círculos son formas en las cuales resulta muy sencillo determinar si se producirá una colisión. Esta es la principal razón por la cual no se usan otros tipos de formas en el juego. ''' for gameObj in gameObjects: if gameObj.type == "ball": if (gameObj.x - self.x)**2 + (gameObj.y - self.y)**2 <= (gameObj.radius +self.radius)**2: '''------[6.2]''' '''[6.3] Hacer que los objetos interactúen con el jugador. Finaliza el juego si el jugador es "golpeado" por una pelota. Por ahora, simplemente se cerrará el juego si eso sucede. Corrida del programa: Dos bolas negras en movimiento que al golpear la roja, finaliza el juego ''' ''' pygame.quit() # Linea provisional hasta [8.2]b''' '''------[6.3]''' '''[8.2]b Agregar el puntaje y el mensaje de "Juego terminado".Modifica la finalización del juego.''' self.gameOver = True '''------[8.2]b''' '''[7.1] Agregar un controlador de juego para crear objetos. Crea una clase de controlador de juego. Los controladores de juego son los responsables de mantener el juego "en ejecución". Son distintos a la clase del juego, que se encarga de dibujar y actualizar todos los objetos. El controlador agregará periódicamente otra pelota a la pantalla para que el juego se vuelva más difícil. Agrega un constructor e inicializa algunos valores básicos. El intervalo representará al tiempo que deberá transcurrir antes de agregar una nueva pelota.''' class GameController: '''------[7.1]''' '''[8.1]a Agregar el puntaje y el mensaje de "Juego terminado".Agrégale un puntaje a la clase del controlador del juego. Crea un objeto de fuente y una variable de puntaje. Deberás dibujar la fuente en cada cuadro para que muestre el puntaje e incrementar dicho puntaje en cada cuadro a través de la función de actualización. ''' def __init__(self, interval = 5): self.inter = interval self.next = pygame.time.get_ticks() + (2 * 1000) self.type = "game controller" '''------[7.1]''' '''------[8.1]a # esta seccion Se mantiene igual''' '''[8.1]b''' self.score = 0 self.scoreText = pygame.font.Font(None, 12) '''------[8.1]b''' '''[7.2] Agregar un controlador de juego para crear objetos. Agrega la función de actualización. Esta función se encargará de determinar cuánto tiempo ha transcurrido desde que se agregó la última pelota o desde que se inició el juego. Si el tiempo es mayor al intervalo, se reiniciará el tiempo y se agregará una pelota. ''' def update(self, gameObjects): if self.next < pygame.time.get_ticks(): self.next = pygame.time.get_ticks() + (self.inter * 1000) '''gameObjects.append(Ball()) # provisional de [7.2] hasta [7.3]''' ''' Nota: Crea las pelotas llamando a la clase Ball, aqui sin movimiento, lo que se le asigna en [7.3] '''------[7.2]''' '''[7.3]b Agregar un controlador de juego para crear objetos. Asígnales velocidades aleatorias a las pelotas. Deberás utilizar números aleatorios para hacer que el juego varíe a lo largo del tiempo. Sin embargo, las velocidades de las pelotas ahora estarán representadas por un número en punto flotante en lugar de un entero, Antes se debio importar la libreria al inicio de codigo''' gameObjects.append(Ball(xVel=random()*2, yVel=random()*2)) '''------[7.3]''' '''[8.1]c''' self.score += 1 '''------[8.1]c''' '''[7.5] Agregar un controlador de juego para crear objetos. Define un método de dibujo para el controlador del juego. Al tratarse de un objeto del juego, el bucle principal intentará dibujarlo. Deberás definir una función de dibujo que no haga nada para que el juego no deje de responder. def draw(self, screen): '''pass # Provisional de [7.5] hasta [8.1]d''' '''------[7.5]''' '''[8.1]d''' screen.blit(self.scoreText.render(str(self.score), True, black), (5,5)) # Se elimina la linea de [7.5] '''------[8.1d]''' '''[]''' '''[4.1] Organizar el juego. Organiza todo a través de clases. El juego se volverá más complicado. Utiliza las técnicas de la programación orientada a objetos para organizar tu código. '''[4.2] Organizar el juego. Convierte el bucle del juego en una clase. Como el juego ahora tiene datos que incluyen los objetos y las funciones del juego, sería lógico convertir el bucle del juego en una clase. Nota: Al final se agrega "game().run()" ''' class game(): '''-----[4.2]''' '''-----[4.1]''' '''[4.3] Organizar el juego. Agrega un constructor. En él instanciarás algunos objetos del juego, crearás la pantalla y el reloj, e inicializarás Pygame. Es necesario inicializar Pygame para poder usar ciertas características como texto y sonido. ''' def __init__(self): pygame.init() # Es la linea de inicializacion de programa self.screen = pygame.display.set_mode(resolution) self.clock = pygame.time.Clock() '''------[4.3]''' '''[4.6]a Organizar el juego. Controla varios objetos del juego. Ahora mismo, el código debe llamar a la función de dibujo y de actualización del objeto en cada cuadro. Esto podría volverse muy complicado si tuvieras muchos objetos, por lo que sería mejor agregar el objeto a un arreglo y posteriormente actualizar y dibujar todos los objetos el arreglo en cada repetición. Así podrás agregar fácilmente otro objeto y asignarle una posición inicial diferente. Corrida del Programa: Muestra una segunda bola negra en el fondo blanco''' self.gameObjects = [] '''self.gameObjects.append(Ball()) # Provisional, hasta [7.6]''' '''self.gameObjects.append(Ball(100))# Provisional, hasta [7.6]''' ''' NOTA: se llama a la clase Ball dos veces, que dibuja la bola, la situa y le da velocidad''' '''------[4.6]a''' '''[7.6] Agregar un controlador de juego para crear objetos. Agrega el controlador del juego a "gameObjects" y elimina las dos pelotas. El juego ahora generará una nueva pelota cada cinco segundos ''' self.gameObjects.append(GameController())# Se eliminan 2 lineas de [4.6]a.''' '''------[7.6]''' <'''[5.4] Agregar un objeto del jugador. Agrega un objeto del jugador a los objetos del juego (gameObjects). Crea una nueva instancia de jugador y agrégala a la lista. Corrida del preograma: En este punto aparece el (tercer) objeto, este del jugador (circulo Rojo un poco mas grande). ''' self.gameObjects.append(Player()) '''------[5.4]''' '''[8.2]c Agregar el puntaje y el mensaje de "Juego terminado".Modifica la finalización del juego.''' self.gameOver = False '''------[8.2]c''' '''[4.4]a Organizar el juego. Controla los eventos a través de una función.''' def handleEvents(self): '''[4.4]b Controla los eventos. (esta seccion, se elimina del paso [2.9] y se inserta aqui para ser controlada en la clase class game)''' for event in pygame.event.get(): if event.type == QUIT: pygame.quit() # es la linea de salida del programa '''------[4.4]b''' '''------[4.4]a''' '''[4.6]b Organizar el juego. Controla varios objetos del juego. ''' '''[4.5]a Organizar el juego. Convierte el bucle del juego en una función. Llama a la función que controla al evento en cada repetición.''' def run(self): '''------[4.5]a''' '''------[4.6]b''' '''[3.3]a''' ''' ball = Ball() # [3.3]a Crear un objeto del juego.Crea una instancia de la clase y haz que el bucle del juego dibuje la pelota en cada repetición. esta linea es solo de prueba hasta este punto, no para el codigo final''' '''------[3.3]a''' '''[3.5]a''' '''clock = pygame.time.Clock() #[3.5]a Crear un objeto del juego. Limita la tasa de cuadros por segundo. La pelota se moverá rápido porque el bucle del juego se ejecuta cientos de veces por segundo. Utiliza el reloj de Pygame para limitar la tasa a 60 cuadros por segundo. Esta linea es solo de prueba hasta este punto, no para el codigo final''' '''------[3.5]a''' #+++++++++++++++++++++++++++++++++++++++++++++++++++++ #++++++++++++++++++++Cuerpo del Bucle++++++++++++++ '''[2.6]Configurar una ventana básica. Crea un bucle para el juego. Repite ciertas acciones en todos los cuadros del juego. Crea un bucle que se repita indefinidamente replicando estas acciones. con while True:''' while True: '''------[2.6]''' '''[3.3]b Crear un objeto del juego.''' ''' ball.draw(screen) # esta linea es solo de prueba hasta este punto, no para el codigo final''' '''------[3.3]b''' '''[4.6]c Organizar el juego. Controla varios objetos del juego. '''[4.5]b Organizar el juego. Convierte el bucle del juego en una función. Llama a la función que controla al evento en cada repetición.''' self.handleEvents() '''------[4.5]b''' '''------[4.6]c''' '''[8.2]d Agregar el puntaje y el mensaje de "Juego terminado".Modifica la finalización del juego.''' if not self.gameOver: '''[4.6]d Organizar el juego. Controla varios objetos del juego. ''' for gameObj in self.gameObjects: '''gameObj.update() # provisional hasta [4.6]d''' '''------[4.6]d''' gameObj.update(self.gameObjects) if gameObj.type == "player": self.gameOver = gameObj.gameOver '''------[8.2]d''' '''[4.6]e Organizar el juego. Controla varios objetos del juego.''' '''[4.5]c Convierte el bucle del juego en una función''' '''[2.7]Configurar una ventana básica.Colorea la pantalla. dentro del while True, con screen.fill(white)''' self.screen.fill(white) '''------[2.7]''' '''------[4.5]c''' '''------[4.5]e''' '''[]''' '''[4.6]f Organizar el juego. Controla varios objetos del juego. ''' for gameObj in self.gameObjects: gameObj.draw(self.screen) '''------[4.6]f''' '''[4.6]g Organizar el juego. Controla varios objetos del juego. ''' '''[4.5]d Organizar el juego.Convierte el bucle del juego en una función''' self.clock.tick(60) '''[2.8]Configurar una ventana básica. Muestra la pantalla. dentro del while True, Si ejecutas el programa, la pantalla se volverá blanca y luego el programa dejará de responder. Esto se debe a que el sistema operativo estará enviándole eventos al juego y el juego no puede hacer nada con ellos. Al recibir tantos eventos no controlados, el juego dejará de responder. ''' pygame.display.flip() '''------[2.8]''' '''------[4.5]d''' '''------[4.6]g''' '''[3.5]b Crear un objeto del juego. Limita la tasa de cuadros por segundo. esta linea es solo de prueba hasta este punto, no para el codigo final''' ''' clock.tick(60) #solo provisional [3.5]b hasta agregar [4.5]d''' '''------[3.5]b''' '''[2.9]Configurar una ventana básica. Controla los eventos. Obtén una lista de todos los eventos que ocurren en cada cuadro. Por ahora te ocuparás de un solo evento, el Evento de Salida (estaria al final dentro del bucle 'While True' pero se separo de alli en el 'class game()' y usando aqui el 'for..in..' y el 'if...'). Este evento ocurre cuando el usuario cierra el juego. Al hacerlo, evitarás que el programa deje de responder como consecuencia del exceso de eventos. Correr el programa: Hasta este punto se abre la ventana y se muestra solo el fondo en blanco''' '''for event in pygame.event.get():# provisional, en [4.4] se extraera''' ''' if event.type == QUIT: # provisional, en [4.4] se extraera''' ''' pygame.quit() # provisional, en [4.4] se extraera''' '''------[2.9]''' '''[4.2]''' game().run() # [4.2] para llamar la ejecucion de la funcion a partir de cuando de agrega el "class game()" el cual es el cuerpo del juego que ahora dentro del bucle pero la clase que lo contiene se extrajo a partir del paso [4]. '''------[4.2]'''
VisualStudio [VisualStudio.microsoft.com/vs/older-downloads] Instalación.
Cygwin,
Visual Basic
GCC. [compilador GNU (GCC)]
Descarga e instala el compilador que elijas.
//Título del programa
#include <iostream>
int main ()
{
std::cout << "¡Hola, mundo!";
}
#include <iostream> using namespace std; int main(){ cout << "Hello, world, from Visual C++!" << endl; }
//Crear el directorio[carpeta] hello en c: c:\> md hello c:\> cd hello c:\hello // abre el programa Notepad creando un archivo .cpp [en el se escribe el codigo fuente] c:\hello> notepad hello.cpp // verifica el contenido de la carpeta c:\hello> dir ... // Compila el archivo usando en compilador de VisualStudio "cl.exe" c:\hello>cl /EHsc hello.cpp
Del Tutorial: creación de una aplicación de escritorio de Windows tradicional (C++)
Con la API de Windows, [Nota: eliminar los comentarios en color rojo]
En el menú Compilar , elija Compilar solución.
Para ejecutar la aplicación, presione F5
https://learn.microsoft.com/es-es/cpp/windows/walkthrough-creating-windows-desktop-applications-cpp?view=msvc-170
https://learn.microsoft.com/es-es/cpp/build/media/desktop-app-project-run-157.png?view=msvc-170
C++ // HelloWindowsDesktop.cpp // compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c //[1.2]iniciar una aplicación de escritorio de Windows.Los programas de escritorio de Windows requieren <windows.h>. <tchar.h> define la macro TCHAR, que se resuelve finalmente en wchar_t si el símbolo UNICODE se define en el proyecto; de lo contrario, se resuelve en char. Si siempre compila con UNICODE habilitado, no necesita TCHAR y solo puede usar wchar_t directamente. #include <windows.h> #include <stdlib.h> #include <string.h> #include <tchar.h> // Global variables //[2.3]a Ahora puede crear una ventana. Use la función CreateWindowEx. // The main window class name. /* Nombre que se le asignara al proceso de la ventana, servira para el handle. Se usara en la funcion CreateWindowEx Otra forma: const char g_szClassName[] = "myWindowClass"; */ static TCHAR szWindowClass[] = _T("DesktopApp"); // The string that appears in the application's title bar. // nombre que se le asignara a la ventana. static TCHAR szTitle[] = _T("Windows Desktop Guided Tour Application"); //-----[2.3]a //[1.1]b ¿Qué son todas esas palabras adicionales, como WINAPI, CALLBACK, HINSTANCE o _In_? La API de Windows hace un uso extensivo de tipos de definiciones y macros de preprocesador para abstraer algunos de los detalles de tipos y código específico de la plataforma, como las convenciones de llamada, las declaraciones __declspec y las pragmas del compilador. // Stored instance handle for use in Win32 API calls such as FindResource HINSTANCE hInst; //-----[1.1]b //[1.3] Microsoft Windows utiliza identificadores de ventana internamente para acceder a las ventanas lac que abren com un número arbitrario. Con el nodo HWND se obtiene el identificador de una ventana con un título determinado (que se muestra en el área de título de la ventana). Además de la función WinMain, todas las aplicaciones de escritorio de Windows deben tener una función de procedimiento de ventana. Esta función se suele denominar WndProc, pero puede asignarle el nombre que quiera. WndProc tiene la siguiente sintaxis. C++ LRESULT CALLBACK WndProc( _In_ HWND hWnd, _In_ UINT message, _In_ WPARAM wParam, _In_ LPARAM lParam ); En esta función, escribirá código para controlar los mensajes que la aplicación recibe de Windows cuando se producen eventos. Por ejemplo, si un usuario elige un botón Aceptar en la aplicación, Windows le enviará un mensaje y puede escribir código dentro de la función WndProc que haga el trabajo que sea adecuado. Esto se conoce como controlar un evento. Solo se controlan los eventos que son pertinentes para la aplicación. NOTA: se llamara la funcion mas adelante en [] . // Forward declarations of functions included in this code module: LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Step 4: the Window Procedure ( ver paso [3.1]) Nota esta secuencia de declaracion de punteros y con el switch(msg){..... se encuentra aqui al inicio o al final [caso de este codigo]: //-----[1.3] /*[1.1]iniciar una aplicación de escritorio de Windows.deben tener una función main como punto de partida, todas las aplicaciones de escritorio de Windows deben tener una función WinMain. WinMain tiene la siguiente sintaxis.// Se hace la llamada a la api El winmain contiene, entre otras (HINSTANCE, LPSTR, int), las variables: WNDCLASSEX wc; // es una estructura de datos. almacena la informacion de la ventana // http://winapi.freetechsecrets.com/win32/WIN32WNDCLASSEX.htm HWND hwnd; //obtiene el apuntador de la ventana de un grupo de ventanas MSG Msg; //Contiene información de mensajes de la cola de mensajes de un hilo. */ int WINAPI WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow ) //-----[1.1] //[2.1]Para agregar funcionalidad a la función WinMain. En la función WinMain, se rellena una estructura de tipo WNDCLASSEX.. Esta estructura contiene información sobre la ventana, por ejemplo, el icono de la aplicación, el color de fondo de la ventana, el nombre para mostrar en la barra de título, etc. Lo importante es que contiene un puntero de función al procedimiento de ventana. El ejemplo siguiente muestra una estructura típica de WNDCLASSEX . //Step 1: Registering the Window Class { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); // tamaño de la ventana wcex.style = CS_HREDRAW | CS_VREDRAW; // el estilo de la clase ->investigar cs y ws wcex.lpfnWndProc = WndProc; // puntero al window procesure de la clase wcex.cbClsExtra = 0; // cantidad extra de asignacion de memoria wcex.cbWndExtra = 0; // cantidad extra de asignacion de memoria por ventana wcex.hInstance = hInstance; // Handle a la instancia de la aplicación (la que obtenemos en el primer parámetro de WinMain( ) ) wcex.hIcon = LoadIcon(wcex.hInstance, IDI_APPLICATION); // Handle al ícono grande (32x32), mostrado cuando el usuario presiona Alt+Tab wcex.hCursor = LoadCursor(NULL, IDC_ARROW); // Handle al cursor que será mostrado sobre la ventana. wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); //Pincel para fijar el color de fondo de nuestra ventana. wcex.lpszMenuName = NULL; // Nombre del recurso Menú para usar con las ventanas de esta clase. wcex.lpszClassName = szWindowClass; // Nombre para identificar la clase. wcex.hIconSm = LoadIcon(wcex.hInstance, IDI_APPLICATION); // Handle al ícono pequeño (16x16), usado en la barra de tareas y en la esquina superior izquierda de la ventana. //-----[2.1] /*[2.2]Registre WNDCLASSEX en Windows para que sepa sobre la ventana y cómo enviar mensajes a ella. Use la función RegisterClassEx y pase la estructura de clase de ventana como argumento. La macro _T se usa porque usamos el tipo TCHAR. otra forma: if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } */ if (!RegisterClassEx(&wcex)) { MessageBox(NULL, _T("Call to RegisterClassEx failed!"), _T("Windows Desktop Guided Tour"), NULL); return 1; } //-----[2.2] //[] // Store instance handle in our global variable hInst = hInstance; //-----[2.2] /*[2.3]b Ahora puede crear una ventana. Use la función CreateWindowEx.Esta función devuelve HWND, que es un manipulador de una ventana. Un manipulador es algo parecido a un puntero que Windows usa para realizar un seguimiento de las ventanas abiertas. Para obtener más información, vea Tipos de datos de Windows.*/ HWND hWnd = CreateWindowEx( // The parameters to CreateWindowEx explained: // hwnd apunta a la ventana que se esta creando. WS_EX_OVERLAPPEDWINDOW, // WS_EX_OVERLAPPEDWINDOW : An optional extended window style. /* o bien se podria llamar WS_EX_CLIENTEDGE es el estilo extendido de la ventana, en este caso he configurado éste para darle un borde interno y hundido al marco de la ventana. Pon este valor en cero para observar la diferencia, o prueba con otros valores para ver que hacen.*/ szWindowClass, // szWindowClass: the name of the application /* o bien se podria llamar g_szClassName nombre previamente asignado en varibles globales al proceso de la ventana, sirve para el handle éste le dice al sistema que tipo de ventana crear. Debido a que queremos crear una ventana a partir de la clase que hemos registrado, usamos el nombre de dicha clase*/ szTitle, // szTitle: the text that appears in the title bar /* Declarado al inicio en las varables globales titulo de la ventana, si no se declara se coloca el nombre entre comillas como "The title of my window", */ WS_OVERLAPPEDWINDOW, // WS_OVERLAPPEDWINDOW: the type of window to create - /* Los siguientes cuatro parámetros (CW_USEDEFAULT,CW_USEDEFAULT,320,240) son las coordenadas X e Y de la esquina superior izquierda de la ventana y el alto y ancho de de la ventana, respectivamente. He puesto los campos X e Y con el valor CW_USEDEFALT para dejar que windows elija en qué lugar de la pantalla ubicar la ventana. */ /*Recuerda que la parte izquierda de la pantalla tiene un valor de X igual a cero y se incrementa hacia la derecha y la parte superior de la pantalla tiene un valor cero de Y y se incrementa cuando avanzamos hacia abajo en la pantalla. Las unidades son los pixeles, el cual es la miníma unidad que una pantalla puede mostrar en una resolución determinada.*/ CW_USEDEFAULT, CW_USEDEFAULT, // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y) 500, 100, // 500, 100: initial size (width, length) /* Los siguientes (NULL,NULL,hInstance,NULL) corresponden al handle de la ventana padre, al handle del menú, al handle de la instancia de la aplicación y un puntero a los datos con los cuales se creó la ventana. En windows las ventanas son ordenadas en la pantalla de acuerdo a una jerarquía de padre e hijo. Cuando ves un botón en una ventana, el botón es el Hijo de la ventana en la cual está contenido y dicha ventana es su Padre. En este ejemplo, -El handle al padre es nulo debido a que no tenemos padre, estamos en el nivel principal de las ventanas. -El handle al menú es nulo debido a que, por ahora, no tenemos menú. -El handle a la instancia de la aplicación es puesto con el valor que es pasado en el primer parámetro del WinMain( ). -Los datos de creación (los culaes nunca uso) pueden ser usados para enviar información adicional a la ventana que está siendo creada. También es nulo. Si estás preguntándote que es la palabra mágica NULL, es simplemente definida como cero (0). En realidad, en C está definida como ((void *) 0), debido a que está destinada a ser usada con punteros. Por lo tanto probablemente obtengas algunos "warnings" si la utilizas para valores enteros, de todas maneras esto depende del compilador y del nivel de warnings en la configuaración del mismo. Puedes elegir ignorar los warnings o usar el valor cero (0)en lugar de NULL. */ NULL, // NULL: the parent of this window NULL, // NULL: this application does not have a menu bar hInstance, // hInstance: the first parameter from WinMain NULL // NULL: not used in this application ); /* verifica si se ha creado el apuntador de la ventana, que otra forma seria if(hwnd == NULL){ MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } NOTA: los apuntadores */ if (!hWnd) { MessageBox(NULL, _T("Call to CreateWindow failed!"), _T("Windows Desktop Guided Tour"), NULL); return 1; } //-----[2.3]b //[2.4]En este momento, se ha creado la ventana, pero todavía es necesario indicar a Windows que la haga visible. Y eso es lo que hace este código: La ventana mostrada no tiene mucho contenido porque aún no ha implementado la función WndProc. En otras palabras, la aplicación aún no controla los mensajes que Windows le envía. // The parameters to ShowWindow explained: // hWnd: the value returned from CreateWindow // nCmdShow: the fourth parameter from WinMain ShowWindow(hWnd, nCmdShow); // muestra la ventana en pantalla UpdateWindow(hWnd); // refresca la pantalla //-----[2.4] //[2.5]Para controlar los mensajes, primero agregamos un bucle de mensajes para escuchar los mensajes que Windows envía. Cuando la aplicación recibe un mensaje, este bucle lo envía a la función WndProc que se va a controlar. El bucle de mensajes es similar al código siguiente. Para más información sobre las estructuras y funciones que se usan en el bucle de mensajes, vea MSG, GetMessage, TranslateMessagey DispatchMessage. // Main message loop: MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int) msg.wParam; } // FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) // // PURPOSE: Processes messages for the main window. // // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return /* [3.2]Una aplicación normalmente controla muchos otros mensajes. Por ejemplo, WM_CREATE cuando se crea una ventana por primera vez y WM_DESTROY cuando se cierra la ventana. El código siguiente muestra una funciónWndProc
básica pero completa. */ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { /*[3.1]Para agregar funcionalidad a la función WndProc. Para habilitar la función WndProc a fin de controlar los mensajes que recibe la aplicación, implemente una instrucción switch. El primer mensaje que se va a controlar es el mensaje WM_PAINT. La aplicación recibe el mensajeWM_PAINT
cuando debe actualizarse parte de su ventana mostrada. El evento puede producirse cuando un usuario mueve una ventana delante de su ventana y, luego, lo mueve de nuevo. La aplicación no sabe cuándo se producen estos eventos. Solo Windows lo sabe, por lo que lo notifica a la aplicación con un mensajeWM_PAINT
. Cuando se muestra por primera vez la ventana, toda ella se debe actualizar. Para controlar un mensajeWM_PAINT
, primero llame a BeginPaint, controle toda la lógica para mostrar el texto, los botones y otros controles de la ventana y luego llame a EndPaint. Para la aplicación, la lógica entre la llamada inicial y la llamada final muestra la cadena "Hello, Windows desktop!" en la ventana. En el siguiente código, la función TextOut se usa para mostrar la cadena.HDC
en el código es un manipulador de un contexto de dispositivo, que se usa para dibujar en el área cliente de la ventana. Use las funcionesBeginPaint
yEndPaint
para preparar y completar el dibujo en el área cliente.BeginPaint
devuelve un manipulador para el contexto del dispositivo de visualización utilizado para dibujar en el área cliente;EndPaint
finaliza la solicitud de pintura y libera el contexto del dispositivo.*/ PAINTSTRUCT ps; HDC hdc; TCHAR greeting[] = _T("Hello, Windows desktop!"); /* Nota esta secuencia se encuentra aqui al inicio o al final [caso de este codigo]: usando los punteros (hWnd, message, wParam, lParam) bien: HWND hwnd // obtiene el apuntador de la ventana de un grupo de ventanas UINT msg // Contiene información de mensajes de la cola de mensajes de un hilo. WPARAM wParam LPARAM lParam { { switch(msg){ case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } */ switch (message) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // Here your application is laid out. // For this introduction, we just print out "Hello, Windows desktop!" // in the top left corner. TextOut(hdc, 5, 5, greeting, _tcslen(greeting)); // End application-specific layout section. EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; } //-----[3.1] return 0; } //-----[3.2]
Programa Java
-Integrated Development Environments (IDEs):
Eclipse
Netbeans
Android Studio [para desarrollar aplicaciones para dispositivos Android en Java]
–abrir el símbolo del sistema o terminal para compilar el programa. Navegue a la carpeta donde guardó el archivo .java y escribir javac filename.java
c:\>javac filename.java c:\>java filename
//============================= // Hello World program public class HelloWorld { //Declarar su clase, el nombre de clase (class HelloWorld) debe ser el mismo nombre que el archivo guardado (HelloWorld.java). public static void main(String[] args) { // Declarar su método principal (public static void main(String[] args)). El método principal es el que se ejecutará cuando la programación se está ejecutando es declarado de la misma forma para todos los programas Java. //Los métodos pueden ser llamados y corridos en instancias posteriores en el código System.out.println("Hello World."); //Escribir la línea de código que se va a imprimir "Hola Mundo". El método consiste en que la clase "sistema" (System) activa una salida (out) de impresion [panel de salida, terminal o línea de comandos] de una linea (println), tomando un parámetro (el String "Hello World.").siempre separar con un punto y agregar una coma al final de cada línea. } }
-Java es sensible a mayúsculas y minúsculas, por lo que debe escribir los nombres de método, los nombres de las variables, y los nombres de clase en el caso correcto o se producirá un error.
-Los bloques de código específico para un determinado método o bucle están encerrados entre llaves.
-La palabra «static» indica que este miembro puede ser consultado antes de cualquier otro objeto en la clase y sin hacer referencia a otros objetos o instancias.
-La palabra «void» es el valor de retorno del método. Esto indica que no devuelve ningún valor. Si fuera para devolver un número, sería cambiado a «int» o «float» o «doble», dependiendo del tipo de valor que querían volver.
-Cuando se tiene cualquier texto entre paréntesis (es decir, String[] args{}), este se llama un argumento. Un argumento puede ser muchas cosas como un integer, double, float o chain (cadena). Esta línea de código indica que el método es una espera un argumento de tipo array (lista de objetos), que contiene las cadenas.
-La sangría al código no es necesariamente obligatoria.
-solicitar al usuario su nombre y,
//============================= // tomar la entrada del usuario. import java.util.Scanner; //la biblioteca Escáner de objetos que necesitamos para obtener la entrada del usuario. Con el fin de importar el la clase de Escáner //Si queremos tener acceso a todos los objetos en java.util paquete, simplemente debemos escribir importar java.util.*; al principio de nuestro código. Scanner userInputScanner = new Scanner(System.in); //Para utilizar el Escáner de clase, tenemos que crear un nuevo Escáner de objetos donde podemos rellenar los campos y usar los de los métodos //userInputScanner es el nombre escrito en la convención para nombres de variables en Java. //El operador new es usado para crear una nueva instancia del objeto Escáner, escrito como: new Scanner(System.in). //El objeto Escáner toma (in) un parámetro (System.in) que indica al programa que analice (Scanner) la entrada del sistema, que es la entrada que el usuario escribira en el programa. System.out.print("What's your name? "); //Solicitar al usuario una entrada. Tenemos que pedir al usuario una entrada para que el usuario sepa cuando escrir algo en la consola. Esto se puede lograr con un System.out.print o un System.out.println. String userInputName = userInputScanner.nextLine(); //Pedir al objeto Escáner tomar la siguiente línea que el usuario escribe (su nombre) y almacenarla en una variable. El Escáner esta siempre tomando en datos sobre lo que el usuario está escribiendo. //En Java, por convención se utiliza un para nombrar métodos de objetos es objectName.methodName(parameters). Asi userInputScanner.nextLine(), llama al Escáner de objetos por el nombre que hemos dado y, a continuación, estamos llamando a su método nextLine(), que no toma ningun parámetro. //Tener en cuenta que se almacena la línea siguiente en otro objeto: el objeto tipo String. Se ha llamado a este objeto: userInputName System.out.println("Hello " + userInputName + "!"); //Imprimir un saludo para el usuario. el nombre del usuario almacenados, se usa para imprimir un saludo para el usuario. desde el System.out.println("Hello World.") escrito en la clase principal. Todo el escrito debe ir por encima de la línea. Ahora podemos modificar esa línea que diga: public class HelloWorld { public static void main(String[] args) { Scanner userInputScanner = new Scanner(System.in); System.out.print("What's your name? "); String userInputName = userInputScanner.nextLine(); System.out.println("Hello " + userInputName + "!"); } }
<head> function blinktext() { var f = document.getElementById('announcement'); setInterval(function() { f.style.visibility = (f.style.visibility == 'hidden' ? '' : 'hidden'); }, 1000); } </head> <body onload="blinktext();">. <p id="announcement">Texto parpadeante aquí.</p> <div id="announcement">Texto parpadeante aquí.</div>.
El curso puede encontrarse en la página http://www.archive.org y en su buscador, ingresar el nombre del curso (Comp3321).
curso viene organizado de la siguiente forma:
-Parte 1: Básicos de Python con 11 lecciones
-Parte 2: Módulos útiles con más de 10 herramientas aplicas a la ciberseguridad
-Ejercicios con soluciones
-Proyectos en clase
-Ideas de proyectos
-Recursos generales
-Documentación del lenguaje Python
-Materiales del curso de la NSA
-Libros
-Otros
Cada leción o módulo, puede ser cubierto en sesiones de 45 o 90 minutos, dependiendo de los temas que se abarquen”, se lee en la primera página de COMP 3321.
https://www.infobae.com/tecno/2023/08/30/estudiar-gratis-python-este-es-el-curso-de-la-agencia-de-seguridad-de-estados-unidos/
Me gustaMe gusta
enfoque de la tecnología “hazlo por tí mismo” o conocida por su sigla en inglés como DIY (”Do It Yourself”),
Me gustaMe gusta