Zufallszahlen erstellen lassen C++

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Joergi, 03.07.2006.

  1. Joergi

    Joergi Thread Starter MacUser Mitglied

    Beiträge:
    156
    Zustimmungen:
    0
    MacUser seit:
    20.09.2003
    Wie kann ich mir mit XCode Zufallszahlen erstellen lassen. Mit randomize, wie wir das auf dem Borland compiler gelernt haben, funzt das nicht.
    Die stdlib ist includiert. Ich brauch 3 Zufallszahlen und XCode sagt "error "at this point in file" , "error "randomize" cannot be usedas a function" und in der 3. Version "error "too many arguments to funktion "long int random()".
    Nach x verschiedenen Versuchen sieht das jetzt schon aus, als würde das nie gehen. Weis mir schon keinen Rat mehr, in anderen Foren hab ich auch nix gefunden. Weis jemand Rat ???
    #include <iostream>
    #include <stdio.h>
    #include <curses.h>
    #include <math.h>
    #include <algorithm>
    #include <stdlib.h>

    int main ()
    {
    int wurf1,wurf2,wurf3,sum,gewinn,ergebnis;
    int randomize,zaehler;



    for (zaehler=0;zaehler<10;zaehler++)

    wurf1=random(1,6);
    wurf2=random(1,6);
    wurf3=random(1,6);

    sum=wurf1+wurf2+wurf3;


    if (sum<=14)gewinn=0;
    if (sum=15)gewinn=2;
    if (sum=16)gewinn=5;
    if (sum=17)gewinn=6;
    if (sum=18)gewinn=100;

    ergebnis=ergebnis+(gewinn-1);
    printf("Das ist das %d Spiel",sum);
    printf("GEWINN %d \n ",gewinn);





    return 0;
    }
     
  2. Jools

    Jools MacUser Mitglied

    Beiträge:
    3.015
    Zustimmungen:
    46
    MacUser seit:
    27.11.2005
    Ich kenne mich zwar nicht mit c++ aus aber in C heisst der Befehl nur rand oder srand
     
  3. theHobbit

    theHobbit MacUser Mitglied

    Beiträge:
    725
    Zustimmungen:
    6
    MacUser seit:
    07.08.2005
    Im Borland C (Windows) gab es damals randomize() und Randomize() , dunkle Erinnerungen tauchen auf...

    randomize() != Randomize() !!!

    EDIT:
    Moment mal... wieso hast Du da ein "int randomize, ..." ?
    Definiert man nicht Variablen mit "int ..." ?
    Falls es eine Funktion dieses Namens gibt, kann es keine gleichnamige Variable geben - oder komme ich grad wieder mit C ducheinander? (Hab es nie richtig kapiert... Vererbung war eine ganz tolle Sache - wenn man verstanden hatte wie es funktioniert. Und das hab ich leider nie :hum:)
    Gruss
    -theHobbit-
     
    Zuletzt bearbeitet: 03.07.2006
  4. Joergi

    Joergi Thread Starter MacUser Mitglied

    Beiträge:
    156
    Zustimmungen:
    0
    MacUser seit:
    20.09.2003
    Danke, aber das habe ich schon probiert, da kommen dieselben error messages wie ich sie voran schon gepostet habe.:(
     
  5. weltenbummler

    weltenbummler MacUser Mitglied

    Beiträge:
    11.136
    Zustimmungen:
    3.036
    MacUser seit:
    01.08.2004
    Nimm doch einfach einen Würfel! :hehehe:
     
  6. freke

    freke MacUser Mitglied

    Beiträge:
    274
    Zustimmungen:
    9
    MacUser seit:
    14.02.2005
    Ich habe jetzt nicht Xcode angeworfen, sondern mit dem Editor meiner Wahl deinen Code korrigiert.

    Code:
    #include <stdio.h>
    #include <curses.h>
    #include <math.h>
    #include <stdlib.h>
    
    int main (int argc, char **argv)
    {
    	int i, zaehler, sum, gewinn, ergebnis = 0;
    
    	// Zufallesgenerator initialisieren
    	srandomdev();
    	
    	for (zaehler = 0; zaehler < 10; zaehler++)
    	{
    		sum = 0;
    		
    		// Drei Wuerfe
    		for (i = 0; i < 3; i++)
    			sum += (random() & 5) + 1;
    		
    		// Gewinnberechnung
    		if ( sum <= 14 ) gewinn = 0;
    		if ( sum == 15 ) gewinn = 2;
    		if ( sum == 16 ) gewinn = 5;
    		if ( sum == 17 ) gewinn = 6;
    		if ( sum == 18 ) gewinn = 100;
    
    		ergebnis += gewinn;
    		
    		printf("Das ist das %d. Spiel, Gewinn: %d\n", zaehler, gewinn);
    	}
    
    	printf("Du konntest in %d Spielen einen Gewinn von %d erzielen.\n", zaehler, ergebnis);
    	
    	return 0;
    }
    
    Zuerst einmal ist der Vergleichsoperator bei C == und nicht =. Mit = weist du der Variable sum ständig neue Werte zu, das willst du nicht. Außerdem fehlen bei deiner for-Schleife ein paar wichtige Klammern.
    srandomdev() initalisiert einen Zufallsgenerator, der recht zuverlässig solche Pseudozufallszahlen erzeugt. random() schließlich hat keine Parameter (siehe "man random"). Um im Würfelbereich zu bleiben, MODen wir die Zufallszahl mit 5 und addieren eins drauf, d.h. das Ergebnis liegt zwischen 1 und 6.
     
    Zuletzt bearbeitet: 03.07.2006
  7. Joergi

    Joergi Thread Starter MacUser Mitglied

    Beiträge:
    156
    Zustimmungen:
    0
    MacUser seit:
    20.09.2003
    Das wäre ja zu einfach, vor allem erkläre das meinem Dotzenten:hehehe:
     
  8. Joergi

    Joergi Thread Starter MacUser Mitglied

    Beiträge:
    156
    Zustimmungen:
    0
    MacUser seit:
    20.09.2003
    Das sieht verdammt gut aus, was bedeudet das "argc" und "argv" in der Klammer des main? Scheint irgend ein Integer zu sein, aber für was:kopfkratz: Sorry, wir haben erst vorige Woche angefangen zu programieren. Aber das werde ich gleich mal probieren. Kann mir jemand sagen warum das in der Ausbildung so einfach geht und an meinem Apfel ist der Wurm drin :mad:
     
  9. freke

    freke MacUser Mitglied

    Beiträge:
    274
    Zustimmungen:
    9
    MacUser seit:
    14.02.2005
    Das argc ist die Anzahl der Argumente, die das Programm von der Kommandozeile übergeben bekommt. argv ist das zugehörige Pointer-Array, über das du auf die Argumente zugreifen kannst.
    Du kannst die Klammer auch leeren, ich füge das nur immer der Vollständigkeit halber ein.

    Was hat das mit Apple zu tun? Ich habe das Programm auf meinem Apple geschrieben. ;)
    Vielleicht interpretiert der Compiler von Borland einiges anders, aber ich vertraue da eher auf gcc. Da kannst du deinem Apple wirklich keinen Vorwurf machen. ;)
     
  10. minilux

    minilux MacUser Mitglied

    Beiträge:
    14.738
    Medien:
    12
    Zustimmungen:
    2.152
    MacUser seit:
    19.11.2003
    tach Joergi

    du verwechselst da was int main() heisst das die Funktion main ein int zurückliefert.
    Das was da in Klammer steht sind die Werte die du main übergibst, hier ein int und ein char (kannst du in dem Programm aber weglassen und einfach int main() schreiben)

    P.S.: wie letzte Woche schon mal erwähnt ist an deinem Apfel keinesfalls der Wurm drin, ihr lernt nur nicht plattformunabhängig programmieren (was eigentlich gar nicht soo schwer wäre)


    edit: too late
     
Die Seite wird geladen...

Diese Seite empfehlen