Empieza por acá

1

Mi primera línea de código

Fundamentos de Programación

2

¿Qué es HTML/CSS/JS?

3

JavaScript no es Java

4

Primeros pasos en el navegador con alert

5

HTML, CSS, JavaScript de verdad

6

Los apuntes de Freddy en PDF

Primer proyecto: Peso en otro planeta

7

Peso en otro planeta

8

Obteniendo datos del usuario

9

Flujo y condicionales

Segundo proyecto: Dibujando con Canvas

10

Cómo funcionan Window y Document

11

El DOM: nuestro lugar de trabajo en la web

12

Dibujando en el DOM

13

Qué son las Funciones en JavaScript

14

Ciclos while y for en JavaScript

15

Eventos y Formularios en HTML y JavaScript

16

Detectar eventos del teclado con JavaScript

17

Dibujar en canvas con las flechas del teclado

Tercer proyecto: Villa platzi

18

Funciones matemáticas y números aleatorios en JavaScript

19

Uso y carga de imágenes en Canvas

Cuarto proyecto: Pakimanes

20

División, módulo y residuo en JavaScript

21

Clases y Arrays en JavaScript

Quinto proyecto: Cajero automático

22

Diagrama de Flujo del Cajero Automático

23

Implementación del Cajero Automático

Sexto proyecto: Cliente/Servidor

24

Primer servidor web con express

25

Modelo Cliente/Servidor

Programación de Hardware y Electrónica con Arduino

26

¿Cómo funciona un circuito electrónico?

27

¿Cómo programar un Arduino?

28

Programación de circuitos con C, Arduino y Sketch

29

Cómo programar un Arduino con Javascript y Node

30

Construye un Robot con JavaScript

31

Robot para riego de plantas en Arduino, Javascript y Node

Materiales de apoyo

32

Las mejores notas de los estudiantes

33

¿Cuál lenguaje de programación aprender primero?

34

La Web con Visión Profesional

Contenido Bonus

35

Qué son tablas de verdad y compuertas lógicas

Recap Curso Gratis de Programación Básica

36

Recap Programación básica

37

Recap Programación básica ENG

Qué son tablas de verdad y compuertas lógicas

35/37

Lectura

Conoce qué son las tablas de verdad y las compuertas lógicas, para que cimientes tus fundamentos de ingeniería de software o comiences a programar desde cero.

Una tabla de verdad muestra el valor de verdadero de una proposición compuesta, para cada combinación de verdad que se pueda asignar. Esto es la base de la programación y la electrónica.

Compuertas lógicas

And: Los dos tienen que ser verdaderos para que de verdadero
Or: Al menos uno tiene que ser verdedero para que de verdadero
Not: Es lo contrario
XOR: Solo uno puede ser verdadero para que devuelva un valor verdadero.

Aportes 625

Preguntas 30

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

La expresiones para los operadores de comparacion son:

	y		= and	= &&	= *
	o		= or		= ||		= +
	no		= not	= !		= ~
o exclusiva	= xor	= ^		= (+)

Logre terminar el mío, y gracias al código de Raul Gomez pude salir de una duda que tenía en mi código. Si ven que lo puedo mejorar, agradecería sus opiniones…

FLUJO:

HTML:

<<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Transferencias entre Bancos </title>
  </head>
  <body>
        <h1> Transferencia entre bancos </h1>
        <p>
          <img src="https://4.bp.blogspot.com/-gQjHN6OJTDc/V8Ks-GjcSfI/AAAAAAAAHcs/7LjVCQ9FgNw8IsmeHgePP4YbQCq90LAlQCLcB/s1600/Transferencia_bancaria.png" />
        </p>
        <p id="resultado"> </p>
      <script src="Banco.js"></script>
  </body>
</html>

JS:

var resultado = document.getElementById("resultado");

bancos = ["Bancolombia", "Davivienda", "BBVA"];
var opcionBanco = bancos.length;
seleccionBancoCliente = Math.floor(Math.random()*opcionBanco);
seleccionBancoDestino = Math.floor(Math.random()*opcionBanco);

bancoCliente = seleccionBancoCliente;
cuentaCliente = true;
saldoCliente = Math.round(Math.random()*3000000);
bancoDestino = seleccionBancoDestino;
cuentaDestino = true;
transferencia = 1000000;
costoTransferencia = 100;

hora = Math.round(Math.random()*23);
document.write("Su hora para la transferencia es las:  <strong>" + hora, " horas</strong> <hr />");
document.write("El saldo del cliente actual es:  <strong>" + saldoCliente, ".</strong> <hr />");
document.write("El banco del cliente es:  <strong>" + bancoCliente, ".</strong> <hr />");
document.write("El banco de destino es:  <strong>" + bancoDestino, ".</strong> <hr />");

if(hora >= 9 && hora <= 12 || hora >= 15 && hora <= 20)
{
    if(cuentaCliente == true && cuentaDestino == true)
    {
        console.log("Cuenta OK");
        if(saldoCliente >= (transferencia + costoTransferencia))
        {
            console.log("Cuenta OK");
            if(bancoCliente == bancoDestino)
            {
                resultado.innerHTML = ("Transferencia realizada sin costo adicional! <hr />");   
            }
            else
            {
                resultado.innerHTML = ("El costo de su tranferencia es: <strong>" + (transferencia + costoTransferencia), "</strong> <hr />");   
            }
        }
        else
        {
            resultado.innerHTML = ("Lo sentimos! <strong>Fondos insuficientes.</strong> <hr />");   
        }
    }
    else
    {
        resultado.innerHTML = ("Cliente o Destino NO verficado! <hr />");   
    }
}
else
{
    resultado.innerHTML = ("La hora no esta dentro del horario de atención! <strong>Recuerde que el horario es de 9 a 12 y de 15 a las 20 horas.</strong> <hr />");   
}

Hola! Aqui dejo mi codigo

var banco_cliente="Banesco";
var cuenta_cliente=true;
var saldo_cliente=2000000;
var banco_destino="Bancolombia";
var cuenta_destino=true;
var hora= 20;
var monto= 1000000;
var transaccion;

if(banco_cliente==banco_destino)
{
transaccion=0;
}
else
{
transaccion=100;
}


if( cuenta_cliente && cuenta_destino)
{

 if( (hora >= 9 && hora <=12)  || (hora >= 15 && hora <= 20) )
 {

  if(saldo_cliente > monto+transaccion)
  {
    console.log("Lo lograste! Tu transaccion te saldra en "+ transaccion);
  }
  else
  {
    console.log("eres pobre y nadie te quiere ");
  }

}
 else
 {
  console.log("No son horas para hacer transeferencias");
 }
}
else
{
console.log("La cuenta de destino o su cuenta no existe");
}```

Y el que intente hacer de la forma mas corta posible


var banco_cliente=“Banesco”;
var cuenta_cliente=true;
var saldo_cliente=2000000;
var banco_destino=“Bancolombia”;
var cuenta_destino=true;
var hora= 10;
var monto= 1000000
var transaccion;

if(banco_cliente==banco_destino)
{
transaccion=0;
}
else
{
transaccion=100;
}

if( (cuenta_cliente && cuenta_destino) && ( (hora > 9 && hora <12) || (hora > 15 && hora < 20) ) && (saldo_cliente > monto+transaccion) )
{

console.log("Transferiste "+monto+" Tu transaccion te saldra en "+ transaccion);

}
else
{
console.log(“No puedes hacerlo algo anda mal”);
}```

Hola aqui les dejo un proyecto que realice. CALCULADORA DIGITAL con proteus. Saludos.

Yo lo hice todo en una pagina, la pueden chequear aqui:

Me comentan si hay algo que deba revisar 😃

HTML

<!DOCTYPE html>
<meta charset="utf-8">
<meta lang="es">
<head>
    <title>Transferencia</title>
    <style>
    *
    {
        text-align: center;
        margin: 10px auto;
    }
body{
    background-color: rgb(122, 106, 214)
}

#trans{
    font-size: 1.3em;
    background-color:rgb(66, 177, 177) ;
    width: 50%;
}

    </style>
    
</head>
<html>
    <h1>Banco DINERON</h1>
    <i>Tu banco donde hay <b>full</b> billete</i>
<div id="trans">

<h2>Tu saldo: <span id="tuSaldo"></span></h2>

<h2>Introduzca el monto a tranferir</h2>

<input id="montoTransferencia" type="number">


<h2>Introduzca el banco a destino</h2>
    <select id="bancoTransferir">
    <option id="opcion1" value="Banco A">Banco A</option>
    <option id="opcion" value="Banco B">Banco B</option>
</select>

<h2>introduzca el destinatario</h2>
    <select id="clienteTransferir">
    <option id="cuentaA" value=1>Roberto Esponja</option>
    <option id="cuentaB" value=0>Patricio Estrella</option>
</select>


<br>
<p>Las transacciones a otros bancos tienen una comision de un 10%</p>
<br>
<input id="ejecutar" type="button" value="ejecutar">
</div>
<script src="transferencia.js"></script>

</html>

JS

 class Transferencia {
    constructor(m, bc, cc, sc, bd, cd, h){
    this.monto = m,
    this.bancoCliente = bc,
    this.cuentaCliente = cc,
    this.saldoCliente = sc;
    this.bancoDestino = bd;
    this.cuentaDestino =cd;
    this.horaTrans = h;
    }
}


var hora = 15;
/*Cambiar el valor de hora por lo siguiente y 
descomentar la linea de codigo que le sigue para que tome evalue la hora real*/

/*new Date();
hora = hora.getHours();
*/


var  cliente = {
    clienteBanco: "Banco A",
    clienteCuenta: true,
    clienteSaldo: 150,
}


document.getElementById("ejecutar").addEventListener("click", tranferir);
var tuSaldo = document.getElementById("tuSaldo");
var showSaldo = ()=>{tuSaldo.innerHTML = cliente.clienteSaldo};
showSaldo();

var montoTranferencia = parseInt(document.getElementById("montoTransferencia").value);

function tranferir(){

var target1 = document.getElementById("bancoTransferir").value;
var target2 = document.getElementById("clienteTransferir").value;
var montoTranferencia = parseInt(document.getElementById("montoTransferencia").value); var destinoCheck = 0;
var saldosCheck = false;
var aprobado = false;
var horaCheck = false;

//Evalua bancos 

if(target1 != "Banco A")
    {
    montoTranferencia+= (montoTranferencia * 10 /100);
    console.log("Monto Tranferencia", montoTranferencia);} 

//Evalua client
 if(target2 ==1 ){
   destinoCheck++;
}     

else{
 return  alert("Destinatario no aprobado");
}

//Evalua saldos 
if (cliente.clienteSaldo>= montoTranferencia)
        {
            saldosCheck = true;
            console.log("saldos", saldosCheck);
        }
else{
    return alert("Su saldo no es suficiente para completar la tranferencia");
}

//Hora check
if(hora >= 9 && hora <=12 || hora >=15 && hora <=20 ){
    horaCheck = true;
    console.log("hora:", horaCheck);
}

else{
    return alert("En este momento no es posible realizar la tranferencia \nNuestro horario de tranferencia es de 9 am - 12 pm y de 15 pm a 20 pm");
}

 //Evalua todo       
 if(destinoCheck > 0 && saldosCheck == true && horaCheck == true){
     cliente.clienteSaldo -= montoTranferencia;
     aprobado = true;
     showSaldo();
     console.log(`Transferencia por ${montoTranferencia} aprobada. Su saldo es de: ${cliente.clienteSaldo} `);
    return alert(`Transferencia por ${montoTranferencia} aprobada. Su saldo es de: ${cliente.clienteSaldo} `);
    }

    }

 

Veo que muchos ponen códigos bien completos con funciones y todo, pero pues yo solo me apegue al reto que era hacer los filtros o validaciones anidados y luego en uno solo, los códigos que tengo son los siguientes y funcionan

Validaciones anidadas:

var bancoCliente = "Bancomer";
var cuentaCliente=12345;
var saldocliente = 1500000;
var bancoDestino = "Bancomer";
var cuentaDestino = 67890;
var horaTransferencia = 17;

if (bancoCliente == "Bancomer" && cuentaCliente == 12345)
{ console.log("Cuenta verificada");
  if(saldocliente>1000000)
  {
    console.log("Si te alcanza");
    if(bancoDestino == "Bancomer" && cuentaDestino == 67890)
    {
      console.log("La cuenta destino es correcta");
      if(horaTransferencia>9&&horaTransferencia<12 || horaTransferencia>15&&horaTransferencia<20)
      {
        console.log("La Transferencia fue realizada");
      }
      else {
        console.log("El horario no es permitido");
      }
    }
    else {
      console.log("La cuenta de destino no existe");
    }

  }
  else {
    console.log("No tienes el suficiente dinero");
  }
}
else {
  console.log("No eres de este banco");
}

Una sola validación:

var bancoCliente = "Bancomer";
var cuentaCliente=12345;
var saldocliente = 1500000;
var bancoDestino = "Bancomer";
var cuentaDestino = 67890;
var horaTransferencia = 17;

if (bancoCliente == "Bancomer" && cuentaCliente == 12345 && saldocliente>1000000 && bancoDestino == "Bancomer" && cuentaDestino == 67890 && (horaTransferencia>9&&horaTransferencia<12 || horaTransferencia>15&&horaTransferencia<20))
{
 console.log("Transferencia realizada");
}
else {
  console.log("No se puede realizar la transferencia");
}```

Intenté hacerlo de la manera más clara posible en un solo if:

  1. En la primera línea comprobamos que sean usuarios verificados y el dinero disponible
  2. En la segunda validamos la transacción, teniendo en cuenta si la misma tiene costo o no
  3. Por último verificamos que el horario sea adecuado y damos paso a la instrucción
if(
  client_ver && destiny_ver && client_money >= (  
  (client_bank === destiny_bank) ? 0 : 100 ) + transaction 
  && (  (time >=9 && time <= 12) || (time >=15 && time <= 20) )
  ){
    console.log("Your transaction was successful, thanks.")
   }
else console.log("We can't handle your transaction, please try later.")
}

Lo probé en el navegador y funcionó, lo único que hay que hacer es englobar todo este código dentro de una función y ejecutarla luego de definir las variables y sus respectivos valores.

*PD: el “?” en la segunda línea es un operador ternario que devuelve el valor que escribimos luego del mismo si la condición que escribimos previamente es verdad; de lo contrario, devuelve un valor en base a lo que escribamos luego del primer valor seguido de los dos puntos.

if (te_gusto_el_codigo) { daleLike() }
else if (tienes_un_codigo_mas_claro) { dejaloEnLosComentarios() }

Para resumir:

And: Los dos tienen que ser verdaderos para que de verdadero
Or: Al menos uno tiene que ser verdedero para que de verdadero
Not: Es lo contrario
XOR: Solo uno puede ser verdadero para que de verdadero

😄!

como puedo ganar mas puntos?

Cuando estaba en colegio mi profesor nos enseño con un muñeco llamado PADIMUSURE:
PA-paréntesis
DI-División
MU-multiplicación
SU-suma
RE-resta

el resultado era esta cara:

( * / * )
+
------------

Hola aqui les comparto un proyecto que hice. RELOJ DIGITAL con proteus. Saludos.

este video hubiera sido bueno de primero en el curso

Hola, Este es mi aporte.

Colocamos la hora.

Seleccionamos los bancos y colocamos la cantidad.
Adicional a eso agregue un contador de tu saldo que automáticamente resta cada transferencia.

En caso de cambiar de banco(s) y/o monto

Y cuando se acabe el saldo, ya no se podra realizar transferencias.

  • HTML

  • JS



Ordenado y legible

//VARIABLES

var banco_cliente = "mibanco";
var cuenta_cliente = true;
var saldo_cliente = 1000;

var monto = 1000;
var costo_transaccion = 100;
var hora_transferencia = 10;

var banco_destino = "mibanco";
var cuenta_destino = true;

var transferencia = false;
//

if(cuenta_cliente){
    if(cuenta_destino){

        if(banco_cliente == banco_destino){
            costo_transaccion = 0;
        }else{
            costo_transaccion = 100;
        }

        if(saldo_cliente >= (monto + costo_transaccion)){
            if((hora_transferencia >= 9 && hora_transferencia <= 12) || (hora_transferencia >= 15 && hora_transferencia <= 20)){
                transferencia = true;
            }
        }
    }
}

console.log(transferencia);

Maxima reduccion que pude lograr

if(banco_cliente == banco_destino){
    costo_transaccion = 0;
}
if(cuenta_cliente && cuenta_destino && saldo_cliente >= (monto + costo_transaccion) && (hora_transferencia >= 9 && hora_transferencia <= 12) || (hora_transferencia >= 15 && hora_transferencia <= 20)){

    transferencia = true;
}

Quiero agradecer y reconocer la alta calidad de este curso y en especial la vocación en la enseñanza de Freddy Vega !!! muchas gracias por su simpatía y humildad que motiva en el logro de nuevos retos.
Ya he comenzado a tomar otros cursos de Platzi y me siento muy satisfecha por la metodología de sus docentes (todos buscan el aprendizaje y a la vez el mantener motivados a sus estudiantes.
Espero aprovechar al máximo este valiosísimo recurso y de seguro que desde ya, lo estoy recomendando entre mis allegados… Dios les bendiga por este excelente trabajo!!

var cliente, destino;
var hora;
var banco_cliente, banco_destino;
var saldo;
var transferencia;

if(cliente && destino && 9<hora<12 || 15<hora<20 && saldo > 1M + 100*(banco_cliente !^ banco_destino))
{
transferencia =1;
}
else{transferencia = 0}

var bancoCliente = 1, 
    cuentaCliente = 1,
    saldoCliente = 10000101,
    bancoDestino = 0,
    cuentaDestino = 'nacion123',
    horaTransferencia = 16,
    monto = 1000000,
    costo = 100

if(bancoCliente && cuentaCliente && !bancoDestino && saldoCliente && saldoCliente > monto + costo && ((horaTransferencia > 9 && horaTransferencia < 12) || (horaTransferencia > 15 && horaTransferencia < 20))){
    console.log('funciona y realiza transferencia')
} else if(bancoCliente && cuentaCliente && bancoDestino && saldoCliente && saldoCliente > monto && ((horaTransferencia > 9 && horaTransferencia < 12) || (horaTransferencia > 15 && horaTransferencia < 20))) {
    console.log('funciona y realiza transferencia')
} else {
    console.log('no se puede realizar la operación')
}```

Tarea:

transaccion.html

<!DOCTYPE html>
<html>
<head>
	<title>Condicionales de Transferencia</title>
</head>
<body>
	<h2>Ver Operación por  consola: (F12)</h2>
	<script src="persona.js"></script>
	<script src="motor_desicion.js"></script>
</body>
</html>

persona.js

class persona{
	constructor(n, b, s, v)
	{
		this.nombre = n;
		this.banco = b;
		this.saldo = s;
		this.verificada = v;
	}

	mostrar()
	{
		console.log("Nombre:" + this.nombre);
		console.log("Banco:" + this.banco);
		console.log("Saldo:" + this.saldo);
		console.log("Verificada:" + this.verificada + "\n\n");
	}
}

motor_decision.js

var cliente = new persona("cliente", "Venezuela", 2000000, true);
var destino = new persona("destino", "Mercantil", 500, true);
var monto_transferir = 1000000;
var hora = 15;
var costo;

console.log("Hora:" + hora);
console.log("Monto a transferir:" + monto_transferir + "\n\n");

cliente.mostrar();
destino.mostrar();

// horario disponible
if (hora >= 9 && hora <= 12 || hora >=15 && hora <=20)
{	
	// Cliente y Destinatario Verificados
	if (cliente.verificada && destino.verificada)
	{
		// Costo de transaccion
		if (cliente.banco == destino.banco) costo = 0;
		else costo = 100;
		
		// Saldo mayor al monto a transferir mas costo de operacion
		if (cliente.saldo > monto_transferir + costo)
		{
			cliente.saldo = cliente.saldo - (monto_transferir + costo);
			destino.saldo = destino.saldo + monto_transferir;
			console.log("-- Saldo Transferido --\n\n");
		}
		else console.log("-- Saldo insuficiente --\n\n");
	}
	else console.log("-- Ambas cuentas deben de estar verificadas --\n\n");
}
else console.log("-- Horario fuera de servicio --\n\n")

cliente.mostrar();
destino.mostrar();

condicional en una linea:

// Costo de transaccion
if (cliente.banco == destino.banco) costo = 0;
else costo = 100;

if ((hora >= 9 && hora <= 12 || hora >=15 && hora <=20) && (cliente.verificada && destino.verificada) && (cliente.saldo > monto_transferir + costo)) console.log("-- Saldo Transferido --\n\n");
else console.log("-- Algo salio mal --\n\n");

Mi ejemplo en js:

banco_cliente = "Bancomer";
cuenta_cliente = true;
saldo_cliente = 1200000;
banco_destino = "Banamex";
cuenta_destino = true;
hora = 11;
transferir = 1000000;
costo_transaccion = 100;

if((hora >=9 && hora <= 12) || (hora >= 15 && hora <= 20)){
  if(cuenta_cliente && cuenta_destino){
    if( saldo_cliente >= (transferir + costo_transaccion) ){
      if(banco_cliente == banco_destino){
          document.write("Transferencia sin costo de transacción");
      }
      else{
        document.write("Cantidad a transferir + costo de transferencia: $" + (transferir + costo_transaccion));
      }
    }
    else {
      document.write("Fondos insuficientes");
    }
  }
  else{
    document.write("Cliente o destino falso");
  }
}
else{
  document.write("Error: fuera de horario");
}

var banco_cliente = true;
var cuenta_cliente = true;
var saldo = 3000000;
var banco_destino = true;
var cuenta_destino = true;
var cliente = true
var montoTransferencia = 1000000
var horaTransf = 10

if (banco_destino != banco_cliente)
{
costoTrasaccion = 100;
}

if((cuenta_cliente && cuenta_destino) && (saldo > (montoTransferencia + costoTrasaccion) && ((horaTransf >= 9 || <= 12) || (horaTransf >=15 || <= 20)))
{
saldo = saldo -(montoTransferencia + costoTrasaccion);
alert(“Transferencia Lista”);
}

Listo. El reto validando con un sólo IF:

<!DOCTYPE html>
<html>
	<meta charset="utf-8">
<head>
	<title>COMPUERTAS LÓGICAS</title>
</head>
<body>
	<h1>TRANSFERENCIAS BANCOVID AV.19</h1>
	<p>------------------</p>
	<p>Banco de Origen
		<select name="Borigen" id="Borigen">
			<option disabled selected>Banco de Origen</option>
			<option>BANCOVID</option>
			<option>BANCORONA</option>
			<option>BANCOLORADO</option>
			<option>BANCONÓMICO</option>
		</select>
	</p>
	
	<p>Número de cuenta Origen (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): </p>
	<input type="number" name="" id="Ctaorigen" min="1" max="5">
	
	<p>Saldo en cuenta Origen: </p>
	<input type="number" name="" id="Saldoorigen">
	
	<p>Hora actual de transferencia:
	<span id="hora"></span>
<p>------------------</p>
	<p>Banco de Destino
		<select name="Bdestino" id="Bdestino">
			<option disabled selected>Banco de Destino</option>
			<option>BANCOVID</option>
			<option>BANCORONA</option>
			<option>BANCOLORADO</option>
			<option>BANCONÓMICO</option>
		</select>
	</p>
	
	<p>Número de cuenta Destino (del 1 al 5. Un valor diferente se tendrá como una cuenta inválida): </p>
	<input type="number" name="" id="Ctadestino" min="1" max="5">

	<p>------------------</p>
	
	<p>Valor a transferir: </p>
	<input type="number" name="" id="Monto">
	<p><input type="button" value="TRANSFERIR..." id="boton"></p>
	<script src="compuertas.js"></script>
</body>
</html>```

Abajo el JS

Hola, adjunto las dos versiones, en ambas se puede probar cambiando las variables para validar si la transacción es posible o no.

Hace un tiempo, antes de ver el curso de programación gratuito, pensé en hacer parte de las comunidades para aprender, apoyar, en fin, pero por algunos problemas problemas (estoy loco del coco…)… (en realidad es fobia social…) me es más fácil aprender (solo por gusto) de web por videos, haber llegado al final del curso, darme cuenta que tengo un amplio conocimiento y que puedo hacer cosillas aunque sea para entretenerme ha significado mucho por lo cual, agradezco al sr Freddy por todo… A los demás ojalá y deje de pegar el código, eso no aporta del todo.

Por acá dejo mi versión del código, lo estructuré en 2 archivos:
index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Transferencia Bancaria BanQ</title>
    <style>
        body {
            background-color: #000000dc;
            color: lightblue;
            font-size: 20px;
        }
        h1 {
            text-align: center;
            font-size: 38px;
        }
        fieldset {
            margin: 0px 100px;
            padding: 0px 50px;
        }
        div {
            display: inline-block;
        }
        #datos-cliente {
            display: none;
        }
        #error {
            text-align: justify;
            color: lightcoral;
        }
        #exito {
            text-align: center;
            color: lightgreen;
        }
    </style>
</head>
<body>
    <h1>Banco BanQ</h1>
    <fieldset>
        <legend>Transferencia Bancaria</legend><br>
        Nro. cuenta del cliente: <input type="text" id="cuenta-cliente" title="1234567890" value="1234567890">
        <button onclick="consultar()">Consultar</button><br><br>
        <div id="datos-cliente">
            Saldo cuenta del cliente: <div id="saldo-cliente"></div><br><br>
            Banco destino de la transferencia: <input list="bancos" id="banco-destino" value="Banco BanQ">
            <button onclick="limpiarBancoDestino()">Limpiar</button><br>
            <datalist id="bancos"></datalist><br>
            Cuenta destino de la transferencia: <input type="text" id="cuenta-destino" title="9876543210" value="9876543210"><br><br>
            Valor de la transferencia: $ <input type="text" id="valor-transferencia" value="10000">
            <button onclick="costo()">Costo Transferencia</button><br><br>
            <div id="bloque-costo-transferencia">
                Costo de la transferencia: <div id="costo-transferencia"></div>
                <button onclick="transferir()">Transferir</button>
            </div>
        </div>
        <h3 id="error"></h3>
        <h3 id="exito"></h3>
    </fieldset>
    <script src="script.js"></script>
</body>
</html>

script.js


var clienteVerificado = false
var bancoVerificado = false
var bancosArray = ["Banco BanQ","Banco Super","Banco BanaMama","Banco Competencia"]
var saldoDisponible = 100000
var valorCosto = 0
var error = document.getElementById("error")
var exito = document.getElementById("exito")
var saldo = document.getElementById("saldo-cliente")
var costoTransferencia = document.getElementById("costo-transferencia")
var bancos = document.getElementById("bancos")
var bloqueCostoTransferencia = document.getElementById("bloque-costo-transferencia").style
bloqueCostoTransferencia.display = "none"

function consultar() {
    let cuenta = document.getElementById("cuenta-cliente").value
    let datos = document.getElementById("datos-cliente").style
    if (cuenta == 1234567890) {
        datos.display = "block"
        saldo.innerHTML = currencyFormat(saldoDisponible)
        error.innerHTML = ""
        clienteVerificado = true
        for (const banco of bancosArray) {
            let option = document.createElement("option")
            option.value = banco
            bancos.appendChild(option)
        }
    } else {
        datos.display = "none"
        error.innerHTML = "Numero de cuenta no existe!!! Mira la sugerencia del campo Nro. cuenta del cliente ;)"
        clienteVerificado = false
    }
}

function currencyFormat(num) {
    return 'USD $ ' + num.toFixed(0).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}

function limpiarBancoDestino() {
    document.getElementById("banco-destino").value = ""
    bloqueCostoTransferencia.display = "none"
}

function costo() {
    let bancoDestino = document.getElementById("banco-destino").value
    if (bancoDestino == bancosArray[0]) {
        valorCosto = 0
    } else {
        valorCosto = 100
    }
    costoTransferencia.innerHTML = valorCosto
    bloqueCostoTransferencia.display = "block"
}

function transferir() {
    let date = new Date()
    let hour = parseInt(date.getHours())
    let minutes = parseInt(date.getMinutes())
    let cuenta = document.getElementById("cuenta-destino").value
    let valor = document.getElementById("valor-transferencia").value
    let bancoDestino = document.getElementById("banco-destino").value
    for (const banc of bancosArray) {
        if (banc == bancoDestino && cuenta == 9876543210) {
            valor = parseInt(valor) + valorCosto
            bancoVerificado = true
            break
        } else {
            bancoVerificado = false
        }
    }
    error.innerHTML = ""
    exito.innerHTML = ""
    if (20 <= hour || hour < 9 || 12 <= hour && hour < 15) {
        error.innerHTML = "Importante!!! Recuerde que solo se pueden hacer transferencias en horario de 9 a 12 y de 15 a 20. Hora Actual: " + hour + ":" + minutes
    } else if (clienteVerificado && bancoVerificado && valor <= saldoDisponible) {
        exito.innerHTML = "Transferencia realizada exitosamente!!!"
        saldoDisponible -= valor
        saldo.innerHTML = currencyFormat(saldoDisponible)
    } else {
        error.innerHTML = "Los datos son invalidos!!! <ul><li> Revisa el banco y cuenta destino de la transferencia </li><li> Selecciona uno de los bancos que te sugiere el sistema </li><li> Mira la sugerencia del campo Cuenta destino de la transferencia ;) </li><li> Verifica que el saldo de tu cuenta es suficiente para hacer la transferencia </li></ul>"
    }
}

Y esta es la salida:

Dejo también el link del proyecto en GitHub para el que lo quiera consultar: https://github.com/shiroukamui/ProgramacionBasicaPlatzi/tree/master/transferencia

HTML (Primera parte del reto)

JAVASCRIPT (primera parte del reto)


JAVASCRIPT (Segunda parte del reto)

NOTA: revise algunos codigos de mis compañeros para entender del todo este tema y tome algunas partes para mejorar el mio, en esta clase aprendi mucho estuve todo el dia haciendo los retos 😃

Gracias a las compuertas lógicas y tablas de verdad es posible crear circuitos integrados, hasta poder simplificar la cantidad de compuertas y poder diseñar un circuito mas pequeños que cumpla la misma función que el original todo gracias al álgebra de Boole.

tu explicación fue muy buena gracias, logre entender bien las tablas de verdad y como funcionan cuando se combinan.

Último proyecto del curso 😄

var bancoCliente = "scotiabank";
var cuentaCliente = true;
var saldoCliente = 1200000;
var bancoDestino = "agricola";
var cuentaDestino = true;
var horaTransferida = 16;

var transferir = 1000000;

var coneccion = document.getElementById("texto");

if(cuentaCliente && cuentaDestino)
{
if(saldoCliente > transferir)
{
  if(horaTransferida >= 9 && horaTransferida <= 12 || horaTransferida >= 15 && horaTransferida <= 20)
  {
    if(bancoCliente == bancoDestino)
    {
    coneccion.innerHTML = "Transacción exitosa: $" + transferir;
    }
    else
    {
    transferir = transferir + 100;
    coneccion.innerHTML = "Transacción exitosa: $" + transferir;
    }
    }
    else
    {
    coneccion.innerHTML = "La transacción no fue posible; revisa las horas de servicio del banco.";
    }
  }
  else
  {
  coneccion.innerHTML = "La transacción no fue posible; no posees el monto solicitado.";
  }
  }
  else
  {
  coneccion.innerHTML = "La transacción no fue posible; revisa si las cuentas bancarias están verificas.";
  }

Tengo una duda

Con el siguiente código, que aparece en la consola; El resultado es 6 pero no entiendo por que alguien me podría explica.

No me quiero quedar con la duda
Gracias

var billetes = [ [ 1 , 2 , 3 ] ,
              [ 4 , 5 , 6 ] ,
              [ 7 , 8 , 9 ] ];
console.log(billetes[1][2])```

Este el el codigo JS:

var banCLI, banDES, cuenCLI, cuenDES, saldo, costoTra, montoT;
var hora, cliVer, desVer;
var traf =document.getElementById("resultadoTex");//Donde se colocaran los textos de resultado



 var c=document.getElementById("efectuar");//boton que efectuara las acciones y lla mara a la funcion principal
 c.addEventListener("click", procesarTransaccion);

 function procesarTransaccion()
 {
   banCLI =document.getElementById("TextBanCli");//almacena el banco del cliente
   banCLI = banCLI.value;
   banDES =document.getElementById("TextBanDes");//almacena el banco de destino
   banDES = banDES.value;
   cuenCLI =document.getElementById("TextCuenCli");//almacena la cuenta del cliente
   cuenCLI = parseInt(cuenCLI.value);
   cuenDES =document.getElementById("TextCuenDes");//almacena la cuenta de destino
   cuenDES = parseInt(cuenDES.value);
   saldo =document.getElementById("TextSaldo");// almacena el saldo de la cuenta
   saldo = parseInt(saldo.value);
   montoT =document.getElementById("TextMontoT");//almacena el monto que se desea transferir
   montoT = parseInt(montoT.value);
   hora =document.getElementById("TextHora");//almacena la hora de la transaccion
   hora = hora.value;

   traf.innerHTML= "Resumen:<br>"
   cliVer = verificacionCuenta("Cliente",banCLI,cuenCLI);// se verifica la cuenta y banco del cliente
   desVer = verificacionCuenta("Destino",banDES,cuenDES);// se verifica la cuenta y banco de destino

   if (cliVer)
    {
        if (desVer)
         {
             if (banDES==banCLI)
              {
               costoTra = 0;
               traf.innerHTML=traf.innerHTML + "Costo de transaccion es 0 dolares <br>";
              }
            else
               {
               costoTra = 100;
               traf.innerHTML=traf.innerHTML + "Costo de transaccion es 100 dolares <br>";
                }

              if (saldo >= (montoT + costoTra))
                {
                      if (((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))
                      {
                        traf.innerHTML=traf.innerHTML + "TRANSFERENCIA DE "+ montoT + " Dolares, REALIZADA EXITOSAMENTE <br>";
                      }
                      else
                      {
                        traf.innerHTML=traf.innerHTML + "Fuera del horario de Atencion Solo se pueden hacer transferencias de 09:00 a 12:00 o 15:00 a 20:00 <br>" + " NO SE PUEDE HACER LA TRANSACCION <br>";
                      }
                }
              else
                {
                  if (isNaN(montoT)||isNaN(saldo))
                  {
                    traf.innerHTML=traf.innerHTML + "No hay datos de monto o saldo introducidos <br> "
                  } else
                  {
                      traf.innerHTML=traf.innerHTML + "Saldo Insuficiente, requiere "+(montoT + costoTra)+" Dolares <br>" + " NO SE PUEDE HACER LA TRANSACCION <br>";
                  }

                }
         }
         else
         {
           traf.innerHTML=traf.innerHTML + "Destino no Valido " + "NO SE PUEDE HACER LA TRANSACCION <br>";
         }
     }
   else
    {
     traf.innerHTML=traf.innerHTML + "Cliente no Valido " + "NO SE PUEDE HACER LA TRANSACCION <br>";
    }
 traf.innerHTML=traf.innerHTML + "<p>GRACIAS POR SU VISITA</p> "
   console.log("operado");
 }
 function verificacionCuenta(x,y,z)//funcion que realiza la verificacion de la CUENTA
 {
   if ((y!="")&&(z>0))
    {
      traf.innerHTML=traf.innerHTML + "Cuenta de "+x+" Valida <br>";
     return true;

   } else {
     traf.innerHTML=traf.innerHTML + "Cuenta de "+x+" No es valida <br>";
          return false;
   }
 }```

Aquí esta el código para un solo IF:

var banCLI, banDES, cuenCLI, cuenDES, saldo, costoTra, montoT;
var hora, cliVer, desVer;
var traf =document.getElementById("resultadoTex");//Donde se colocaran los textos de resultado


 var c=document.getElementById("efectuar");//boton que efectuara las acciones y lla mara a la funcion principal
 c.addEventListener("click", procesarTransaccion);

 function procesarTransaccion()
 {
   banCLI =document.getElementById("TextBanCli");//almacena el banco del cliente
   banCLI = banCLI.value;
   banDES =document.getElementById("TextBanDes");//almacena el banco de destino
   banDES = banDES.value;
   cuenCLI =document.getElementById("TextCuenCli");//almacena la cuenta del cliente
   cuenCLI = parseInt(cuenCLI.value);
   cuenDES =document.getElementById("TextCuenDes");//almacena la cuenta de destino
   cuenDES = parseInt(cuenDES.value);
   saldo =document.getElementById("TextSaldo");// almacena el saldo de la cuenta
   saldo = parseInt(saldo.value);
   montoT =document.getElementById("TextMontoT");//almacena el monto que se desea transferir
   montoT = parseInt(montoT.value);
   hora =document.getElementById("TextHora");//almacena la hora de la transaccion
   hora = hora.value;

   traf.innerHTML= "Resumen:<br>"

   if (((banCLI!="")&&(cuenCLI>0)&&(banDES!="")&&(cuenDES>0)&&(((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))&&(banDES==banCLI)&&(saldo >= montoT))||((banCLI!="")&&(cuenCLI>0)&&(banDES!="")&&(cuenDES>0)&&(((hora > "09:00")&&(hora < "12:00"))||((hora > "15:00")&&(hora < "20:00")))&&(banDES!=banCLI)&&(saldo >= (montoT + 100))))
    {
        traf.innerHTML=traf.innerHTML + "LA TRANSFERENCIA DE "+ montoT + " Dolares, REALIZADA EXITOSAMENTE <br>";
     }
   else
    {
     traf.innerHTML=traf.innerHTML + "NO SE PUEDE HACER LA TRANSACCION <br>";
    }
 traf.innerHTML=traf.innerHTML + "<p>GRACIAS POR SU VISITA</p> "
   console.log("operado");
 }```

Elaboración de Diagrama de Flujo:
![](

tengo esta condicional y funciona bien pero, cuando le agrego un if else sobre todo para establecer la hora me da error.

if (bancoCliente != bancoDestino)
{
  if(valorTRansferenciaTotal < saldo)
  {
    var valorTRansferenciaTotal = Math.floor(valorTRansferencia * 1.15);
    costoT = valorTRansferenciaTotal - valorTRansferencia;
    console.log(costoT);
    nuevoSaldo = saldo - valorTRansferenciaTotal;
    document.getElementById("exitosa").innerHTML = "transferencia exitosa, te costo: " + costoT + ", le enviaste " + valorTRansferenciaTotal + " a la cuenta " + cuentaDestino + ", tu nuevo saldo es: " + nuevoSaldo ;
  }
   else
  {
     document.getElementById("exitosa").innerHTML = "ERROR!! saldo insuficiente, tu saldo siguen siendo: " + saldo;
   }

}
 else
  {
     costoT = 0;
     nuevoSaldo = saldo - valorTRansferencia;
     document.getElementById("exitosa").innerHTML = "transferencia exitosa, te costo: " + costoT + ", le enviaste " + valorTRansferencia + " a la cuenta " + cuentaDestino + ", tu nuevo saldo es: " + nuevoSaldo ;

  }```

Aquí les dejo mi versión…

var banco_cliente = true;
var cuenta_ cliente = true;
var saldo_cliente = 1500000;
var banco_destino = true;
var cuenta_destino = true;
var hora_de_trasnferencia = 15;
var monto_a_transferir = 1000000;
var costo_de_envio = 100000;

//trasnferir 1 millón de dolares

if (cliente && banco_destino && saldo_cliente > (monto_a_transferir + costo_de_envio))
{
  alert("Se puede enviar el dinero");
}

if (banco_cliente == banco_destino)
{
  costo_de_envio = 0;
}
else
{
  costo_de_envio;
}

if((hora_de_trasnferencia > 9 && > 12) || (hora_de_trasnferencia > 15 && >20))
{
  alert("Se puede enviar el dinero");
}```

Y esta es mi versión de un if 😄

var banco_cliente = "BanLeo";
var cuenta_cliente = true;
var transferencia = 1000000;
var costo_transaccion = 100;
var saldo_cliente = 1000500;
var banco_destino = "PlatziBank";
var cuenta_destino = true;
var hora = 16;

if ((cuenta_cliente && cuenta_destino) && (9 <= hora && hora <= 12 || 15 <= hora && hora <= 20) && (saldo_cliente > (transferencia + costo_transaccion * (banco_cliente != banco_destino))))
{
  console.log("Tu transaccion ha sido exitosa y se ha cobrado una comision de " + costo_transaccion * (banco_cliente != banco_destino));
}
else
{
  console.log("Tu transaccion no cumple una de las condiciones");
}

Ya le agregue la funcion para determinar si el cliente es o no es cliente aprobado del banco:

var clienteAprobado =[a = true, b = false];
var clienteCheck = clienteAprobado[Math.floor( Math.random() * clienteAprobado.length ) ];``

Agrege la opcion de poner una hora o la hora real y así probar el codigo, esta un poco largo ya que intente poner en practiva varias cosas vistas en el curso.
Espero sea de ayuda para los demás.

HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="stylesheet" href="style.css" />
        <title>Transferencia</title>
    </head>
    <body>
        <h1>Transferencia</h1>
        <form class='Cliente'>
            <h3>Datos Cliente</h3>
            <p>
                Valor a transferir: 
                <input type="number" placeholder="Valor a transferir" value=0 id="vTrans">
            </p>
            <select name="" id="bCliente"><!--Desplegable-->
                <option value="">Seleccione banco del Cliente</option>
                <option value="BBVA">BBVA</option>
                <option value="Bancolombia">Bancolombia</option>
                <option value="Davivienda">Davivienda</option>
                <option value="Colpatria">Colpatria</option>
            </select>
            </br>
            <input type="checkbox" id="checkCli">Confirmar cuenta
            <p id='sCliente'></p>
        </form>
        <form class='Destino'>
            <h3>Datos Destino</h3>
            <select name="" id="bDestino"><!--Desplegable-->
                <option value="">Seleccione banco de Destino</option>
                <option value="BBVA">BBVA</option>
                <option value="Bancolombia">Bancolombia</option>
                <option value="Davivienda">Davivienda</option>
                <option value="Colpatria">Colpatria</option>
            </select>
            </br>
            <input type="checkbox" id="checkDest">Confirmar cuenta
            </br>
            </br>
            <input type="button" value="Realizar Transacción" id="Transacción">
            <p id='mFinal'></p>
        </form>
        <span>
            <h4> Hora </h4>
            <form action="Hora">
                <input type="button" value="Actualizar" id="Actualizar">
                </br>
                <input type="number" placeholder="Hora" id="hFalsa">
                <input type="number" placeholder="Minutos" id="mFalsa">
                <input type="checkbox" id="checkHora">Hora falsa
            </form>
            <p id='hora'></p>
        </span>
        <script src="Clase.js"></script>
        <script src="Datos.js"></script>
        <script src="transferencia.js"></script>
    </body>
</html>

JavaScript Clase

class Usuario
{
    constructor(b,c,m,s)//IDBanco,IDcheck,IDMensaje,Saldo
    {
        this.IDbanco = document.getElementById(b);
        this.IDconfirmacion = document.getElementById(c);
        this.IDmensaje = document.getElementById(m);
        this.confir = this.IDconfirmacion.checked;
        this.saldo = s;
        this.banco;
    }
    imprimir()
    {
        this.confir = this.IDconfirmacion.checked;
        //console.log(this.confir);
    }
}

JavaScript de captura de datos

/*
Cliente:    IDBanco IdConfirmación IDSaldo    bancoCli confir
Destino:    IDBanco IDConfirmación IDMensaje  bancoDes confir

Hora:   HReal       HouF    MinF   Confirmación
        horaActual                 HFalsa 
*/

var Users = []; //0:Cliente, 1:Destino

    Users.push(new Usuario('bCliente','checkCli','sCliente',1500000));
    Users.push(new Usuario('bDestino','checkDest','mFinal',0));

//------------------Bancos------------------

//Recolecta dato seleccionado del banco
Users[0].IDbanco.addEventListener('change',ban0);
Users[1].IDbanco.addEventListener('change',ban1);

function ban0()
{
    Users[0].banco = Users[0].IDbanco.value;
}
function ban1()
{
    Users[1].banco = Users[1].IDbanco.value;
}

//-------------Confirmacion----------------   

//Confirma la seleccion del checkbox
Users[0].IDconfirmacion.addEventListener('click',con0);
Users[1].IDconfirmacion.addEventListener('click',con1);

function con0()
{
    Users[0].imprimir();
}
function con1()
{
    Users[1].imprimir();
}

///////////////BOTON DE TRANSACCIÓN/////////////

var button = document.getElementById('Transacción');

///////////////Valor a transferir/////////////////

var Cant = document.getElementById('vTrans');

////////////////////HORA///////////////////////

var HORA = {

    IDHora : document.getElementById('hora'),
    IDCheck : document.getElementById('checkHora'),
    IDHfalse : document.getElementById('hFalsa'),
    IDMfalse : document.getElementById('mFalsa'),
    IDActualizar : document.getElementById('Actualizar'),
    RealDate : new Date(),
    check : false
};

//-------------Imprime hora a usar----------------
var horas = HORA['RealDate'].getHours();
var minutos = HORA['RealDate'].getMinutes();

HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora real';

//-----------Actualizar Hora-----------------

HORA['IDActualizar'].addEventListener('click',Actualizar); //Boton de actualizar hora
HORA['IDCheck'].addEventListener('click',Actualizar); //Check de hora falsa

function Actualizar()
{
    HORA['check'] = HORA['IDCheck'].checked; //identifica estado del check
    if(HORA['check']) //Introduccion de hora manual(falsa)
    {
        horas = HORA['IDHfalse'].value;
        minutos = HORA['IDMfalse'].value;
        horacorrecta();
    }
    else // En caso de querer la hora real
    {
        HORA['RealDate'] = new Date();
        horas = HORA['RealDate'].getHours();
        minutos = HORA['RealDate'].getMinutes();
        if (minutos>=0 && minutos<10)
        {
            HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':0'+minutos+' Hora real';
        }
        HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora real';
    }
}

// Verifica si la hora falsa es correcta 
function horacorrecta()
{
    //Minutos
    if (minutos == "")
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
    else if (minutos>=0)
    {
        if (minutos<60)
        {
            CorHora();
        }
        else
        {
            HORA['IDHora'].innerHTML ="Corrige los minutos";    
        }
    }
    else
    {
        HORA['IDHora'].innerHTML ="Corrige los minutos";
    }
}
function CorHora()
{
    //Horas
    if (horas == "")
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
    else if (horas>=0)
    {
        if (horas<=24)
        {
            if (minutos<10)
            {
                HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':0'+minutos+' Hora falsa';
            }
            else 
            {
                HORA['IDHora'].innerHTML = 'Hora de transacción: '+horas+':'+minutos+' Hora falsa';
            }
        }
        else
        {
            HORA['IDHora'].innerHTML ="Corrige la hora";    
        }
    }
    else
    {
        HORA['IDHora'].innerHTML ="Corrige la hora";
    }
}

JavaScript del proceso


/*
Variables a usar:

Users[0].banco // Banco usuario
Users[1].banco // Banco destino
Users[0].saldo // Saldo usuario
Users[1].saldo // Saldo destino
Users[0].confir // Confirmación usuario
Users[1].confir // Confirmación destino
Users[0].IDmensaje // Mensaje de saldo
Users[1].IDmensaje // Mensaje de confirmaciòn
horas // hora de transacción
minutos // minutos de transacción
*/
var proceso,comision;
var valTransaccion;


button.addEventListener('click',horaTrabajo);
function horaTrabajo()
{
    proceso = true;
    comision = 0;
    Users[0].IDmensaje.innerHTML = "Saldo disponible: $"+ Users[0].saldo;
    Users[1].IDmensaje.innerHTML = "Saldo destino: $"+Users[1].saldo+"</br>";
    valTransaccion = parseInt(Cant.value);
    //Confirmación de hora de trabajo
    if (horas<9 || horas>20 || (horas==20 && minutos != 0) || (horas==12 && minutos != 0))
    {
        Users[1].IDmensaje.innerHTML += "</br>-Hora incorrecta";        
        proceso = false;
    }
    //Confirmación de cuentas
    if (Users[0].confir==false || Users[1].confir==false)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Usuarios sin confirmar";
        proceso = false;
    }
    //Selección de bancos y Comisiones
    if (Users[0].banco == undefined || Users[1].banco == undefined) 
    {   
        Users[1].IDmensaje.innerHTML += "</br>-Bancos sin definir";
        proceso = false;
    }
    else if (Users[0].banco != Users[1].banco)
    {
        comision = 100;
    }
    //Monto mayor a transalado
    if (valTransaccion > Users[0].saldo)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Saldo insuficiente para transacción";
        proceso = false;
    }
    //
    if (valTransaccion == 0 || valTransaccion < 0)
    {
        Users[1].IDmensaje.innerHTML += "</br>-Valor de transferencia no definido o incorrecto";
        proceso = false;
    }   
    //
    if (proceso)
    {
        Users[0].saldo -= (valTransaccion + comision); 
        Users[1].saldo += valTransaccion; 
        Users[0].IDmensaje.innerHTML = "Valor debitado: $"+(valTransaccion+comision)+"</br>Saldo disponible: $"+ Users[0].saldo;
        Users[1].IDmensaje.innerHTML = "Valor de transacción: $"+valTransaccion+"</br>Valor de comisión: $"+comision+"</br>Saldo destino: $"+Users[1].saldo;        
    }
    else
    {
        Users[1].IDmensaje.innerHTML += "</br>No fue posible realizar la transacción";        
    }
}

Users[0].IDmensaje.innerHTML = "Saldo disponible: $"+ Users[0].saldo;
Users[1].IDmensaje.innerHTML = "Saldo destino: $"+Users[1].saldo;

Los invito a probarlo, hecho para trabajar en la consola del explorador , pueden cambiar los valores entre “true” o “false” para observar los diferentes mensajes en caso de fallar algunas de las condiciones

var bancoCliente = true, cuentaCliente = true, saldoCliente = 1000000;
var bancoDestino = true, cuentaDestino = true;
var horaDeTransferencia = 15;
var costoDeTransaccion;


function transferir(){
    if(horaDeTransferencia >=9 && horaDeTransferencia <=12 ^ horaDeTransferencia >=15 && horaDeTransferencia <=20){
        if(cuentaCliente){
            if(cuentaDestino){
                if(bancoCliente == bancoDestino){
                    costoDeTransaccion = 0;
                }
                else{
                    costoDeTransaccion = 100;
                }
                if(saldoCliente>= montoATransferir){
                    saldoCliente = saldoCliente-(montoATransferir+costoDeTransaccion);
                }else{
                    console.log("saldo insuficiente");
                }
            }
			else{
					console.log("cuenta destino no verficada");
            }
        }
		else{
				console.log("cuenta cliente no verificada");
        }
    }
	else{
			console.log("Horario de transaccion fuera del permitido \n sistema habilidado de 09:00 a 12:00 y de 15:00 a 20:00");
    }
    console.log("saldo de cuenta cliente = " + saldoCliente);
}

Ya vi que si se puede en una sola linea jaja, aun asi lo prefiero al menos en 2, porque se ve muy raro asi todo junto.

var boton= document.getElementById("boton");
var texto= document.getElementById("cantidad");
boton.addEventListener("click", transferir)

var bancoCliente= "Santander"
var cuentaCliente= true;
var saldoCliente= 2500000;
var bancoDestino= "Santander";
var cuentaDestino= true;

var horaTransferencia= 15;
var transferirDinero;
var saldo_actual= document.getElementById("Saldo");
saldo_actual.innerHTML= "<strong>Su saldo actual es: " + saldoCliente + "</strong>";

function transferir()
{
    transferirDinero= parseInt(texto.value);
    if( (cuentaCliente && cuentaDestino) && saldoCliente >= ( (bancoCliente != bancoDestino && transferirDinero + 100) ^ (bancoCliente == bancoDestino && transferirDinero) ) && (horaTransferencia >= 9 && horaTransferencia <= 12 || horaTransferencia >= 15 && horaTransferencia <= 20) )
    {
        alert("Transferencia exitosa");
    }
}```

Mi aporte

var bankClientAcount = "BanColombia";
var clientAcount = "0104-2568-4897-5487";
var valueClientAcount = 1500000;

/******* DESTINO *******/
var hostBank = "BanColombia";
var hostAcount = "0104-4879-8564-6562";

/******* TRANSFER ******/
var valueTranfer = 1000000;
var timeTranfer = 11;
var taxTransfer = 100;

/******* CHEKING *******/
var checkClient = true;
var checkHost = true;

if (bankClientAcount != hostBank)
{
  valueTranfer += taxTransfer;
}
if ( ((timeTranfer>=9 && timeTranfer<=12) ^ (timeTranfer>=15 && timeTranfer<=20)) && checkClient && checkHost && (valueClientAcount>=valueTranfer) )
{
  tranferFunction();
}
else
{
  console.log("TRANSFERENCIA NO PERMITIDA");
}
function tranferFunction ()
{
  console.log("TRANSFERENCIA PROCESADA");
}

No esta todo en un “If” por la razón de quienes quieran un código mas interactivo, con diferentes resultados, en un “Else” y a vista propia se ve mas organizado y limpio.

//Datos del Cliente
var cliente = {
  Banco: "BancoColombia",
  Saldo: 2500000,
  Cuenta: "1234.5678.9101.1121"
}

//Datos del Banco
var banco = {
  Destino: "BancoColombia"
}

//cuentas de usuarios registrados en el Banco
var cuentas = []
cuentas.push("1234.5678.9101.1121");

//variables declaradas
var resultado;
var saldoFinal;
var montoTransferir = 1000000;
var costoTransferencia = 0;

//Hora
var h = new Date();
var hm = h.getHours();

//Operacion para la disponibilidad de una transaccion
var saldoTotal = cliente.Saldo + costoTransferencia - montoTransferir;

//Procedimientos para llevar a cabo la transaccion
if(cliente.Cuenta == cuentas)
{
  if(saldoTotal > montoTransferir)
  {
    if((cliente.Banco == banco.Destino) && (hm >= 9 && hm <= 12 || hm >= 15 && hm <= 20))
    {
      costoTransferencia = 0;
      resultado = montoTransferir + costoTransferencia;
      saldoFinal = cliente.Saldo - resultado;
      console.log("Transaccion Exitosa por: " + resultado);
      console.log("Ahora tu saldo es de: " + saldoFinal);
    }
    else if((cliente.Banco != banco.Destino) && (hm >= 9 && hm <= 12 || hm >= 15 && hm <= 20))
    {
      costoTransferencia = 100;
      resultado = montoTransferir + costoTransferencia;
      saldoFinal = cliente.Saldo - resultado;
      console.log("Transaccion Exitosa por: " + resultado);
      console.log("Ahora tu saldo es de: " + saldoFinal);
    }
    else {
      console.log("Sistema en Fuera de Servicio");
    }
  }
  else {
    console.log("Saldo Insuficiente");
  }
}
else {
  console.log("Cuenta No Registrada");
}

¡Hola! A continuación les dejo mis códigos.

El primer con condiciones anidadas:

var hora = 10;
var banco_cliente = "Banco de Venezuela";
var cuenta_cliente = 0;
var cuenta_cliente_verificada = false;
var cantidad_transferir = 1000000;

var banco_destino = "Banco de Venezuela";
var cuenta_destino = 0;
var cuenta_destino_verificada = true;

var comision = 100;

if (hora > 9 && hora < 12 || hora > 15 && hora < 20) {
  if (cuenta_cliente_verificada && cuenta_destino_verificada) {
    if (banco_cliente == banco_destino) {
      if (cuenta_cliente >= cantidad_transferir) {
        console.log("Transferencia de " + cantidad_transferir + " se ha realizado exitosamente.");
      } else {
        console.log("No hay suficiente dinero para realizar la transferencia.");
      }
    } else {
      if (cuenta_cliente >= cantidad_transferir + comision) {
        console.log("Se ha transferido la cantidad de " + cantidad_transferir + " exitosamente y se ha cobrado una comisión de " + comision + ".");
      }
    }
  } else {
    console.log("Ambas cuentas deben estar verificadas para hacer la transacción.");
  }
} else {
  console.log("Solo puedes hacer transacciones de 9 a 12 horas y de 15 a 20 horas.")
}

El segundo donde en una sola condición se chequean todos los requerimientos:

var hora = 10;
var banco_cliente = "Banco de Venezuela";
var cuenta_cliente = 10000000;
var cuenta_cliente_verificada = true;
var cantidad_transferir = 1000000;

var banco_destino = "Banco de Venezuela";
var cuenta_destino = 0;
var cuenta_destino_verificada = true;

var comision = 100;

if ((hora > 9 && hora < 12 || hora > 15 && hora < 20) && (cuenta_cliente_verificada && cuenta_destino_verificada) && (banco_cliente == banco_destino || banco_cliente != banco_destino) && (cuenta_cliente >= cantidad_transferir + comision)) {
  console.log("Transferencia de " + cantidad_transferir + " se ha realizado exitosamente.");
} else {
  console.log("Por alguna razón no se ha podido realizar la transferencia.");
}

¡Excelente forma de explicar este tema! Suele ser bastante confuso.

var resultado = document.getElementById("respuesta");

var bancoOrigen = "BNC";
var clienteOrigen = true;
var saldoCliente = 999999;
var montoTranf = 1000000;
var bancoDestino = "BNC";
var clienteDestino = true;
var horario = 19 + 60/60;
var cargo = 100;

var saldoBoolean = saldoCliente >= montoTranf + (bancoOrigen != bancoDestino)*cargo;
var horarioBoolean = (horario >= 9 && horario < 12) || (horario >= 15 && horario < 20);

if (saldoBoolean && clienteOrigen && clienteDestino && horarioBoolean) {
  resultado.innerHTML = "Transaccion Exitosa";
} else {
  var result = "";
  if (!saldoBoolean) { result += "No posee saldo suficiente <br />" };
  if (!clienteOrigen) { result += "Cliente origen no valido <br />"};
  if (!clienteDestino) { result += "Cliente Destino no valido <br />"};
  if (!horarioBoolean) { result += "Horario no permito <br />"};
  resultado.innerHTML = result;
};```

var respuesta = document.getElementById(“respuesta”);

var transaccion = document.getElementById(“extraer”);
transaccion.addEventListener(“click”, transferencia);

var cuentaCliente = 1000000;
var banco = “bancolombia”;
var cuentaDestino = 1;

var tiempo = new Date();
var hora = tiempo.getHours();

function transferencia ()
{
comparacion();
var r = document.getElementById(“dinero”);
var retiro = parseInt(r.value);
if ((hora >= 8 && hora <= 12) || (hora >= 14 && hora <= 18))
{
if (cuentaCliente && cuentaDestino)
{
if (cuentaCliente >= cuentaCliente)
{
cuentaDestino = retiro;
cuentaCliente = cuentaCliente - retiro;
console.log(cuentaCliente);
console.log(cuentaDestino);
}
respuesta.innerHTML += “<hr /> Transferencia exitosa <br>”;
respuesta.innerHTML += "Su saldo actual es de: " + cuentaCliente + “<br>”;
}
}
else
{
respuesta.innerHTML += “El horario de transferencias es de 8 a 12 y de 15 a 20”;
}
}

function comparacion()
{
var n = document.getElementById(“banco”);
var nombreBanco = n.value;
if (banco != nombreBanco)
{
var valorTransaccion = 7000;
cuentaCliente = cuentaCliente - valorTransaccion;
}
}

function mueveReloj()
{
momentoActual = new Date();
hora = momentoActual.getHours();
minuto = momentoActual.getMinutes();
segundo = momentoActual.getSeconds();

horaImprimible = hora + " : " + minuto + " : " + segundo;

document.form_reloj.reloj.value = horaImprimible;
setTimeout("mueveReloj()",1000);

}

var cuentas =
{
cta1 : true,
cta2 : true,
cta3 : false
}

function transferir(dinero, bancoCliente, ctaCliente, saldoCliente, bancoDestino, ctaDestino, hrTransferencia)
{
if (cuentas[ctaCliente] == true && cuentas[ctaDestino] == true)
{
var costoTransaccion = 0
if (bancoCliente !== bancoDestino)
{
costoTransaccion = 100
}
if ((saldoCliente + costoTransaccion) => dinero)
{
if (hrTransferencia >= 9 && hrTransferencia <= 12)
{
return true;
}
else if (hrTransferencia >= 15 && hrTransferencia <= 20)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}

transferir(100, “Santander”, “cta1”, 5000, “Banamex”, “cta2”, 10);


en una sola línea(en esto me ayudó mi novio :3):

var transferir = (dinero, bClt, ctaClt, saldoCliente, bDes, ctaDes, hr, ctas = { cta1 : true, cta2 : true }) => (ctas[ctaClt] && ctas[ctaDes]) && ((saldoCliente + (bClt !== bDes ? 100 : 0 )) => dinero) && (hr >= 9 && hr <= 12) || (hr >= 15 && hr <= 20)

transferir(100, “Santander”, “cta1”, 5000, “Banamex”, “cta2”, 10);
transferir(1000, “Santander”, “cta1”, 5000, “Santander”, “cta2”, 10);
transferir(1000000, “Santander”, “cta1”, 5000, “Santander”, “cta2”, 10);

var cliente_verificado = true;
var saldo_cliente =2000000;
var banco_cliente ="popular";
var banco_destino ="bhd";
var hora_actual = 9;
var costo_banco_diferente =100;
var monto_a_transferir =1000000;
var monto_total=0;


if (cliente_verificado)
{
   if (hora_actual >=9 && hora_actual<=12 || hora_actual >=15 && hora_actual <=20)
   {
              if(banco_cliente== banco_destino)
              {
                  if(saldo_cliente >= monto_a_transferir)
                  {
                    monto_total =monto_a_transferir;
                    alert("Felicidades, su transferencia fue realizada con exito.");
                    console.log(monto_total,banco_destino);
                  }
                  else
                  {
                     alert("usted no cuenta con suficiente saldo para transferir");
                  }
              }
              else
              {
                if(saldo_cliente >= monto_a_transferir + costo_banco_diferente)
                {
                  monto_total =monto_a_transferir + costo_banco_diferente;
                  alert("Felicidades, su transferencia fue realizada con exito.");
                  console.log(monto_total,banco_destino);
                }
                else
                {
                   alert("usted no cuenta con suficiente saldo para transferir");
                }
              }
   }
   else
   {
     alert("No se puede hacer transferencias en este horario, intentelo mas tarde.");
   }
}
else
{
 alert("el cliente no pudo ser verificado");
}

JS

var nom_cliente_destino = document.getElementById("nombre_cliente_destino");
var numero_ident_destino = document.getElementById("numero_identificacion_destino");
var cuenta_destino = document.getElementById("cuenta_cliente_destino");
var banco_destino = document.getElementById("banco_cliente_destino");
var monto_transferencia = document.getElementById("monto_trans_destino");
var concepto_trans = document.getElementById("concepto_trans_html");

var boton = document.getElementById("boton_html");
boton.addEventListener("click", transferencia);
var boton_ocultar = document.getElementById("ocultar_datos");
boton_ocultar.addEventListener("click", ocultar_datos);
var boton_mostrar = document.getElementById("mostrar_datos");
boton_mostrar.addEventListener("click", mostrar_datos);


class Cliente{
	constructor(nombre, cedula, n_cuenta, saldo){
		this.nombre = nombre;
		this.cedula = cedula;
		this.n_cuenta = n_cuenta;
		this.saldo = saldo;
	}
	mostrar(){
		console.log("Datos del cliente:")
		console.log("Nombre: " + this.nombre);
		console.log("Cedula: " + this.cedula);
		console.log("Cuenta: " + this.n_cuenta);
		console.log("Saldo inicial de la cuenta: " + this.saldo);
	}
}

var clientes = [];
clientes.push( new Cliente ("Emily Martinez", 123456789, "01340142050123456789", 1000) );

for (var clienteactual of clientes) {
	clienteactual.mostrar();
}

//Datos del Banco
var nom_banco = "Bank";

//Datos del cliente
var nom_cliente = "Emily Martinez";
var cliente = true;

//Datos de la cuenta
var cuenta_cliente = "01340142050123456789";
var saldo_inicial = 100000;
var saldo_actual = saldo_inicial;

//Datos de la transferencia
var comision = 100;
var hora = 10;
var destino = true;

nombre_del_cliente.innerHTML = nom_cliente;
saldo_cuenta_cliente.innerHTML = saldo_inicial + " USD";
	

function transferencia(){
	/*document.body.style.fontSize="20px";*/		
	if (cliente && (hora > 9 && hora < 12 || hora > 14 && hora < 21) && destino) {	
		monto_transferencia = parseInt(monto_transferencia.value);
		if (banco_destino.value == nom_banco) {
			if (saldo_actual >= monto_transferencia) {
				document.getElementById("div_datos_trans").style.display="inline";
				saldo_actual = saldo_actual - monto_transferencia;
				n_cliente_destino.innerHTML = nom_cliente_destino.value;
				n_ident_destino.innerHTML = numero_ident_destino.value;
				c_cliente_destino.innerHTML = cuenta_destino.value;
				b_cliente_destino.innerHTML = banco_destino.value;					
				m_trans_destino.innerHTML = monto_transferencia;
				c_trans_destino.innerHTML = concepto_trans.value;
					console.log("Tranferencia sin comision");
					console.log("Cliente destino: " + nom_cliente_destino.value);
					console.log("Cuenta destino: " + cuenta_destino.value);
					console.log("Banco destino: " + banco_destino.value);
					console.log("Monto de la transferencia es: " + monto_transferencia);
					console.log("Saldo actual es: " + saldo_actual);
			}
			else{
				console.log("Saldo Insuficiente");
				saldo_html.innerHTML = "Saldo Insuficiente";
			}			
		}
		else{
			monto_transferencia = monto_transferencia + comision;
			if (saldo_actual >= monto_transferencia) {				
				document.getElementById("div_datos_trans").style.display="inline";
				saldo_actual = saldo_actual - monto_transferencia;			
				n_cliente_destino.innerHTML = nom_cliente_destino.value;
				n_ident_destino.innerHTML = numero_ident_destino.value;
				c_cliente_destino.innerHTML = cuenta_destino.value;
				b_cliente_destino.innerHTML = banco_destino.value;					
				m_trans_destino.innerHTML = monto_transferencia;
				c_trans_destino.innerHTML = concepto_trans.value;
					console.log("Transferencia con comision");
					console.log("Cliente destino: " + nom_cliente_destino.value);
					console.log("Cuenta destino: " + cuenta_destino.value);
					console.log("Banco destino: " + banco_destino.value);
					console.log("Monto de la transferencia es: " + monto_transferencia);
					console.log("Monto actual es: " + saldo_actual);
			}
			else{
				console.log("Saldo Insuficiente");
				saldo_html.innerHTML = "Saldo Insuficiente"; 
			}			
		}	
	}
	else{
		if (!cliente) {
			cliente_verificado_hmtl.innerHTML = "Cliente no verificado";
		}
		if (hora < 9 || hora > 12 && hora < 15 || hora > 20) {
			horario_html.innerHTML = "No se puede hacer transferencias en este momento. <br> El Horario de transferencia es de: 9am - 12m / 15h - 20h";
		}
		if (!destino) {
			destino_verificado_html.innerHTML = "Destino no verificado";
		}
	}
}

function ocultar_datos(){
	document.getElementById("div_datos_trans").style.display="none";
	document.getElementById("mostrar_datos").style.display="inline";
}

function mostrar_datos(){
	document.getElementById("div_datos_trans").style.display="inline";
	document.getElementById("mostrar_datos").style.display="none";
}```

Aqui mis codigos

<code><!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Transferencias Bancarias</title>
  </head>
  <body>

    <p>Realiza tu transferencia</p>
  
    <input type="button" name="" id="boton" value="Transferir">
    <p id="resultado"></p>

    <script type="text/javascript" src="deposito.js"></script>

  </body>
</html>








var cliente1 = "thomas";
var bancoCliente1 = "BPN";
var saldoCliente1 = 120000;
var result = document.getElementById("resultado");
var dinero = 0;

var dinero = parseInt(prompt ("dinero", ""));

console.log(dinero);

var bot = document.getElementById("boton");
bot.addEventListener("click", transferencia);


//setUp
var horaActual = 9.15;
var costoTrans = 100;

//Destino
var cliente2 = "Pedro";
var bancoCliente2 = "BPN";



function transferencia()
{
  console.log(dinero);
  if ((verificado(cliente2)) && (verificado(bancoCliente2)) &&
  (disponibilidad(saldoCliente1,dinero,bancoCliente1,bancoCliente2)) && (enorario(horaActual)))
  {
    result.innerHTML = "Transferencia confirmada";
  }
  else
  {
      result.innerHTML = "Transferencia negada";
  }

}

function verificado(c)
{
    if ((c == "Pedro") || (c == "BPN"))
    {
      return true;
    }
    else
    {
      return false;
    }
}

function enorario(h)
{
  if (((h>=9) && (h<=12)) ^ ((h>=15) && (h<=20)))
  {
    return true;
  }
  else {
    return false;
  }
}

function disponibilidad(s,d,b1,b2)
{
  if (b1 != b2)
  {
    if (s>=d+100)
    {
      return true;
    }
    else {
      return false;
    }
  }
  else
  {
    if (s>=d)
      {
        return true;
      }
    else {
       return false;
    }
    }
}

Usando lapiz es mejor !

if ( (hora >= 9 && hota < 12 || hora >=15 && hora < 20 )  && cliente && destino && ( bancCliente == bancDestino ) && (saldo > Monto) ){
	enviarDinero();
}else{
	console.log("No se puede");
}

tengo trabajando en esto en mas de un 1 día. Espero alguien me ayude con una retroalimentación.

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>BDMX</title>
		<style type="text/css">
			body {
				background: linear-gradient(300deg, #1900ff, #73a4f0);
				font-family: helvetica;
				color: #ffffff;
			}
			strong {
				font-size: medium;
				font-family: "arial", Times, serif;
			}
		</style>
	</head>
	<body>
		<p><strong>BIENVENIDO A BDMX</strong><br /></p>

		<p0
			>ERES MIEMBRO DE <strong>BDMX</strong>?<br />
			<td>
				<input type="checkbox" id="checkBanco0" onclick="texValidarSiPuedes()" />
				Si
				<script>
					function texValidarSiPuedes() {
						// traer checkbanco
						var checkBox = document.getElementById("checkBanco0");
						// traer salida de checkBanco
						var text = document.getElementById("text");

						// If the checkbox is checked, display the output text
						if (checkBox.checked == true) {
							text.style.display = "none";
						} else {
							text.style.display = "block";
						}
					}
				</script>
			</td>
			<br /><br />
		</p0>

		<p1>
			FAVOR DE INGRESAR LA HORA EN FORMATO DE 24Hr<br />
			<input type="number" value="10" id="hORA0" /><br /><br />
		</p1>

		<p2>
			BANCO AL QUE DESEA TRANSFERIRI<br />
			<input type="text" value="BDMX" id="bANCOdESTINATARIO0" /><br /><br />
		</p2>

		<p3>
			NUMERO DE CUNETA<br />
			<input
				type="number"
				value="12345678"
				id="nUMEROcUANTA0"
				required
				minlength="4"
				maxlength="8"
				size="10"
			/>
			<br /><br />
		</p3>

		<p4>
			CUAL ES TU SALDO ACTUAL?<br />
			<input type="number" value="1200" id="sALDOaCTUAL0" /><br /><br />
		</p4>

		<p5>
			MONTO A TRANSFERIR<br />
			<input type="number" value="100" id="mONTOtRANSFERIDO0" /><br /><br />
			<p6 id="text" style="display: block">
				⚠⚠⚠ No eres parte de BDMX, no pordras transferir ⚠⚠⚠ </p6
			><br />
			<p_1><input type="button" value="TRANSFERIR" id="tRANSFERIR0" /><br /> </p_1>
		</p5>

		<p6 id="rESULTADO"></p6>

		<p7><script src="fuction_1.js"></script></p7>
	</body>
</html>

//boton para aplicar la transferencia.
var setingsLines = document.getElementById("tRANSFERIR0");
setingsLines.addEventListener("click", transferir);

var resultado = document.getElementById("rESULTADO");
function transferir() {
	var perteneceBanco = document.getElementById("checkBanco0");
	var horaActual = parseInt(document.getElementById("hORA0").value);
	var saldoActual = parseInt(document.getElementById("sALDOaCTUAL0").value);
	var montoTransferido = parseInt(document.getElementById("mONTOtRANSFERIDO0").value);
	var bancoDestinatario = document.getElementById("bANCOdESTINATARIO0").value;
	var numeroDeCunetaDestinataria = parseInt(
		document.getElementById("nUMEROcUANTA0").value
	);
	if (perteneceBanco.checked == true) {
		if (
			(horaActual >= 9 && horaActual < 12) ||
			(horaActual >= 15 && horaActual < 20)
		) {
			if (bancoDestinatario == "BDMX") {
				if (montoTransferido < saldoActual) {
					resultado.innerHTML +=
						"<br /> su transaccion a la cuanta " +
						numeroDeCunetaDestinataria +
						" fue exitosa, su saldo es de " +
						(saldoActual - montoTransferido) +
						" $.<br />";
					saldoActual -= saldoActual - montoTransferido;
					console.log(saldoActual);
				} else {
					resultado.innerHTML += "<br /> saldo induficiente. <br />";
				}
			} else {
				if (montoTransferido + 100 < saldoActual) {
					resultado.innerHTML +=
						"<br /> Su transaccion a la cuanta " +
						numeroDeCunetaDestinataria +
						" con cargo de 100$ por comision, fue exitosa, su saldo es de " +
						(saldoActual - (montoTransferido + 100)) +
						" $.<br />";
					saldoActual -= saldoActual - (montoTransferido + 100);
					console.log(saldoActual);
				}
			}
		} else {
			resultado.innerHTML += "<br />Fuera de Horario, vuelma mas tarde. <br />";
		}
	} else {
		resultado.innerHTML += "<br />Lo siento no es posible. <br />";
	}
}
//

Como vi que todos ya pusieron el reto de realizar el algoritmo con muchas lineas de código les dejo el de solo un if

var cliente = true;
var Pichincha = false;
var Pacifico = true;
var saldoCliente = 3000000;
var horaTranferencia = Math.round(Math.random()*24);
console.log(horaTranferencia);
var monto = 1000000;
var valorTransaccion;

function transferirDinero()
{
    valorTransaccion = 100;
    if([(Pichincha ^ Pacifico) && cliente && Pacifico] && (saldoCliente > monto + valorTransaccion) && horaTranferencia >= 9 && horaTranferencia <=12 || horaTranferencia >=15 && horaTranferencia <= 20)
    {
        document.write("Tu transaccion se ha realizado con exito");  
    }
    else
    {
        alert("Tu transaccion no fue realizada");
    }
}
transferirDinero();```

Lo hice de la siguiente forma, algo sencillo, cuando coloco muchas condiciones en un solo if, suelo separarlas en expresiones booleanas sencillas y guardarlas en variables o constantes para poder colocarles nombres y que la condición final quede sencilla y puedas siempre revisar los componentes de cada expresión.

let banco_cliente = {
  id: 1,
  nombre_banco: "Bank of America"
};

let banco_destino = {
  id: 2,
  nombre_banco: "Commercebank"
};

let cuenta_cliente = {
  id: 1,
  nombre_cliente: "Luis Portillo",
  saldo: 1500000
};

let cuenta_destino = {
  id: 2,
  nombre_cliente: "Platzi"
};

let hora_transaccion = 12;
const cliente_verificado = banco_cliente.id == 1 && cuenta_cliente.id == 1;
const destino_verificado = banco_destino.id == 2 && cuenta_destino.id == 2;
let monto_neto = 1000000
const costo_transacción =
  monto_neto + (banco_cliente.id == banco_destino.id ? 0 : 100);
const transaccion_en_horario =
  (hora_transaccion >= 9 && hora_transaccion <= 12) ||
  (hora_transaccion >= 15 && hora_transaccion <= 20);
const saldo_suficiente = cuenta_cliente.saldo >= costo_transacción;

if (
  cliente_verificado &&
  destino_verificado &&
  saldo_suficiente &&
  transaccion_en_horario
) {
  console.log(`${cuenta_cliente.nombre_cliente} ha transferido ${monto_neto} USD a ${cuenta_destino.nombre_cliente}`)
} else {
  function mensaje_de_error(cond, message, errcode) {
    return cond ? `${message} ERR_${errcode} \n` : "";
  }
  let error_string = `${mensaje_de_error(
    cliente_verificado,
    "Cliente no verificado",
    "01"
  )} ${mensaje_de_error(
    destino_verificado,
    "Destino no verificado",
    "02"
  )} ${mensaje_de_error(
    saldo_suficiente,
    "Saldo insuficiente",
    "03"
  )} ${mensaje_de_error(transaccion_en_horario, "Horario no permitido", "04")}`;
  console.log(`Hubo un problema: \n ${error_string}`);
}

Por ejemplo, allí puedo leer: “Si cliente está verificado y el destino está verificado y el saldo es suficiente y actualmente es el horario en el que se permiten las transferencias, entonces puedo transferir”. Y siempre puedo revisar esas definiciones. Por ejemplo:

¿como evaluó si el cliente está verificado?

y lo que hago es volver a donde definí la constante, no sé si es una buena práctica, pero al menos a mi me ayuda a leer y a depurar con mayor facilidad.

Estoy tan feliz de acabar el desafio y acabar el curso fue una bonita experiencia que me animo a aprender python y a aprender mas de JS. Gracias Team Plazti

var bancoCliente = "Porto";
var cuentaCliente = 12345;
var saldo = 1100;
var impuesto = 100;

var hora = Math.floor(Math.random()*(24 - 0 + 1)+ 0);
var reloj = hora;

var dinero = document.getElementById("dinero");
var destino = document.getElementById("destino");
var banco = document.getElementById("bank");
var boton = document.getElementById("ok");
boton.addEventListener("click",transferir);

console.log("Esta es la hora actual: " + reloj);

function transferir(){
if (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20){
    var entregar = parseInt(dinero.value);
    var cuentaDestino = destino.value;
    var bancoDestino = banco.value;
    
    if(cuentaCliente == cuentaDestino)
    {
        var total;   
        if(saldo >= (entregar + impuesto))
        {
            if(bancoCliente == bancoDestino)
            {
                total = saldo - entregar;
                total = parseInt(total);
            }
            else
            {
                total = saldo - entregar - impuesto;
                total = parseInt(total);
            }
            console.log("Esto es lo que le queda de saldo: " + total);
        }
        else
        {
            alert("SALDO INSUFICIENTE")
        }
    }
    else
    {
        alert("La cuenta del Destinatario es incorrecta")
    }

    }
else{
    alert("El horario de atencion es de 9 a 12 y de 15 a 20. Por favor asista en esos horarios")
    }
}

La version corta usando las mismas variables de arriba

function transferir(){
    var entregar = parseInt(dinero.value);
    var cuentaDestino = destino.value;
    var bancoDestino = banco.value;
    if(bancoCliente == bancoDestino && cuentaCliente == cuentaDestino && (saldo >= (entregar + impuesto)) && (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20)){
        total = saldo - entregar;
        total = parseInt(total);
        console.log("Esto es lo que le queda de saldo: " + total);
    }
    else if (cuentaCliente == cuentaDestino && (saldo >= (entregar + impuesto)) && (reloj >= 9 && reloj <=12 || reloj >= 15 && reloj <= 20)){
        total = saldo - entregar - impuesto;
        total = parseInt(total);
        console.log("Esto es lo que le queda de saldo: " + total);
    }
    else
    {
        console.log("No se que paso bro");
    }
    
}

Aquí esta mi trabajo:

Si quieren aprender más sobre lógica les recomiendo un libro que se llama Introducción a la lógica por Irving M. Copi y Carl Cohen , es de lógica matemática pero todo esto se explica a profundidad, es bastante bueno y te ayuda a entender bastante de cómo funcionan nuestros computadores. Espero sea útil 😉.

Hola comunidad, no tiene nada que ver con la clase pero se me vino una duda a la mente, y tal vez alguno me pueda explicar o ayudar a entender .
Como se enlaza una tarjeta de pago a una app, gracias de antemano.

Muchas Gracias al equipo de PLATZI, aprendí mucho…

Sé que habrá miles de aportes, pero como nunca hice un aporte en el curso, dejaré aquí por primera vez antes de terminar el magnífico curso (ES la versión corta):

//Variables del sistema

var bancoCliente="BBVA";
var cuentaCliente="000117";
var saldoCuenta=455;

//Para la "verificacion de los bancos" esta este array, asi solo los bancos que esten en el array seran los "verificados"
var bancosDestino=["BBVA","BANORTE","BANAMEX","NU"];

var bancoDestino
var cuentaDestino

var horaTransferencia
var fechaTransaccion
var importe
var costoT;//Es el costo de la transaccion

bancoDestino=prompt("Ingresa el banco de la cuenta destinatario");
cuentaDestino=prompt("Ingresa la cuenta del Destinatario");
importe=parseInt(prompt("Ingresa el importe a tranferir"));


fechaTransaccion=new Date();
horaTransferencia=fechaTransaccion.getHours();

if ((verificarBanco(bancoCliente) && verificarBanco(bancoDestino)) && ((costoT=vericarImporte(bancoCliente,bancoDestino)?0:100)+importe)<=saldoCuenta && validarHora(horaTransferencia)) {
    alert("TODO SALIO CHIDOOOOOOOOOO!!!!!!");  
    saldoCuenta-=costoT+importe;
    console.log("El saldo de la cuenta es: $"+saldoCuenta);
} else {
    alert("ALGO ANDA MAL.JPG")
    console.error("ALGO SALIO MAL :( REVISA TUS DATOS O LA HORA DE LA TRANSACCION");
}


//Funcion para validar que la hora de la transaccion este dentro de las horas establecidas
function validarHora(hora){
    if (hora>=9 && hora<12) {
        return true;
    } else if (hora>=15 && hora<20) {
        return true;
    } 

    return false;
}

//Funcion que recorre el array de los bacos que son aceptados ("verificados")
function verificarBanco(bankAverificar) {

    for (var banco of bancosDestino) {
        if (banco==bankAverificar) {
            return true;
        }
    }
    return false;
}

function vericarImporte(bankC,bankD) {
    return (bankC===bankD)? true:false;
}

PD: Quizás no es técnicamente todo en un solo if por usar funciones, pero creo que simplifica el proceso de entender el if :c

GG

<code> 

var bancoCliente = "BBVA";
var cuentaCliente = true;
var saldoCliente = 1200000;
var bancoDestino = "jAVA";
var cuentaDestino = true;
var horaTransferencia = (1);
var costo = 20000;
var tiempo = 10;
var pago ;

var transferir = 8000000;
if (((cuentaCliente && cuentaDestino == true), saldoCliente >= transferir),
 (((bancoDestino == bancoCliente) || (bancoDestino ^ bancoCliente, transferir = transferir + costo)),
  ((tiempo >=9 , tiempo <= 12) || (tiempo >=15 , tiempo <= 20))))
{
  console.log("Felicidades") ;
}
else
{
  console.log("Ocurrio un problema en el procesamiento, intenta de nuevo");
}

el ejemplo en python:

<
lluvia = True
sombrilla = False
bajo_techo = False

if lluvia:
    if sombrilla or bajo_techo:
        print("bien")
    else:
        print("algo anda mal")
else:
    print("no necesitas sombrilla")
> 

Debo repasar. 😅

Lo logre, quizás muy extenso pero funciona… Jjaja
Cualquier corrección con gusto las recibo.

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Mi Banco</title>
</head>
<body>
    <div>
        <h1>Bienvenido a <strong>Mi Banco</strong></h1>
        <p>Por favor rellene los campos para realizar su transacción</p><br>
        <p>
            Cuenta origen:
            <select id="list" name="Cuenta origen">
                <option id="originOne" value="000245789654">000245789654 - Bancolombia</option>
                <option id="originTwo" value="000245784512">000245784512 - Av villas</option>
                <option id="originThree" value="000245789725">000245789725 - Banco de Bogota</option>
            </select>
        </p>
        <p>
            Banco destino:
            <select id="listTwo" name="Banco destino">
                <option id="destinationOne" value="52">Av villas</option>
                <option id="destinationTwo" value="01">Banco de Bogota</option>
                <option id="destinationThree" value="07">Bancolombia</option>
            </select>
        </p>
        <p>
            Cuenta destino:
            <input id="destinationAccount" type="number" min="1">
        </p>
        <p>
            ¿Cuanto deseas transferir?:
            <input id="valor" type="number" min="1">
        </p>
        <p>
            <input id="check" type="checkbox"> Acepto <a href="">Terminos y condiciones</a>
            <input id="Tranferir" type="button" value="Transferir">
        </p>
    </div>
    <script src="./Code.js"></script>
    <p id="resultadoCuentaOrigen"></p>
    <p id="resultadoCuentaDestino"></p>
    <p id="resultadoCalculo"></p>
</body>
</html>

Javascript:

var boton = document.getElementById("Tranferir");
boton.addEventListener("click", calculo);
var bancoOrigen;
var check = document.getElementById("check");
var allCheck;
var allCheck2;

class cuentas {
    constructor(numero, saldo, autorizada, entidad) {
        this.numero = numero;
        this.saldo = saldo;
        this.autorizada = autorizada;
        this.entidad = entidad;
    }
}

var cuentasAut = [];
cuentasAut.push(new cuentas("000245789654", 1000000, false, "07"));
cuentasAut.push(new cuentas("000245784512", 2500000, true, "52"));
cuentasAut.push(new cuentas("000245789725", 150000, true, "01"));

console.log(cuentasAut);

function mostrar() {
    var destinoVerificado = "000111222333";
    var resultado = document.getElementById("resultadoCuentaOrigen");
    var resultado2 = document.getElementById("resultadoCuentaDestino");
    var cuentaOrigen = document.getElementById("list");
    var seleccionada = cuentaOrigen.options[cuentaOrigen.selectedIndex].value;
    var cuentaDestino = document.getElementById("destinationAccount").value;
    if(document.getElementById("check").checked) {
        for(k in cuentasAut) {
            if(seleccionada == cuentasAut[k].numero && cuentasAut[k].autorizada != false) {
                resultado.innerHTML = "✅ <strong>Status cuenta origen:</strong> La cuenta numero " + seleccionada + " esta autorizada";
                allCheck = 1;
                break
            }
            else {
                resultado.innerHTML = "❌ <strong>Status cuenta origen:</strong> La cuenta numero " + seleccionada + " No esta autorizada";
                allCheck = 0;
            }
        }
        if(cuentaDestino == destinoVerificado) {
            resultado2.innerHTML = "✅ <strong>Status cuenta destino:</strong> La cuenta numero " + cuentaDestino + " esta autorizada";
            allCheck2 = 1;
        }
        else {
            resultado2.innerHTML = "❌ <strong>Status cuenta destino:</strong> La cuenta numero " + cuentaDestino + " No esta autorizada";
            allCheck2 = 0;
        }
    }
    else {
        alert("Para hacer la transaccion debes estar de acuerdo con nuestros terminos y condiciones");
    }
}

function calculo() {
    mostrar();
    var costo = 0.05;  // PORCENTAJE DEL VALOR A TRANFERIR 5%
    var costoTotal;
    var valorTranferir = parseInt(document.getElementById("valor").value);
    var resultado3 = document.getElementById("resultadoCalculo");
    var cuentaOrigen = document.getElementById("list");
    var seleccionada = cuentaOrigen.options[cuentaOrigen.selectedIndex].value;
    var bancoDestino = document.getElementById("listTwo");
    var seleccionada2 = bancoDestino.options[bancoDestino.selectedIndex].value;
    if(document.getElementById("check").checked && (allCheck * allCheck2 == 1)) {
        for(y in cuentasAut) {
            if(seleccionada == cuentasAut[y].numero) {
                bancoOrigen = cuentasAut[y].entidad;
                if(bancoOrigen != seleccionada2) {
                    costoTotal = valorTranferir + (valorTranferir * costo);
                    if(cuentasAut[y].saldo >= costoTotal) {
                        resultado3.innerHTML = "✅ Transaccion exitosa<br>" + "<strong>El costo de la transaccion fue de: </strong>" + (valorTranferir * costo) + "<br>" + "<strong>Cantidad tranferida: </strong>" + valorTranferir;
                    }
                    else {
                        resultado3.innerHTML = "❌ <strong>ERROR 745 - Fondos insuficientes</strong><br>" + "<strong>Saldo actual: </strong>" + cuentasAut[y].saldo + "<br>" + "<strong>Costo total de la transacción: </strong>" + costoTotal + "<br>" + "<strong>Te faltan: </strong>" + (costoTotal - cuentasAut[y].saldo) + " Para completar tu transacción";
                    }
                }
                else {
                    costoTotal = 0 + valorTranferir;
                    if(cuentasAut[y].saldo >= costoTotal) {
                        resultado3.innerHTML = "✅ Transaccion exitosa<br>" + "<strong>Tu transación es gratuita debido a que es al mismo banco</strong><br>" + "<strong>Cantidad tranferida: </strong>" + valorTranferir;
                    }
                    else {
                        resultado3.innerHTML = "❌ <strong>ERROR 745 - Fondos insuficientes</strong><br>" + "<strong>Saldo actual: </strong>" + cuentasAut[y].saldo + "<br>" + "<strong>Costo total de la transacción: </strong>" + costoTotal + "<br>" + "<strong>Te faltan: </strong>" + (costoTotal - cuentasAut[y].saldo) + " Para completar tu transacción";
                    }
                }
            }
        }
    }
}

versión en python

banco_cliente = 'Bank of America'
cuenta_cliente = True
saldo_cliente = 1000
banco_destino = 'Jp Morgan Chase'
cuenta_destino = True


def transferir (monto_transferencia, hora_transferencia):
    if ((0 if banco_cliente == banco_destino else 100 + monto_transferencia < saldo_cliente ) and cuenta_cliente and cuenta_destino) and hora_transferencia in range(9,12) or hora_transferencia in range(15,20):
        print('haciendo transferencia')
    else:
        print('no se puede procesar la transferencia')

transferir(899, 9)

Compuertas Lógicas:
🤖
Compuerta AND.
Compuerta OR.
Compuerta NOT.
Compuerta NAND.
Compuerta NOR.
Compuerta XOR.
Compuerta XNOR.
Compuerta IF.

var monto = document.getElementById(“monto”);
var banco_cliente = document.getElementById(“banco_cliente”);
var numero_cuenta_cliente = document.getElementById(“c_cliente”);
var banco_destino = document.getElementById(“banco_destino”);
var numero_cuenta_destino = document.getElementById(“c_destino”);
var resultado = document.getElementById(“resultado”);
var saldo_cliente = 10000;
var hoy = new Date();
var hora = hoy.getHours() + ‘:’ + hoy.getMinutes() + ‘:’ + hoy.getSeconds();
var transf = document.getElementById(“transferir”);
transf.addEventListener(“click”, Transferir);

function Transferir()
{
var cantidad_transferir = parseInt(monto.value);
var b_cliente = banco_cliente.value;
var c_cliente = parseInt(numero_cuenta_cliente.value);
var b_destino = banco_destino.value;
var c_destino = parseInt(numero_cuenta_destino.value);

if (b_cliente == b_destino){fee = 0;}
else {fee = 100;}

if (c_cliente == 12990699 && c_destino == 92040699 && cantidad_transferir <= saldo_cliente + fee)
{
  var queda = saldo_cliente - cantidad_transferir - fee;
  resultado.innerHTML = "Trasnferencia realizada. El costo de la transferencia fue " + fee + ". Le queda un saldo de " + queda + "<br>" + "Hora actual " + hora;
}
else
{
  resultado.innerHTML = "No tiene saldo suficiente o no existen las cuentas";
}

}

!=
Significa diferente de.

OR es como una suma

&& es como una multiplicación

! es una negación (si es verdadero se vuelve falso, si es falso se vuelve verdadero)

^ si ambos son verdaderos = verdadero | Si ambos son falsos = falso | Si uno es verdadero y el otro falso = falso | Si uno es falso y el otro verdadero = falso

ORDEN DE LOS OPERADORES:

La multiplicación se hace siempre primero que la suma, a menos que se interpongan paréntesis.
Si hay paréntesis, primero se resuelve primero lo que está dentro de los paréntesis (de adentro hacia afuera)

tablas de verdad y compuertas lógicas
diagramas de flujos
caminos para hacer las cosas

==
Significa comparación

=
Asigna el valor de la derecha al de la izquierda

Aquí va el mío

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Banco Platzi, banco universal</title>
  </head>
  <body>
    <label id="labanco">Banco cliente:</label>
    <select id="bancocliente">
      <option value="null" selected>Seleccione su banco</option>
      <option value="platzi">Banco de Platzi</option>
    </select>
    <p></P>
    <label id="lacuentac">Número de cuenta:</label>
    <input type="text" id="cuentacliente"></input>
    <p></P>
    <label id="banco_destino">Banco destino:</label>
    <select id="bancodestino">
      <option value="null" selected>Seleccione el banco a transferir</option>
      <option value="platzi">Banco de Platzi</option>
      <option value="cody">Banco de Cody</option>
      <option value="meme">Banco del Meme</option>
    </select>
    <p></P>
    <label id="lacuentad">Número de cuenta destino:</label>
    <input type="text" id="cuentadestino"></input>
    <p></P>
    <label id="lamonto">Monto a transferir:</label>
    <input type="number" id="monto"></input>
    <p></P>
    <input type="button" id="transfer" value="Transferir"></input>
    <p id="resultado"></P>
    <p id="fecha"></P>
    <script src="banco.js"> </script>
  </body>
</html>

<script type=“text/javascript”>
var f = document.getElementById(“fecha”);
var fecha = new Date();
var hora = fecha.getHours();
//f.innerHTML = fecha.getDate() + “/” + (fecha.getMonth() + 1) + “/” + fecha.getFullYear() + " " + fecha.getHours() + “:” + fecha.getMinutes();
f.innerHTML = fecha.getHours();
var bcliente = document.getElementById(“bancocliente”);
var ccliente = document.getElementById(“cuentacliente”);
var bdestino = document.getElementById(“bancodestino”);
var cdestino = document.getElementById(“cuentadestino”);
var clientev = “1234platzi”;
var destinov = [];
destinov.platzi = “5678platzi”;
destinov.cody = “6567cody”;
destinov.meme = “1337meme”;
var costo;
var m = document.getElementById(“monto”);
var monto;
var saldo = 1000000;
var r = document.getElementById(“resultado”);
var t = document.getElementById(“transfer”);
t.addEventListener(“click”, retirar);
function retirar()
{
if (hora >= 8 && hora < 12 || hora >= 15 && hora < 19)
{
var monto = parseInt(m.value)
if (bcliente.value == “platzi”)
{
if (ccliente.value == clientev)
{
if (bdestino.value == bcliente.value)
{
if (cdestino.value == destinov.platzi)
{
costo = 0;
if (saldo > 0 && saldo >= monto + costo)
{
if (monto > 0)
{
saldo = saldo - (monto + costo)
r.innerHTML = monto + "$ transferidos a la cuenta " + cdestino.value + ", saldo restante: " + saldo + “$, sin costo adicional”;
}
else
{
r.innerHTML = “Por favor introduzca el monto a transferir”;
}
}
else
{
r.innerHTML = “Saldo insuficiente o monto inválido”;
}
}
else
{
r.innerHTML = “Número de cuenta a transferir no registrada”;
}
}
else if (bdestino.value == “cody”)
{
if (cdestino.value == destinov.cody)
{
costo = Math.floor(monto/90);
if (saldo > 0 && monto > 0 && saldo >= monto + costo)
{
saldo = saldo - (monto + costo)
r.innerHTML = monto + "$ transferidos a la cuenta " + cdestino.value + ", saldo restante: " + saldo + "$, costo adicional de " + costo + “$”;
}
else
{
r.innerHTML = “Saldo insuficiente”;
}
}
else
{
r.innerHTML = “Saldo insuficiente o monto inválido”;
}
}
else if (bdestino.value == “meme”)
{
if (cdestino.value == destinov.meme)
{
costo = Math.floor(monto/90);
if (saldo > 0 && monto > 0 && saldo >= monto + costo)
{
saldo = saldo - (monto + costo)
r.innerHTML = monto + "$ transferidos a la cuenta " + cdestino.value + ", saldo restante: " + saldo + "$, costo adicional de " + costo + “$”;
}
else
{
r.innerHTML = “Saldo insuficiente o monto inválido”;
}
}
else
{
r.innerHTML = “Número de cuenta a transferir no registrada”;
}
}
else if (bdestino.value == “null”)
{
r.innerHTML = “Por favor seleccione el banco a transferir”;
}
}
else
{
r.innerHTML = “Número de cuenta incorrecto”;
}
}
else
{
r.innerHTML = “Por favor seleccione el banco de platzi”;
}
}
else
{
r.innerHTML = “El banco está cerrado a esta hora. Vuelva de 8 a 12 o de 15 a 19”;
}
}

function borrar()
{
resultado.innerHTML = “”; //esto iba a ir en un setTimeout pero no salió como esperaba así que lo quité del código final
}
</script>

lo hice sencillo, pero creo que entendí el concepto

var cliente = true;
var destino = false;

transferencia="1 Millon de dolares";
cuentaDestino=12689778516; 
var comision=100;

var hoja = document.getElementById("parrafo");

function banco(){
    if(cliente && destino){
        hoja.innerHTML="vaya eres un cliente preferente<br>";
        hoja.innerHTML+="ahora mismo transferimos  "+transferencia+" a la cuenta "+cuentaDestino+"<br>";
        hoja.innerHTML+="y <stronke>agradeciendo</stronke> tu preferencia, no se te realizara ningun cobro de transaccion"
    }

    if (cliente && destino==false) {
        hoja.innerHTML="vaya, tu eres de esos que rompen las reglas seguro te gusta BITCOIN<br>";
        hoja.innerHTML+="bueno, pero igual te cobrare "+comision+" dolares, haber si asi te lo piensas, <stronke>Punketo</stronke>";
    }

    else
    {
        hoja.innerHTML="espera a ti no te conosco. POLICIA!! me ROBAN!!!"
    }
}

banco();

Por aquí les dejo mi aporte 😃

<JavaScript> 

var bancoCliente = "banEcuador", cuentaCliente = true, bancoDestino = "banEcuador", cuentaDestino = true, hora = 20;
var transaccion, monto = 100000, saldoCliente = 1200000;

var resultado = document.getElementById("resultado");

    if(bancoCliente == bancoDestino)
    {
        transaccion = 0;
    }
    else
    {   
        transaccion = 100;
    }

    if(hora >= 9 && hora <= 12  || hora >= 15 && hora <= 20)
    {
        if(cuentaCliente== true && cuentaDestino== true)
        {
            if(saldoCliente >= monto + transaccion)
            {
                console.log("cuenta verificada, tu transaccion sale en " + transaccion);

                if(bancoCliente == bancoDestino)
                {
                console.log("cuenta verificada")

                   
                    resultado.innerHTML = ("Transferencia realizada sin costo de transaccion adicional <hr/>");
                }

                else 
                {
                   
                    resultado.innerHTML =("El costo de su transferencia es + "<strong>" + 100 <hr/>");
                }
            }

            else 
            {
                resultado.innerHTML =("Monto insuficiente");
            }
        }

        else
        {
            resultado.innerHTML = ("Cliente o Destino no esta verificado");
        }
    
    }
        else 
    {
        resultado.innerHTML = ("La hora no esta dentro de nuestro horario de atencion, revise nuestro horario de atencion, Gracias. <hr/>");    
    }

Trate de agrega toda las opciones para que sepas en que falló tu transacción, probablemente algo se me pasó :v

var bancoCliente = true;
var cuentaCliente = true;
var saldoCliente = 1500000000;
var bancoDestino = false;
var cuentaDestino = true;
var horario = 10;

if ((cuentaCliente && cuentaDestino) && (bancoCliente && bancoDestino) && (saldoCliente >= 110000000) && ((horario > 8 && horario < 13) || (horario > 14 && horario < 21)))
{
	alert("La transacción se efectuó con éxito.");
}
else
{
	if ((cuentaCliente && cuentaDestino) && (bancoCliente && bancoDestino) && (saldoCliente >= 1100000000) && (!((horario > 8 && horario < 13)) || (horario > 14 && horario < 21)))
	{
		alert("Intentelo dentro de los horarios establecidos.");
	}
	else
	{
		if((cuentaCliente && cuentaDestino) && (bancoCliente && bancoDestino) && (!(saldoCliente >= 1100000000)) && (horario > 8 && horario < 13) || (horario > 14 && horario < 21))
		{
			alert("Saldo insuficiente.");
		}
		else
		{
			if((cuentaCliente && cuentaDestino) && (!(bancoCliente && bancoDestino)) && (saldoCliente >= 1100000000) && (horario > 8 && horario < 13) || (horario > 14 && horario < 21))
			{
				alert("El cargo de la transacción fue de $100 USD");
			}
			else
			{
				if((!(cuentaCliente && cuentaDestino)) && (bancoCliente && bancoDestino) && (saldoCliente >= 1100000000) && (horario > 8 && horario < 13) || (horario > 14 && horario < 21))
				{
					alert("La cuenta no existe");
				}
				else
				{
					alert("Verifique sus datos e intentelo de nuevo.")
				}
			}
		}
	}
}

Aqui dejo mi codigo 😃, agregue que la hora y el saldo del usuario fuera diferente cada vez que recargara la pagina.
Lo hice con el objeto Math y el metodo .random

<code> 
var bancoDestino = document.getElementById("bancoDestino");
var clienteVerifi = document.getElementById("clienteVerificado");
var clienteNoVerifi = document.getElementById("clienteNoVerificado");
var transferencia = document.getElementById("transferencia");
var bancoCliente = document.getElementById("bancoCliente");
var dinero = document.getElementById("saldo");
var resultado = document.getElementById("resultado");
clienteVerifi.addEventListener("click", entregar);
clienteNoVerifi.addEventListener("click", noEntregar);
dinero.addEventListener("click", consultarSaldo);
var saldo = aleatorio(100,1000000);
var banco;
var transaccion = 0;
horaTransferencia = aleatorio(0, 24);
resultado.innerHTML += "<strong>Hora:</strong> " + horaTransferencia +":00<br />";

function entregar()
{
  transaccion = parseInt(transferencia.value);
  banco = true;
  let clienteVerificado = true;
  if(clienteVerificado && banco && saldo >= transaccion && banco && horaTransferencia >= 9 && horaTransferencia <=12 || horaTransferencia >= 15 && horaTransferencia <= 20)
  {
    if(bancoCliente.value == bancoDestino.value)
    {
      alert("Su transaccion tiene un costo de 0 pesos")
      alert("Transaccion valor: " + transaccion)
    }
    else
    {
      alert("Su transaccion tiene un costo de 300 pesos")
    }
    alert("Su transaccion fue echa con exito :)");
  }
  else if(saldo < transaccion)
  {
    alert("No tiene suficiente saldo para su transaccion");
  }

  else if(horaTransferencia <= 9 || horaTransferencia >= 12)
  {
    alert("Atendemos de 9 a 12am,  15 a 20pm");
  }
  else if(horaTransferencia <= 15 || horaTransferencia >= 20)
  {
    alert("Atendemos de 15 a 20pm,  9 a 12am");
  }
}

function consultarSaldo()
{
   resultado.innerHTML += "<strong>Su saldo es de: </strong>$" + saldo;
}

function noEntregar()
{
  let clienteNoVerificado = false;
  if(!clienteNoVerificado)
  {
    alert("No podemos realizar su transferencia, \nSu cuenta no esta verificada");
  }
}

function aleatorio(max, min)
{
  var resultado;
  resultado = Math.floor(Math.random() * (max - min + 1)) + min;
  return resultado;
}

Muy bueno gracias @freddier

Lo are y espero no morir en el intento :"v

ahora, a por el examen!!!

Si ponen la velocidad del vídeo a 0.5x parece que Freddy está dando la clase después de subir del bar! jajaja Grande!!

Excelente video!!

Preguntar q carajos Jjajajajajajajaja

excelente curso Freddy!! Muy buena explicacion!

excellent!

A seguir aprendiendo…

Si entiendes bien las compuertas lógicas y tablas de verdad puedes realizar lo que sea. Ya sea Hardware o Software

Segundo reto:

Este es el diagrama de flujo de un solo IF:

Así es como se ve la Web, con las entradas y resultados. Funciono de maravilla.

Nice

Se me hizo mas facil entender las compueras logicas ❤️

const DatosCliente = [
    NombreBancoCliente = "Bank_Colombian",
    dineroTransferir = 1000000,
    cuentaClient = "verificado",
    saldoCliente = 1025000
]
 const DatosDestino = [
    NombreBancoDestino = "Bank_Colombian",
    cuentaDestino = "verificado",
    horarioBank = [[mañana = 9,10,11,12],[tarde = 15,16,17,18,19,20]],
    saldoDestino = 0
 ]
const horaDeTransferencia= 11
var i = 0

if(horaDeTransferencia >= DatosDestino[2][0][0] && horaDeTransferencia <= DatosDestino[2][0][3] || horaDeTransferencia >= DatosDestino[2][1][0] && horaDeTransferencia <= DatosDestino[2][1][5])
{
    let costTransaction;

    if(DatosCliente[0] === DatosDestino[0])
        costTransaction = 0
    else
        costTransaction = 50000

    if(DatosCliente[3] >= DatosCliente[1] + costTransaction) {
    if(DatosCliente[2]  && DatosDestino[1]){
        DatosDestino[3] = DatosCliente[1]
        console.log(`Tu monto de ${DatosCliente[1]} ha sido transferido correctamente`)
    }else
        console.log(`Lo sentimos, revisa si alguna de las dos cuentas no es verificada, tu dinero se ha retornado a tu cuenta`)
        
    }else
        console.log("Solicitud rechazada, dinero insuficiente en la cuenta")

}else
    console.log(`Lo sentimos, el banco esta cerrado`)