Avatar billede angelenglen Nybegynder
08. december 2002 - 23:17 Der er 11 kommentarer og
1 løsning

Kontrol af random bogstaver i tabel.

jeg har fået lavet et script herinde (jeg paster det som kommentar efter denne beskrivelse)

Jeg vil høre om det på nogen måde er muligt at få det ændret sådan, så den kontrollerer at der ikke er nogen ens bogstaver i nogen af søjlerne.
-det er ligemeget vandret, men der må ikke være 2 ens bogstaver lodret.

Hvis der er en der kan lave det, er der 150 points at hente her :)
Avatar billede angelenglen Nybegynder
08. december 2002 - 23:18 #1
<!--  ------------------------ index.html start ------------ -->
<html>
<head>
<style type="text/css">
<!--
BODY        {    font-family: Tahoma, Verdana, Helvetica, sans-serif;    font-size:10pt;            font-weight:normal;        color: #000000;
            padding: 2px;
            topmargin: 2px;
            bottommargin: 2px;
            leftmargin: 2px;
            rightmargin: 2px;
SCROLLBAR-FACE-COLOR: #A19292;
SCROLLBAR-HIGHLIGHT-COLOR: #DDDDDD;
SCROLLBAR-TRACK-COLOR: #FFFFFF;
;SCROLLBAR-SHADOW-COLOR: #C6C6C6;
SCROLLBAR-3DLIGHT-COLOR: #EEEEEE;
SCROLLBAR-ARROW-COLOR: #FFFFFF;
SCROLLBAR-DARKSHADOW-COLOR: #BBBBBB;
SCROLLBAR-BASE-COLOR: #A19292;
}

td.1    { border-top: 1px solid #AAAAAA; border-left: 1px solid black; }
td.2    { border-left: 1px solid black; }
td.3    { border-left: 1px solid black; }
td.4    { border-top: 1px solid #AAAAAA; border-right: 1px solid black; }
td.5    { border-right: 1px solid black; }
td.6    { border-right: 1px solid black; }
td.7    { border-bottom: 1px solid black; border-left: 1px solid black;  border-right: 1px solid black; }
td.8    { border-top: 1px solid black; border-left: 1px solid black;  border-right: 1px solid black; border-bottom: 1px solid #CCCCCC; }
-->
</style>


<script language="JavaScript">
/*
* This function parses comma-separated name=value argument pairs from
* the query string of the URL. It stores the name=value pairs in
* properties of an object and returns that object.
*/
function getArgs() {
    var args = new Object();
    var query = location.search.substring(1);  // Get query string.
    var pairs = query.split(",");              // Break at comma.
    for(var i = 0; i < pairs.length; i++) {
    var pos = pairs[i].indexOf('=');      // Look for "name=value".
    if (pos == -1) continue;              // If not found, skip.
    var argname = pairs[i].substring(0,pos);  // Extract the name.
    var value = pairs[i].substring(pos+1); // Extract the value.
    args[argname] = unescape(value);          // Store as a property.
    }
    return args;                              // Return the object.
}




function dw( txt )
{
  document.write( txt );
}

function redraw()
{
  var nextsearch = '?rows='+ document.f.rows.value +
                    ',cols='+ document.f.cols.value +
                    ',letnum='+ document.f.letnum.value;
  location.search = nextsearch;
}

var rows  = 8;
var cols  = 15;
var letnum = 2;
var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

</script>

</head>
<body>

<script language="JavaScript">
var args = getArgs();
if (args.rows) rows = parseInt(args.rows);
if (args.cols) cols = parseInt(args.cols);
if (args.letnum) letnum = parseInt(args.letnum);

dw('<table border=0 cellpadding=10 cellspacing=0><tr><td valign=top colspan=3>\n')
dw('<table border=1>\n');
for (r = 0; r < rows; r++) {
  dw('  <tr>\n')
  for (c = 0; c < cols; c++) {

      dw('<td>');
      for (l = 0; l < letnum; l++) {
        randval = Math.floor(Math.random() * 26);

        dw(letters.substr(randval,1));
      }
      dw('</td>');
  }
  dw('  </tr>\n')
}
dw('</table><br>\n');

dw('<br><br>')
dw('</td><td valign=top>')

dw('</td></tr>\n');
dw('<form name=f>\n');
dw('<tr><td bgcolor=#EEEEEE class=8 colspan=2><center><font size=4 face=tahoma><b>Tilfældigheds-generator</b></font></center></td><td&nbsp;</td></tr>')
dw('<tr><td width=15% bgcolor=#DDDDDD class=1><b>Rækker:</td>  <td bgcolor=#DDDDDD class=4 align=left width=15%><input size=4 type=text name=rows value='+rows+'></td><td width=70%>&nbsp;</td></tr>');
dw('<tr><td width=15% bgcolor=#DDDDDD class=2><b>Søjler:</td>  <td bgcolor=#DDDDDD class=5 align=left width=15%><input size=4 type=text name=cols value='+cols+'></td><td width=70%>&nbsp;</td></tr>');
dw('<tr><td width=15% bgcolor=#DDDDDD class=3><b>Bogstaver:</td><td bgcolor=#DDDDDD class=6 align=left width=15%><input size=4 type=text name=letnum value='+letnum+'></td><td width=70%>&nbsp;</td></tr>');
dw('<tr><td colspan=2 valign=top class=7 bgcolor=#DDDDDD>\n');
dw('<center><input type=button value="Gentegn" onclick="redraw();" style="color: green; font-weight: bold; border: 1px solid black;"></center>');
dw('</td><td width=70%>&nbsp;</td></tr>')
dw('</table>\n')
dw('</form>\n')

</script>
</body>
</html>

<!--  ------------------------ index.html stop ------------ -->
Avatar billede jespernaur Nybegynder
09. december 2002 - 09:08 #2
Det er ikke helt klar hvad du mener: Hvis nu der er mere end 1 bogstav i hvert felt, skal det så forstås sådan at:

Samtlige bogstaver i feltet hører til søjlen, og skal være forskellige fra alle andre bogstaver i samme søjle

eller

Bogstav1 i feltet skal betragtes som en 'mini-søjle' og skal være forskellig fra alle andre Bogstav1 i søjlen,  Bogstav2 i feltet skal betragtes som en 'mini-søjle' og skal være forskellig fra alle andre Bogstav2 i søjlen,  osv
Avatar billede ras2000 Nybegynder
09. december 2002 - 13:46 #3
Og hvad sker der hvis der er flere rækker end der er bogstaver?
Avatar billede jespernaur Nybegynder
09. december 2002 - 13:50 #4
Det giver vel sig selv - det er ikke muligt, hvis kravet om forskellige bogstaver skal overholdes.
Avatar billede angelenglen Nybegynder
09. december 2002 - 13:58 #5
hmm ja, de kan godt betragtes som forskellige søjler.. men egentligt er det nok hvis bare det første bogstav er forskelligt, for det vil automatisk garantere at der ikke er to ens bogstab-rækker i samme søjle.
Avatar billede angelenglen Nybegynder
09. december 2002 - 13:58 #6
hmm ja, de kan godt betragtes som forskellige søjler = forskellige mini-søjler
Avatar billede ras2000 Nybegynder
09. december 2002 - 14:47 #7
Her er en der laver forskelligt 1. bogstav i hver søjle:
<html>
<head>
<script type="text/javascript">
str = 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z';
bogstaver = str.split(",");
function tabeller(els){
    tabel = new Array();
    for (b = 0; b < els.raekker.value; b ++){
        tabel[tabel.length] = new Array();
        tbogstaver = bogstaver.sort(tilf);
        for (a = 0; a < els.soejler.value; a ++){
            tabel[b][a] = tbogstaver[a];
            for (c = 1; c < els.antal.value; c ++){
                tabel[b][a] += bogstaver[Math.floor(Math.random()*bogstaver.length)];
            }
        }
    }
    skriv(tabel, a, b);
}
function skriv(arr, raekker, soejler){
    str = "<table border=2>";
    for (a = 0; a < raekker; a ++){
        str += "<tr>";
        for (b = 0; b < soejler; b ++){
            str += "<td>" + arr[b][a] + "</td>";
        }
        str += "</tr>";
    }
    document.all.her.innerHTML = str;
}
function tilf(a,b){
    return Math.random() - 0.5;
}
</script>
</head>
<body onload="tabeller(document.formen)">
<div id="her">
</div>   
<form name="formen">
<input type="text" name="raekker" value="8">
<input type="text" name="soejler" value="15">
<input type="text" name="antal" value="2">
<input type="button" value="ok" onclick="tabeller(document.formen)">
</body>
</html>
Avatar billede ras2000 Nybegynder
09. december 2002 - 14:49 #8
Hvad er det du laver, en avanceret gang bingo, eller hva?
Avatar billede angelenglen Nybegynder
09. december 2002 - 21:04 #9
det er til noget træning med kode-gejl indenfor hæren.
Er du sikker på den ikke gentager bogstaver i hver lodrette søjle?
-jeg har kigget, og har ikke set nogen gentagelser, men ville bare lige checke :)
Avatar billede ras2000 Nybegynder
10. december 2002 - 10:38 #10
Det den gør er at lave en tabel, 1 gange 26, med alle bogstaverne. Det er arrayet bogstaver. Den tager den så og sætter i en tilfældig rækkefølge (tbogstaver), en ny tilfældig rækkefølge for hver 1. bogstav i hver søjle. Derefter tager den bare bogstaverne ud af denne tabel, en ad gangen. Derved sikrer man sig at den ikke gentager bogstaverne. Du kan se det ved at lave 27 raekker, så kommer der en "undefined" i sidste række. De andre bogstaver i søjlen tager den bare fra en tilfældig plads i bogstaver.
Men det var da godt at der var så mange point i det, jeg er ikke meget for at være underleverandør for hæren!
Avatar billede angelenglen Nybegynder
10. december 2002 - 14:16 #11
lol det er bare træning. den skal kun bruges en gang, for om 2 måneder skifter de til et nyt system.
Hvis det ikke var fordi de skiftede til et nyt system, kunne jeg ikke engang have skrevet hvad det var til her.
Avatar billede ras2000 Nybegynder
10. december 2002 - 14:43 #12
OK så.
Du kan iøvrigt bare udvide bogstaver, hvis du vil have ÆØÅ med, eller hvis du vil blande tal i. Der skriver du dem bare efter str = "...", altså:
str = 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,Æ,Ø,Å,1,2,3,4';
Den finder selv ud af at der er kommet flere. Du må bare ikke komme mellemrum ind.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester