Top
Phpuniverset logo
 

INDHOLD

Forside

Script libary

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

PHP bog shop

Forum

Online udviklere


ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Forside Forum Javascript Skakspil fejl

Skakspil fejl


 

Skakspil fejl

Kasper Nielsen  

Hej allesammen, vi er to der er ved at programmere et skakspil som et projekt i skolen, og
vi er stødt på et meget træls problem. Problemet lyder. Vi har sat alle brikkerne (pånær
hesten) til ikke at må hoppe over andre brikker, men når den foregående brik flytter sig,
tror den brik stadigvæk at der er en brik og kan derfor ikke hoppe over et tomt felt...

det skal lige siges at alle reglerne for brikkerne ikke er programmeret endnu, håber der
er nogle der kan hjælpe da vi skal aflevere i nat :(




Dato : 17.01.2006, 23:12

Visninger : 2892

Points : 50

 

Her er hele koden:

<!DOCTYPE HTML SYSTEM>
<head>

    <title>Simpelt skakspil - Udviklet af: Kasper Nielsen og Bjarke Asferg 3.A</title>
    
<!-- Her opretter vi en CSS style, der automatisk konfigurere layoutet i scriptet efter
vores ønsker -->
<!-- Den første CSS style, er til body sektionen, hvor vi sætter skriftstørrelse, farve og
bg farve -->
<style>
    body
    {
        font-size: 11;
        font-family: "Verdana";
        background-color: #FFFFFF;
    }
</style>

<!-- CSS style på hjælpeboksen m. reglerne -->
<style>
    #helpdiv
    {
        font-size: 11px;
        font-family: "Verdana";
        width: 500px;
        height: 292px;
        border: 1px solid black;
        background-color: #6699CC;
        float: left;
        visibility: visible
    }
</style>

<!-- Denne CSS style er for selve spillebrættet -->
<style>
    #braetet
    {
        width: 455px;
        height: 400px;
        float: left;
        visibility: visible
    }
    
</style>
<!-- CSS Styles slut -->

<script type="text/javascript" language="JavaScript">
// javaScript funktioner
// Her laver vi et 2 dimensionelt array, hvor felterne er 8 x 8, billederne indsættes også
her
skakBr = new Array(8);
skakBr[0] = new Array("<img src='pics/br.gif'>", "<img src='pics/bh.gif'>", "<img
src='pics/bb.gif'>", "<img src='pics/bq.gif'>", "<img src='pics/bk.gif'>", "<img
src='pics/bb.gif'>", "<img src='pics/bh.gif'>", "<img src='pics/br.gif'>");
skakBr[1] = new Array("<img src='pics/bp.gif'>",  "<img src='pics/bp.gif'>", "<img
src='pics/bp.gif'>", "<img src='pics/bp.gif'>", "<img src='pics/bp.gif'>", "<img
src='pics/bp.gif'>", "<img src='pics/bp.gif'>", "<img src='pics/bp.gif'>");
skakBr[2] = new Array("",     "",    "",    "",    "",    "",    "",    "");
skakBr[3] = new Array("",     "",    "",    "",    "",    "",    "",    "");
skakBr[4] = new Array("",     "",    "",    "",    "",    "",    "",    "");
skakBr[5] = new Array("",     "",    "",    "",    "",    "",    "",    "");
skakBr[6] = new Array("<img src='pics/wp.gif'>",  "<img src='pics/wp.gif'>", "<img
src='pics/wp.gif'>", "<img src='pics/wp.gif'>", "<img src='pics/wp.gif'>", "<img
src='pics/wp.gif'>", "<img src='pics/wp.gif'>", "<img src='pics/wp.gif'>");
skakBr[7] = new Array("<img src='pics/wr.gif'>", "<img src='pics/wh.gif'>", "<img
src='pics/wb.gif'>", "<img src='pics/wq.gif'>", "<img src='pics/wk.gif'>", "<img
src='pics/wb.gif'>", "<img src='pics/wh.gif'>", "<img src='pics/wr.gif'>");




// Variabel der fortæller om der er en flytning i gang
var flytning = false;
var fra, fra_n, fra_i, tur="/w";
var loeftet = "";

function flyt(obj, n, i) {
    if (flytning) {                                     // Den brik der er valgt, skal flyttes
        if ((n == fra_n) && (i == fra_i)) {
            alert("Du har valgt brikken, så du skal flytte den");
            return;}
        if (skakBr[n][i].indexOf(tur) > 0) {            // Man kan ikke slå sine egne brikker
            alert("Du må ikke slå dine egen brikker");
            return;
        }
        if (loeftet.indexOf("p.gif") > 0) {             // Reglerne for bonden, de hvide må ikke
gå længere end 2 felter i første træk
          if (loeftet.indexOf("/w") > 0) {              // Og de må ikke slå en modstander der
står foran dem
            if (n+1!=fra_n) {
               if (n!=4) {
                  alert("Det må du ikke");
                  return;
                }
              }
            }
        if (loeftet.indexOf("p.gif") > 0) {             // Reglerne for bonden, de sorte må ikke
gå længere end 2 felter i første træk
          if (loeftet.indexOf("/b") > 0) {              // Og de må ikke slå en modstander der
står foran dem
              if (n-1!=fra_n) {
                if (n!=3) {
                  alert("Det må du ikke");
                  return;
                 }
              }
           }
        }
        if (i == fra_i) {                                   // Bonden må ikke gå fremad, hvis der står
en brik
          if (skakBr[n][i] != "") {
            alert("Bonden kan ikke slå brikken ud ved dette træk");
            return;
              }
            } else if ((i+1 == fra_i) | (i-1 == fra_i)) {  // Regler for bondens sidetræk
              if (skakBr[n][i] == "") {
                alert("Bonden kan ikke gå sidelæns, og umiddelbart ikke diagonalt");
                return;
              }
            } else {
              alert("Illegalt træk 20");
              return;
            }
          } else {
            if (n-1!=fra_n) {                               // Brikkerne kan ikke hoppe over andre
brikker, pånær hesten
              if (n!=3) {
                if (loeftet.indexOf("k.gif") > 1) {
                alert("Kan ikke hoppe over andre brikker");  
                return;
                }
                if (loeftet.indexOf("q.gif") > 0) {
                alert("Kan ikke hoppe over andre brikker");
                return;
                }
                if (loeftet.indexOf("r.gif") > 0) {
                alert("Kan ikke hoppe over andre brikker");
                return;
                }
                if (loeftet.indexOf("b.gif") > 0) {
                alert("Kan ikke hoppe over andre brikker");
                return;
                }
            }
        }
    }
        skakBr[n][i] = skakBr[fra_n][fra_i];
        obj.innerHTML = skakBr[n][i];
        skakBr[fra_n][fra_i] = "";
        fra.innerHTML = "";
        fra.style.color = "black";
        flytning = false;
        if (tur == "/w")
            tur = "/b";
        else
            tur = "/w"
    } else {
        if (skakBr[n][i] == "") {                           // Flytning af et tomt felt, er illegalt
            return;                                     // Ingen alert
        }
        if (skakBr[n][i].indexOf(tur) > 0) {
            fra = obj;
            fra_n = n;
            fra_i = i;
            loeftet = skakBr[n][i];
            flytning = true;
            return;
        } else {                                        // Skelner mellem hvid og sorts tur
            if (tur == "/w") alert("Det er Hvids tur");
            else alert("Det er Sorts tur");
        }
    }
}


// Funktion for brættets størrelse og farver for felterne
function brStr() {
    var str = "<table border='10'>";
    for (n=0; n<8; n++) {
        str += "<tr height='50'>";
        for (i=0; i<8; i++) {
            str += "<td width='50'";
            if ((n+i) % 2 == 0) {
                str += "bgcolor = '#6699CC' ";
            } else {
                str += "bgcolor = 'white' ";
            }
            str += "onClick='flyt(this, " + n + ", " + i + ")'>" + skakBr[n][i] + "</td>";
        }
        str += "</tr>";
    }
    str += "</table>";
    return str;
}

// Her bliver arrayet udskrevet i funktionen
function tegnBr() {
    var br = document.getElementById("braetet");
    br.innerHTML = brStr();
}

</script>

<!-- Her opretter vi en funktionen til et stopur til spillet -->
<script language="JavaScript" type="text/javascript">
var ms = 0;
var state = 0;

// Funktionen for stopuret der fremkalder tiden i ms
function startstop() {
    if (state == 0) {
    state = 1;
    then = new Date();
    then.setTime(then.getTime() - ms);
    } else {
    state = 0;
    now = new Date();
    ms = now.getTime() - then.getTime();
    document.ur.time.value = ms;
   }
}

// en funktion til at resette tiden med
function resetur() {
    state = 0;
    ms = 0;
    document.ur.time.value = ms;
}

// En funktion der udskriver tiden i funktionen
function display() {
    setTimeout("display();", 50);
    if (state == 1)  {now = new Date();
    ms = now.getTime() - then.getTime();
    document.ur.time.value = ms;
   }
}
// Slut p funktionen til uret
</script>

</head>

<body>

<h2><center>Skakspil i Javascript</center></h2>
<div id="braetet"></div>

<!-- Her tegner scriptet brættet, vist på selve skærmen -->
<script type="text/javascript" language="JavaScript">
tegnBr();
</script>

<!-- Her indsætter vi links til reglerne på brikkerne, som vises i "iframen" -->
<!-- Her fremkalder vi divet for boksen med reglerne (helpdiv) -->
<div id="helpdiv">

    <br>
        <ul style="list-style:square">
            <b>Regler for hver enkelte brik:</b>
                <li><a target="vindue" href="regler_bonde.html">Regler for bonden</a></li><br>
                <li><a target="vindue" href="regler_springer.html">Regler for Springeren</a></li><br>
                <li><a target="vindue" href="regler_lober.html">Regler for Løberen</a></li><br>
                <li><a target="vindue" href="regler_torn.html">Regler for Tårnet</a></li><br>
                <li><a target="vindue" href="regler_konge.html">Regler for Kongen</a></li><br>
                <li><a target="vindue" href="regler_dronning.html">Regler for
Dronningen</li></a><br><br>

    <!-- Tabel til menuen -->
    <table width="85px" height="40px" border="1" cellspacing="2" cellpadding="2"
bordercolor="black"><br>
        <b>Menu:</b>
            <tr>
                <td align="center"><input type="button" name="reload" value="Nyt spil"
onClick="javascript:location.reload()"></td>
                <FORM NAME="ur"><td align="center"><input type="button" name="ssbutton"
value="Start/stop tiden" onClick="startstop()"></td>
                <td align="center"><input type="text" name="time" size="6" value="0:00:00"
onClick=""></td>
                <td align="center"><input type="button" name="reload" value="Reset"
onClick="resetur()"></td>
            </tr>
    </table>

<!-- Her opretter vi en iframe, som er en boks vi kan bruge til at sætte regler ind til de
specifikke brikker -->
<iframe src="tom.html" align="center" name="vindue" height="90%" width="90%""
frameborder="" scrolling="no" marginheight="" marginwidth="" target="regler"></iframe>
</div>

</body>
</html>


Dato : 17.01.2006, 23:15

Kommentar af : Kasper Nielsen  




Login for at skrive et indlæg :



   Brugernavn

Password
 

+ Opret en ny Bruger, Klik her

+ Glemt brugernavn/password

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

© Copyright 2000 Propelcom Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk

Bund