Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Noch was brauche ich





Frage

<html> <head> <script> // Aufbau: Kartenname, ATK, DEF // Kommas nicht vergessen! var karten = new Array( "Karte1", 5, 10, "Karte2", 3, 1, "Karte3", 4, 3, "Karte4", 8, 7, "Karte5", 3, 11 // Letzter Eintrag ohne Komma //...usw ); var anzahlKarten = karten.length/3; function karteAusgeben() { var i = 3 * Math.floor(Math.random()*anzahlKarten); document.forms[0].karte.value = karten[i++] + " (ATK=" + karten[i++] + ", DEF=" + karten[i] + ")"; } </script> </head> <body> <form> <input name="karte" value="" size=60 readonly><br> <input type=button value="Zufallskarte" onClick="karteAusgeben()"> </form> </body> </html> kann einer von euch noch bei dem Code oben , den ich von semi bekommen habe ,ändern, das man noch eine kleine Beschreibung dazuschreiben kann,die dann auch mit der Zufällig gezogenen Karte angzeigt wird cu Vash

Antwort 1 von semi


<html>
<head>
<script>
// Aufbau: Kartenname, ATK, DEF, "Info"
// Kommas nicht vergessen!
var karten = new Array(
"Karte1", 5, 10, "Info1",
"Karte2", 3, 1, "Info2",
"Karte3", 4, 3, "Info3",
"Karte4", 8, 7, "", // "" für "kein Info"
"Karte5", 3, 11, "Info5" // Letzter Eintrag ohne Komma
//...usw
);

var anzahlKarten = karten.length/4;
function karteAusgeben()
{
var i = 4 * Math.floor(Math.random()*anzahlKarten);
document.forms[0].karte.value =
karten[i++] + " (ATK=" + karten[i++] + ", DEF=" + karten[i++] + ")";
document.forms[0].info.value = karten;
}
</script>
</head>
<body>
<form>
<input name="karte" value="" size=60 readonly><br>
<input name="info" value="" size=60 readonly><br>
<input type=button value="Zufallskarte" onClick="karteAusgeben()">
</form>
</body>
</html>
Die Änderungen sind fett hervorgehoben.

Antwort 2 von Vash

gibts vielleicht auch noch eine möglichkeit zu den einzelenen Karten bilder einzufügen....ich hoffe ich nerve net...aber danke für den code schon mal

cu Vash

Antwort 3 von semi

1) Erweitere das Format um noch eine Spalte
z.B.
"Karte1", 5, 10, "Info1", "image1.gif"
2) Ersetze überall die 4 durch 5
(es sind 5 Spalten pro Karte)

3) Im Dokument irgendwo folgendes einfügen
<img src="dummy.gif">
dummy.gif ist irgendeine transparente Grafik für den Anfangszustand.

4) Die letzten zwei Zeilen in der Funktion karteAusgeben() sollten dann wie folgt aussehen
document.forms[0].info.value = karten[[b]i++];
document.images[0].src = karten;

Gruß,
Michael


Antwort 4 von Vash

ja danke für alles

cu vash

Antwort 5 von Vash

<html>
<head>
<script>
// Aufbau: Kartenname, ATK, DEF, "Info"
// Kommas nicht vergessen!
var karten = new Array(
"Karte1", 5, 10, "Info1", "image.gif",
"Karte2", 3, 1, "Info2", "image2.gif",
"Karte3", 4, 3, "Info3", "image3.gif",
"Karte4", 8, 7, "", "image4.gif", // "" für "kein Info"
"Karte5", 3, 11, "", "image5.gif" // Letzter Eintrag ohne Komma
//...usw
);

var anzahlKarten = karten.length/5;
function karteAusgeben()
{
var i = 5 * Math.floor(Math.random()*anzahlKarten);
document.forms[0].karte.value =
karten[i++] + " (ATK=" + karten[i++] + ", DEF=" + karten[i++] + ")";
document.forms[0].info.value = karten;
document.images[0].src = karten;
}
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; left:12px; top:12px; width:349px; height:133px; z-index:1"><img src="dummy.gif"></div>
<form>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>
<input name="karte" value="" size=60 readonly>
<br>
<input name="info" value="" size=60 readonly>
<br>
<input type=button value="Zufallskarte" onClick="karteAusgeben()">
</p>
</form>
</body>
</html>


habe ich irgendetwas falsch gemacht? weil der läadt das Bild net...das dummy.gif schon, aber die restlichen Bilder net

Antwort 6 von semi

document.forms[0].info.value = karten[i++];
statt
document.forms[0].info.value = karten;

Antwort 7 von Vash

Dankeschön....ich werde dich niewieder damit nerven :D

cu Vash

Antwort 8 von Vash

hi,

es tut mir so leid...eines wüste ich noch gerne...gibt es eine möglichkeit das die Karte die gezogen wurde nur einmal gezogen werden kann...also das mann nicht 2 mal die selbe ziehen kann...ich verspreche dir danach werde ich dich nie wieder nerven kein ton mehr sagen...

cu Vash

Antwort 9 von semi

Ersetze den Code an der entsprechenden Stelle zwischen dem Ende des Karten-Arrays und dem Anfang der Ausgabefunktion
...
var zeilenLaenge = 5;
var anzahlKarten = karten.length/zeilenLaenge;
var zeilenOffsets = new Array();

function reset()
{
  for(var i=0; i<anzahlKarten;i++)
    zeilenOffsets.push(i*zeilenLaenge);
}

function naechsteKarte()
{
  if(zeilenOffsets.length == 0)
    reset();
  var inx = Math.floor(Math.random()*zeilenOffsets.length);
  var i=zeilenOffsets[inx];
  zeilenOffsets.splice(inx,1)
  return i;
}

function karteAusgeben()
{
  var i = naechsteKarte();
  ...


Antwort 10 von Vash

tut mir leid ich verstehe es net wo woll ich was einfügen?

Antwort 11 von semi

<script>
// Aufbau: Kartenname, ATK, DEF, "Info"
// Kommas nicht vergessen!
var karten = new Array(
"Karte1", 5, 10, "Info1", "image.gif",
"Karte2", 3, 1, "Info2", "image2.gif",
"Karte3", 4, 3, "Info3", "image3.gif",
"Karte4", 8, 7, "", "image4.gif", // "" für "kein Info"
"Karte5", 3, 11, "", "image5.gif" // Letzter Eintrag ohne Komma
//...usw
);

var zeilenLaenge = 5;
var anzahlKarten = karten.length/zeilenLaenge;
var zeilenOffsets = new Array();

function reset()
{
  for(var i=0; i<anzahlKarten;i++)
    zeilenOffsets.push(i*zeilenLaenge);
}

function naechsteKarte()
{
  if(zeilenOffsets.length == 0)
    reset();
  var inx = Math.floor(Math.random()*zeilenOffsets.length);
  var i=zeilenOffsets[inx];
  zeilenOffsets.splice(inx,1)
  return i;
}

function karteAusgeben()
{
  var i = naechsteKarte();
  document.forms[0].karte.value =
    karten[i++] + " (ATK=" + karten[i++] + ", DEF=" + karten[i++] + ")";
  document.forms[0].info.value = karten[i++];
  document.images[0].src = karten;
}
</script>


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: