Como realizar un sencillo juego de adivinar el numero con Scratch.
Veremos como realizar bloques para evitar repetir codigo, bucles, condicionales, variables, generacion de numero al azar, etc.
Como realizar un sencillo juego de adivinar el numero con Scratch.
Veremos como realizar bloques para evitar repetir codigo, bucles, condicionales, variables, generacion de numero al azar, etc.
En este video veras como crear una aplicacion sencilla para Android, usando AppInventor.
Si has usado Scratch te sera muy facil adaptarte a AppInventor, se programa mediante bloques.
En el siguiente video podras ver como realizar una aplicacion sencilla de sumas, donde el personaje pregunta al usuario el resultado de sumar 2 numeros al azar, aplicacion util para los pequeños que empiezan con las operaciones matematicas.
Es una aplicacion sencilla con la que poder iniciarse con Scratch.
En este video terminamos el proyecto, controlando el acceso del usuario a la web y manejando sesiones con Php.
index.php
<?php
require_once(“php/limpiaTexto.php”);
require_once(“php/baseDatos.php”);
?>
<!DOCTYPE html>
<html lang=”es”>
<head>
<meta charset=”UTF-8″>
<meta name=”viewport” content=”initial-scale=1,width=device-width”>
<meta name=”keywords” content=”acceso,usuarios,php,mysqli”>
<link rel=”stylesheet” href=”css/estilos.css” type=”text/css”>
<title>Acceso Usuarios</title>
</head>
<body>
<header id=”cabecera”>
<nav id=”navegacion”>
<ul>
<li><a href=”#”>Inicio</a></li>
<li><a href=”#”>Acerca de</a></li>
</ul>
</nav>
</header>
<div id=”contenido”>
<section>
<article>
<div id=”formulario”>
<h1>Acceso usuarios</h1>
<?php
if(isset($_POST[‘nombre’])&& isset($_POST[‘clave’])){
$nombre=limpiaTexto($_POST[‘nombre’]);
$clave=limpiaTexto($_POST[‘clave’]);
$conexion=conectarBase();
$entra=accesoUsuario($conexion,$nombre,$clave);
if($entra){
if(session_status()!== PHP_SESSION_ACTIVE){
session_start();}
$_SESSION[“autenticado”]=”si”;
$_SESSION[“usuario”]=$nombre;
echo “<script>alert(‘Bienvenido.’);
window.location.href=”dentroUsuario.php”</script>”;
}else{
echo”<script>alert(‘Error, intentalo de nuevo.’);
window.location.href=”index.php”</script>”;
}
} else {?>
<form autocomplete=”off” action=”index.php” method=”post” name=”formulario”>
<input type=”text” name=”nombre” required placeholder=”Nombre”/><br/>
<input type=”password” name=”clave” required placeholder=”Clave”/><br/>
<input type=”submit” value=”Entrar” class=”boton”/>
</form>
</div>
<?php
}
?>
</article>
</section>
<aside></aside>
<footer id=”pie”>
<p>@Copyright ——</p>
</footer>
</div>
</body>
</html>
BaseDatos.php
<?php
require_once(“codifica.php”);
function conectarBase(){
$root=”root”;
$clave=””;
$localhost=”localhost”;
$base=”acceso”;
$tabla=”usuarios”;
$mysqli=new mysqli($localhost,$root,$clave,$base);
return $mysqli;
}
//pruebas
$conectado=conectarBase();
if($conectado){
echo “conexion correcta”;
}
function altaUsuario($mysqli,$nombre,$clave){
$key=codificar($clave);
$mysqli->query(“INSERT INTO usuarios (id,nombre,clave) VALUES (NULL,'”.$nombre.”‘,'”.$key.”‘)”);
}
function accesoUsuario($conexion,$nombre,$clave){
$key=codificar($clave);
$consulta=”SELECT * FROM usuarios WHERE nombre='”.$nombre.”‘”;
$resultado=$conexion->query($consulta);
if($resultado){
while(($columna=$resultado->fetch_assoc())){
$nombreTabla=$columna[‘nombre’];
$claveTabla=$columna[‘clave’];
if($nombre==$nombreTabla){
$entra=compara($claveTabla,$key);
if ($entra){
return true;
} else {
return false;
}
}
}
$resultado->free();
$conexion->close();
}else{
echo “sin resultados”;
}
}
?>
En este video vemos como preparar las primeras funciones PHP, para conectar a la base de datos, usamos una funcion para poder guardar la clave codificada.
<?php
function limpiaTexto($texto){
$textoLimpio=strip_tags($texto);
$textoLimpio=trim($textoLimpio);
return $textoLimpio;
}
?>
<?php
function codificar($texto){
$mas=”dkjfdkajKKKjd”;
$textoCodificado=md5($texto.$mas);
return $textoCodificado;
}
function compara($textoBaseDatos,$textoUsuario){
if($textoBaseDatos==$textoUsuario){
return True;
}
else{
return False;
}
}
?>
<?php
require_once(“codifica.php”);
function conectarBase(){
$root=”root”;
$clave=””;
$localhost=”localhost”;
$base=”acceso”;
$tabla=”usuarios”;
$mysqli=new mysqli($localhost,$root,$clave,$base);
return $mysqli;
}
//pruebas
$conectado=conectarBase();
if($conectado){
echo “conexion correcta”;
}
?>
En este primer video vemos como crear el laberinto que pondremos como escenario o fondo del juego, asi como la creacion del personaje principal y sus movimientos.
Realizamos un juego en el que hay que aterrizar el cohete, usando las flechas del teclado, en una plataforma.
Veremos paso a paso como realizarlo usando Scratch.
En este video vemos como ejecutar varias tareas en segundo plano, mediante hilos o threads.
Podeis ver el codigo aqui:
Clase Principal:
public class main {
public static void main(String[] args) {
hilo hilo1=new hilo(“hilo 1”);
hilo hilo2=new hilo(“hilo 2”);
hilo1.setMensaje(“Mensaje del hilo 1”);
hilo2.setMensaje(“Mensaje del hilo 2”);
hilo2.start();
hilo1.start();
}}
Clase Hilo:
public class hilo extends Thread{
String mensaje;
public hilo(String nombre){
super(nombre);
}
public void run(){
for (int i=1;i<11;i++){for (int j=1;j<11;j++){
System.out.println(i+”*”+j+” = “+i*j);
}
try{
sleep(2000);} catch(Exception e){}
}
System.out.println(“Proceso terminado “+this.getName());
System.out.println(mensaje);
}
public void setMensaje(String msg){
this.mensaje=msg;
}
}
Como ejemplo practico de instanciar un objeto de una clase creada por nosotros, podriamos ver como simular la programacion de un cajero bancario, en el que podremos crear cuentas y operar con ellas, mostrando el saldo al requerirlo.
La clase principal seria asi:
public class principal {public static void main(String[] args) {
cuentaBancaria cuenta1=new cuentaBancaria(500);
cuentaBancaria cuenta2=new cuentaBancaria();
System.out.println(“El saldo de la cuenta 1 es “+cuenta1.dameSaldo());
System.out.println(“El saldo de la cuenta 2 es “+cuenta2.dameSaldo());
cuenta1.retira(25);
cuenta2.ingresa(249.23);
System.out.println(“El saldo modificado de la cuenta 1 es “+cuenta1.dameSaldo());
System.out.println(“El saldo modificado de la cuenta 2 es “+cuenta2.dameSaldo());
}}
La clase cuentaBancaria seria:
public class cuentaBancaria {
private double cantidad;
private double saldo;
cuentaBancaria(){
saldo=0;
}
public double dameSaldo() {
return saldo;
}cuentaBancaria(double cantidad){
saldo=cantidad;
}
void ingresa(double cantidad){
saldo=saldo+cantidad;
}
void retira(double cantidad){
saldo=saldo-cantidad;
}
}
En esta clase se preparan los metodos que incrementan o disminuyen el saldo, asi como el metodo que devuelve el saldo que servira para mostrarlo por consola desde la clase principal
Ponemos en dicha clase dos constructores (sobrecarga), se tomara uno u otro dependiendo si al instanciarlo indicamos saldo inicial o no.
Desde la clase principal instanciamos dos cuentas y operamos con ellas.