ManuULM - 38
Experte
(offline)
Dabei seit 05.2003
1116
Beiträge
|
|
Geschrieben am: 01.07.2007 um 20:52 Uhr
|
|
Muss in der Schule ein Spiel Programmieren....
Bin jetzt an einer Stelle wo der Computer zwichen 1-4 Schritte gehen kann...
Zitat: int computerZug=anzahlDerZuege%4;
if(computerZug==0)
anzahlDerZuege=anzahlDerZuege+1;
Hab das jetzt mal so im Internet gefunden "anzahlDerZuege%4" ...so meine Frage ist, wasmacht der Befel "anzahlDerZuege%4" anders wie als wenn ich es mit diesem machen würde "anzahlDerZuege = random(4)". Hab das mit dem % nämlich noch nie gesehen...
Hoffe meine Frage ist verstänlich
[DJ K-FLOW | FLOW PRODUCTIONS]
|
|
h3mpti - 38
Profi
(offline)
Dabei seit 05.2007
878
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:00 Uhr
|
|
% bedeutet modulo division, also eine ganzzahl division die den rest zurück gibt.
Beispiel:
5 % 4 = 1, da bei der division der rest 1 übrig bleibt.
|
|
warlock - 38
Profi
(offline)
Dabei seit 11.2005
446
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:03 Uhr
|
|
seh da kein zufalls konstrukt
mag daran liegen das der code ausschnit aleine recht aussage los ist.
wenn die anzahlderZuege durch 4 geteilt den rest null ergibt wird die anzahl der zuege um eins erhöht. wodurch der computer aber immer nur einen zug machen kann.
oder seh ich da was falsch
Kaffee ohne Koffein ist wie seine Schwester zu lecken. Schmeckt richtig, ist aber falsch.
|
|
SpongeBernd - 34
Champion
(offline)
Dabei seit 06.2006
2277
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:04 Uhr
|
|
nur mal so: was wird das für ein Spiel? und warum gerade in C++ ... das geht doch auch einfacher..
|
|
ManuULM - 38
Experte
(offline)
Dabei seit 05.2003
1116
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:05 Uhr
|
|
ich hab das in ner schleife, d.h. der vorgang wird bei jeden zug wiederholt...
aber so wie ich das verstehe, würde ja dann bei der modulo division jedes mal das selber ergebnis raus kommen... tut es aber nicht, es kommt manchmal ne 1, ne 2 oder ne 3 raus
[DJ K-FLOW | FLOW PRODUCTIONS]
|
|
timothy78 - 47
Anfänger
(offline)
Dabei seit 05.2006
6
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:07 Uhr
|
|
genau das ... was mein Vorgänger geschrieben hat ...
Dazu nen kleiner Auszug aus der manpage:
NAME
random, srandom, initstate, setstate - random number generator
SYNOPSIS
#include
long int random(void);
void srandom(unsigned int seed);
char *initstate(unsigned int seed, char *state, size_t n);
char *setstate(char *state);
DESCRIPTION
The random() function uses a non-linear additive feedback random number
generator employing a default table of size 31 long integers to return
successive pseudo-random numbers in the range from 0 to RAND_MAX. The
period of this random
also random() allein erzeugt die ne Zufallszahl zwischen 0 und RAND_MAX
-> random()%4 ne Zufallszahl zwischen 0 und 3
-> random()%4+1 ne Zufallszahl zwischen 1 und 4
falls du nicht immer die gleiche Folge von 'Zufallszahlen' haben willst, nicht vergessen vorher den seed vie srandon zu setzem. Am einfachsten geht das imo mit
srandom(time(NULL)) ...
wenn du das nicht machst ist der seed standardmässig 1, d.h. wie oben gesagt bekommst du immer die gleiche Folgen von Zufallszahlen.
Gruss,
timothy78
|
|
ManuULM - 38
Experte
(offline)
Dabei seit 05.2003
1116
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:07 Uhr
|
|
Zitat von SpongeBernd: nur mal so: was wird das für ein Spiel? und warum gerade in C++ ... das geht doch auch einfacher..
so ein "Nimm-Spiel2, allerdings mit klassen...
ausschnitt aus der aufgabenstellung: Zitat: ...Es werden z.B. 20 (Anzahl kann beliebig angegeben werden) Steichhölzer auf den Tisch gelegt, und die beiden Spieler (Spieler 1 Mensch und Spieler 2 der Computer) dürfen abwechselnd eine, zwei oder drei Steichhölzer nehmen...
[DJ K-FLOW | FLOW PRODUCTIONS]
|
|
warlock - 38
Profi
(offline)
Dabei seit 11.2005
446
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:08 Uhr
|
|
wird die variable anzahlZuege innerhalb der schleife deklariert? weil wenn ja dann würde das sinn machen
Kaffee ohne Koffein ist wie seine Schwester zu lecken. Schmeckt richtig, ist aber falsch.
|
|
ManuULM - 38
Experte
(offline)
Dabei seit 05.2003
1116
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:09 Uhr
|
|
ok danke, dan versuch ich das mal
[DJ K-FLOW | FLOW PRODUCTIONS]
|
|
ManuULM - 38
Experte
(offline)
Dabei seit 05.2003
1116
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:10 Uhr
|
|
hab was bei google gefunden 
Das ist ein Link
[DJ K-FLOW | FLOW PRODUCTIONS]
|
|
warlock - 38
Profi
(offline)
Dabei seit 11.2005
446
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:15 Uhr
|
|
joa dann is klar
da anzahl zuege ned initaliisiert wird, hat es einen random inhalt.
durch die modolo aktion wird dann der wert zu 0-3 gemacht
Kaffee ohne Koffein ist wie seine Schwester zu lecken. Schmeckt richtig, ist aber falsch.
|
|
timothy78 - 47
Anfänger
(offline)
Dabei seit 05.2006
6
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:16 Uhr
|
|
das ja blöd ... da spielt der Computer ja die optimale Strategie, d.h. du kanns als Gegner nur gewinnen, wenn du
1. anfängst und
2. auch diese Strategie fährst ...
Gruss,
timothy78
|
|
warlock - 38
Profi
(offline)
Dabei seit 11.2005
446
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:22 Uhr
|
|
arx total verpeilt.
gibt kein zufall dahinter da nent sich ki
Kaffee ohne Koffein ist wie seine Schwester zu lecken. Schmeckt richtig, ist aber falsch.
|
|
MurseL_LA - 37
Fortgeschrittener
(offline)
Dabei seit 11.2005
62
Beiträge
|
Geschrieben am: 01.07.2007 um 21:34 Uhr
Zuletzt editiert am: 01.07.2007 um 21:36 Uhr
|
|
Zitat von ManuULM: ich hab das in ner schleife, d.h. der vorgang wird bei jeden zug wiederholt...
aber so wie ich das verstehe, würde ja dann bei der modulo division jedes mal das selber ergebnis raus kommen... tut es aber nicht, es kommt manchmal ne 1, ne 2 oder ne 3 raus
doch, es muss nicht immer 1 rauskommen!!!
schau doch
24 % 7 = 3, d.h. es kommt nicht immer null raus!!
Elite braucht kein Motto, man lebt es einfach, weil man als Elite geboren wird!
|
|
warlock - 38
Profi
(offline)
Dabei seit 11.2005
446
Beiträge
|
|
Geschrieben am: 01.07.2007 um 21:36 Uhr
|
|
dann nimt sich der pc auch 3 und ned nur 1
Kaffee ohne Koffein ist wie seine Schwester zu lecken. Schmeckt richtig, ist aber falsch.
|
|
uwebaier - 36
Halbprofi
(offline)
Dabei seit 06.2005
124
Beiträge
|
Geschrieben am: 01.07.2007 um 22:07 Uhr
Zuletzt editiert am: 01.07.2007 um 22:10 Uhr
|
|
Ich hätt da auch ne Frage:
Ich mach auch grad was mit Zufall aber ab und zu ergeben sich absolute Müllzahlen. Um es zu verdeutlichen poste ich mal hier den Quelltext und gebe hier den download von dem Prog an. ich hoffe jemand kann mir helfen.....
int farbe[5][2], spieler=0, karte=0, ablauf=18;
float wert[5][2];
for (ablauf=18; ablauf>0; ablauf--)
{
farbe[spieler][karte]=1+random(4);
wert[spieler][karte]=7+random(5);
karte++;
if (karte>2)
{
spieler++;
karte=0;
}
}
Die Ausgabe Poste ich jetz nich, thx for every help
UT3 Sucks ^^
|
|