Juegos

"Ayer pasé por tu casa y me tiraste una ley 30. Si no es por que PARO, quedo PRIVADO!"

JUEGOS EDUCATIVOS






TALLER JUEGOS GRADO 10º Y 11º

EJEMPLO 1er JUEGO: copia el codigo en bloc de notas y guardalo como triqui.html

<HEAD>
<TITLE>Juego Triqui en JavaScript y HTML</TITLE>
</HEAD>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
      <SCRIPT LANGUAGE="LiveScript">
        step = 0;
        diff=3;
        function clear_all(form) {
            step = 0;
            for (i=0;i<9; ++i) {
                position="a"+i;
                form[position].value="";
            }
        }
        // cambia boton cuando es clickeados
        function clickit(field) {
        if (step == -1) {alert("Reset para jugar de nuevo"); return;}

        position=field.name.substring(1,2,1);
        position = 'a'+position;
        if (field.form[position].value !="") {alert("No se puede ir alli"); return;}
        field.form[position].value="X";
        if (eval_pos(field.form)) {
            field.form.output.value="Tu ganas!";
            step = -1;
            return;
        }
        position=get_move(field.form);
        field.form.output.value='Yo muevo a ' + position.substring(1,2,1);
        if (position=="") {
            field.form.output.value="No hay ganador.";
            step = -1;

            return;
        }
        field.form[position].value="O";
        if (eval_pos(field.form)) {
            field.form.output.value="Tu perdiste!";
            step = -1;
        }
        }

        // mira si hay ganador
        function eval_pos(form) {
           if ((form.a0.value!="" &&
            form.a0.value==form.a3.value && form.a0.value==form.a6.value)||

              (form.a0.value!=""
            && form.a0.value==form.a1.value && form.a0.value==form.a2.value) ||
              (form.a0.value!=""
            && form.a0.value==form.a4.value && form.a0.value==form.a8.value) ||
              (form.a1.value!=""
            && form.a1.value==form.a4.value && form.a1.value==form.a7.value) ||
              (form.a2.value!=""
            && form.a2.value==form.a5.value && form.a2.value==form.a8.value) ||
              (form.a2.value!=""
            && form.a2.value==form.a4.value && form.a2.value==form.a6.value) ||
              (form.a3.value!=""
            && form.a3.value==form.a4.value && form.a3.value==form.a5.value) ||
              (form.a6.value!=""
            && form.a6.value==form.a7.value && form.a6.value==form.a8.value))
            return true;
        else   
           return false;
        }

        function f(a) {
        if (a == "") return "."; else return a;
        }

        // obtiene la posicion para mover
        function comp_move(form,player,weight,depth) {

            var cost;
            var bestcost=-2;
            var position;
            var newplayer;
            if (player=="X") newplayer="O"; else newplayer="X";
            if (depth==diff) return 0;

            if (eval_pos(form)) return 1;
            for (var i=0; i<9; ++i) {
                position='a'+i;
                if (form[position].value != "")
                    continue;
                form[position].value=player;
                cost = comp_move(form,newplayer, -weight, depth+1);
                if (cost > bestcost) {
                    bestcost=cost;
                    if (cost==1) i=9;
                }
                form[position].value="";
            }
            if (bestcost==-2) bestcost=0;
            return(-bestcost);
        }

        // obtiene la posicion para mover
        function get_move(form) {
            var cost;
            var bestcost=-2;
            bestmove="";

            if (step++ == 0)
                if (form.a4.value=="")
                    return "a4";
                else
                if (form.a0.value=="")
                    return "a0";

            for (var i=0; i<9; ++i) {
                localposition='a'+i;
                if (form[localposition].value != "")
                    continue;
                form[localposition].value="O";
                cost=comp_move(form,"X", -1, 0);
                if (cost > bestcost) {
                    if (cost==1) i=9;
                    bestmove=localposition;
                    bestcost=cost;
                }
                form[localposition].value="";
            }
            return bestmove;
        }
        function complain(field) {
            field.form.output.focus();
            alert("No cambie los campos del juego directamente!");
        }
        // the end -->
      </SCRIPT>
</HEAD>
    <H1> Un juego de Triqui en Javascript </H1>
    Click en el boton siguiente a cada posicion a colocar una X.
<hr>
    <FORM>
    <INPUT SIZE=1 NAME="a0" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b0" OnClick="clickit(this)">
    <INPUT SIZE=1 NAME="a1" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b1" OnClick="clickit(this)">
    <INPUT SIZE=1 NAME="a2" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b2" OnClick="clickit(this)">
    <BR>
    <INPUT SIZE=1 NAME="a3" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b3" OnClick="clickit(this)">
    <INPUT SIZE=1 NAME="a4" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b4" OnClick="clickit(this)">
    <INPUT SIZE=1 NAME="a5" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b5" OnClick="clickit(this)">
    <BR>
    <INPUT SIZE=1 NAME="a6" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b6" OnClick="clickit(this)">
    <INPUT SIZE=1 NAME="a7" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b7" OnClick="clickit(this)">
    <INPUT SIZE=1 NAME="a8" OnFocus="complain(this)">
    <INPUT TYPE="button" NAME="b8" OnClick="clickit(this)">
    <BR>
    <BR>
    <BR>   
    Mensaje: <INPUT NAME="output" TYPE="text"><BR>
    <BR>
    Dificultad: <SELECT NAME="Dificultad"
        OnChange="diff=form.difficulty[form.difficulty.selectedIndex].value;">
    <OPTION VALUE=1> Muy facil
    <OPTION VALUE=2> Facil
    <OPTION VALUE=3 SELECTED> Medio
    <OPTION VALUE=4> Duro
    </SELECT>
    <BR><INPUT TYPE="button" VALUE="Computadora Mueve primero" OnClick="
        if (!step++) this.form.a4.value='O';">
    <BR><INPUT TYPE="reset" VALUE="Restart" OnClick="clear_all(this.form)"> 
    </FORM>