perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 20
Click for quality!




11.02.2012 / 07:04

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragProbs mit Perl-HTML-Spiel
Seitenanfang
Servus, ich bin seid Tagen schon an einem Spiel zugange und brauch ein wenig Hilfe bei der Umsetzung. Ich mache aus nem Perl-Scrip eine HTML-Seite. Das Spiel besteht aus 9x9 Eingabefelder, die je eine Ziffer zulassen. Die Werte, die der User eingibt möchte ich in Variablen schreiben lassen, die ich dann zur weiteren Bearbeitung mit Perl verwenden möchte, nur weiß ich nicht wie das Befehl lautet. Brauche ich dafür JavaScript, oder geht das auch mit Perl? Bei Rückfragen einfach schreiben :-) thx im voraus...

Datum: 20.09.2005-15:45

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Hast Du denn schon etwas Beispielcode?
Hast Du Dir schon das CGI Modul angeschaut?

Nein, Du brauchst definitiv kein Javascript um etwas in Variablen zu schreiben...

Gruss,
svenXY

Datum: 20.09.2005-15:48

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Klar hab ich n Script...kopiers einfach und paste es in deinen Editor... :-)

#!/usr/local/bin/perl
#einfassungen.html einlesen und ausgeben
#!/usr/bin/perl

use strict;

print "Content-type: text/html\n\n";

print <<"END";
<html>

</head>
<p style="text-align:center;">
<Font size="5"><u>Oo.Sugoku.oO</u></font>
</p>

<p style="text-align:center;">
<Font size="4">...digital collabse...</font>
</p>
</head>
<body bgcolor=\"CCCCCC\">

<br>
<table border=\"2\" heigh=\"200\" width=\"200\" align=\"center\" cellspacing=\"5\" cellpadding=\"3\">

<td bgcolor=\"#000000\"></td>

<tr>
<th bgcolor=\"#000000\"></th>
<td><input id=\"1_1\" name=\"1_1\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_2\" name=\"1_2\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_3\" name=\"1_3\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<th bgcolor=\"#000000\"></th>
<td>\n<input id=\"1_4\" name=\"1_4\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td>\n<input id=\"1_5\" name=\"1_5\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td>\n<input id=\"1_6\" name=\"1_6\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<th bgcolor=\"#000000\"></th>
<td><input id=\"1_7\" name=\"1_7\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_8\" name=\"1_8\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_9\" name=\"1_9\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<th bgcolor=\"#000000\"></th>
</tr>

<td bgcolor=\"#000000\"></td>
</table>
<br>

</body>
</html>

END

CGI hab ich mir noch nich angeschaut, bin Perl-Newbee (Neuling) ...

Datum: 20.09.2005-16:17

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Hi,

mit dem code unten hast Du Zugriff auf Deine input Felder. Du wirst trotzdem nicht umhin kommen, Dich mit dem CGI Modul zu beschäftigen. Dann wirst Du hoffentlich auch Deinen HTML-String umbauen wollen, denn so ist es ziemlich unübersichtlich.


#!/usr/bin/perl -w

use strict;
use CGI qw(:standard); # damit Du auf die Input Felder zugreifen kannst (per param)
use CGI::Carp qw(fatalsToBrowser); # Fehlermeldungen im Browser anzeigen (fürs Debugging)

print "Content-type: text/html\n\n";

print <<"END";
<html>
<head>
<p style="text-align:center;">
<Font size="5"><u>Oo.Sugoku.oO</u></font>
</p>

<p style="text-align:center;">
<Font size="4">...digital collapse...</font>
</p>
</head>
<body bgcolor=\"CCCCCC\">

<br>
<!-- FORMULAR!!! --> <form method="POST">
<table border=\"2\" heigh=\"200\" width=\"200\" align=\"center\" cellspacing=\"5\" cellpadding=\"3\">

<td bgcolor=\"#000000\"></td>

<tr>
<th bgcolor=\"#000000\"></th>
<td><input id=\"1_1\" name=\"1_1\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_2\" name=\"1_2\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_3\" name=\"1_3\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<th bgcolor=\"#000000\"></th>
<td>\n<input id=\"1_4\" name=\"1_4\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td>\n<input id=\"1_5\" name=\"1_5\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td>\n<input id=\"1_6\" name=\"1_6\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<th bgcolor=\"#000000\"></th>
<td><input id=\"1_7\" name=\"1_7\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_8\" name=\"1_8\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<td><input id=\"1_9\" name=\"1_9\" type=\"text\" size=\"1\" maxlength=\"1\"></td>
<th bgcolor=\"#000000\"></th>
</tr>

<td bgcolor=\"#000000\"></td>
</table>
<!-- SUBMIT BUTTON --><input type=\"submit\" name=\"submit\">
<!-- ENDE FORMULAR!!! --> </form>
<br>

</body>
</html>
END

if (param('submit')) { # wurde submit angeklickt?
for (1..9) { # gehe durch alle 1_1 bis 1_9 durch
print "1_$_: ",param("1_$_"), '<br>'; # ausdrucken, oder auch Variablen zuweisen
}
}


Gruss,
svenXY

Datum: 20.09.2005-17:20

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Jau, vielen Dank, dass Du dir Zeit für mein Problem genommen hast,...wird mir sicherlich sehr weiterhelfen.

Datum: 20.09.2005-18:54

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Vielleicht auch mal mit nem Template-System wie HTML::Template beschäftigen. Dann kann man Programm schön von Darstellung trennen!

Datum: 21.09.2005-12:32

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Funzt alles prima, nur hab ich jetzt das Bedürfnis deinen Quellcode für alle Felder umzusetzen,...sind schließlich 9x9 Felder und nich 1x9. Wie schreibe ich das?

if (param('submit'))
{ # wurde submit angeklickt?
for (1..9)
{ # gehe durch alle 1_1 bis 1_9 durch
print "1_$_: ",param("1_$_"), '<br>'; # ausdrucken, oder auch Variablen zuweisen
}
In diesem Teil muss was geändert werden, richtig?
Hab schon mehrere Sachen ausprobiert, jedoch ohne Erfolg. Ich lass dich auch am Ruhm teilhaben, den ich für mein Spiel erhalte :-)

Datum: 21.09.2005-10:46

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Danke, bin scho selber drauf gekomm :-) ganz einfach ,...mensch mensch bin ich n Noob in Perl ;-)

Datum: 21.09.2005-10:53

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Sehr gut! Hilfe zur Selbsthilfe gebe ich immer am liebsten!

Vile Glück noch - und schick mir den link, wenn Dein Spiel fertig ist...

svenXY

Datum: 21.09.2005-11:23

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
joa, ich bins wieder... ich hab das ganze nu so geschrieben:

if (param('submit'))
{ # wurde submit angeklickt?
for (my $i=1;$i <= 9; $i++)
{
for (my $j=1;$j <= 9; $j++)
{
print $i."_".$j . ":" . param($i."_".$j) . '<br>'; # ausdrucken, oder auch Variablen zuweisen
}
}
und nu möchte ich, dass zufallszahlen von 1-9 generiert werden und in die eingabefelder geschrieben werden, nur nich in jedes feld. Ich bräuchte also ...

for (my $x=1;$x <= 9; $x++)
{
for (my $y=1;$y <= 9; $y++)
{
my $randx=int(rand(9));
my $randy=int(rand(9));
}
{
richtig? nur wie bekomme ich dir zufallszahlen in die eingabefelder und wie mach ich ihm klar, dass er nicht in jedes Feld ne Zahl schreiben soll, soll ja scließlich irgendwann n rätsel bzw. Spiel werden?
Thx

Datum: 22.09.2005-11:56

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Ich bin mir nicht im Klaren, was genau Du willst...
Soll in einige zufällige Felder jeweils eine zufällige Zahl von 1-9 eingefügt werden?

Datum: 22.09.2005-12:17

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Jaaa, genau das möchte ich :-) also,...das ganze spiel sieht so aus...:
Das spielfeld besteht aus 9x9 eingabefeldern. also aus 9 3x3 feldern. also einem quadrat aus 3x3 feldern. In einigen Feldern sollen vom PC generierte zufallszahlen stehen und einige felder sollen leer bleiben, die kann der User dann ausfüllen. Regeln: In einer Zeile sowei in einer Spalte dürfen nur die Zahlen 1-9 stehen und dürfen sich nicht wiederholen. Das gleiche gillt für jedes der 3x3 felder. (Nur Zahlen 1-9 und nur ein mal pro 3x3-Feld). Bei Rückfragen bitte an mich wenden :-)

Datum: 22.09.2005-12:37

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Im Wesentlichen musst Du erst per srand festlegen, in welche Felder Du Zahlen reinschreiben willst.

Falls Du noch das 1_1 bis 9_9 Format verwendest, wäre das also x mal (x ist die Anzahl der Felder, die Du ausfüllen möchtest) srand für die X-Achse und die Y-Achse plus eventuell einige mehr wenn Du eine Kombination aux X_Y zufällig zweimal erhälst.

Daraus baust Du Dir einen Hash. Dann generierst Du für jedes Paar im Hash einen Zufallswert und zuletzt trägst Du die Werte an der richtigen Stelle in Dein Formular ein.

Dazu ist es wahrscheinlich einfacher, mit dem CGI-Modul zu arbeiten und nicht Perl und HTML code so zu mischen, wie Du es bisher getan hast. Möglich ist es, aber eben komplizierter und schwerer zu lesen.

svenXY

Datum: 22.09.2005-13:06

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
OK, hier ist mal ein wenig Beispielcode, allerdings für ein 3x3 Feld (das Ganze auf 9 x 3x3 zu bringen ist dann Deine Aufgabe...)

#!/usr/bin/perl -wT

use strict;
use CGI qw(:standard *table); # einfacherer Aufruf von Methoden
use CGI::Carp qw(fatalsToBrowser); # Fehlermeldungen im Browser anzeigen

my $filled = 4; # 4 Felder sollen ausgefllt werden
my %fields;

print
header,
start_html('-title' =>'a game I still don\'t understand');

for (1..$filled) { # Zufallswerte für (4) zufällige Felder generieren
my $a =int(rand(srand)*3)+1;
my $b = int(rand(srand)*3)+1;
my $value = int(rand(srand)*9)+1;
$fields{$a . '_' . $b} = $value;
}

print start_table({'-border' => 1}); # Tabelle erzeugen

foreach my $a (1..3) {
print Tr(); # Tabellenzeile erzeugen
foreach my $b (1..3) { # Tabellenzelle erzeugen
print td(
textfield( # <INPUT> tag erzeugen
'-size' => 1,
'-maxlength' => 1,
'-name' => $a . '_' . $b,
'-value'=> $fields{$a . '_' . $b}
)
), "\n";
}
}

print end_table, end_html;


Das sollte Dir weiterhelfen.

Der code sieht so auch wesentlich übersichtlicher aus und Du musst kaum HTML mit Perl Code mischen.

Gruss,
svenXY

Datum: 22.09.2005-14:03

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
Das is nicht so schlimm, dass du das Spiel nicht verstehst. Ich schicks dir, bzw. packs ins Forum sobald es fertich is. Dann schaust du es dir an und sachst....ahsooo...:-) Thx für den Quellcode, ich solle die Rechte für das Spiel an dich übergben, schließlich hast du es ja fast ganz allein geschrieben. Thx

Datum: 22.09.2005-14:46

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
kannst mich ja in den credits erwähnen...

Datum: 22.09.2005-15:17

Beitragre: Probs mit Perl-HTML-Spiel
Seitenanfang
und? isses fertig?
svenXY

Datum: 17.10.2005-14:56

-






-
-