Slettet bruger
09. juli 2007 - 17:43
Der er
7 kommentarer og
1 løsning
lave en terning
hejsa allesammen ..
Jeg skal ha lavet mig en terning, som tilfældigt viser fra 1 - 6.
men er meget ny i C++, og har derfor ikke rigtig nogen ide om hvad jeg skal bruge :)
Nogen der kan hjælpe mig igennem det? og forklare hvad der gøres og hvorfor ?:)
MvH. W.
int main(void)
{ clrscr();
int k;
float i;
clock_t s,f;
randomize();
f=clock();
while(getch()==' ')
{/* cout<<random(100)<<'\n'; /*/
s=clock();
i=(s-f)/CLK_TCK;
if(i>0.7)
break;
clrscr();
cout<<(k=rand()%5+1);
f=clock();
} clrscr();
cout<<"the no' u got"<<'\t';
cout<<k;
getch();
return 0;
}
fande denne tror den bruger klokken for at den bliver rigtig random der er nogel rand generator koder er altid er ens... så ved at bruge klokken bliver den merer tilfældig
her er en merer...
#############################################################
#Dice_roller.py
#
#Purpose: A random number generation program that simulates
# various dice rolls.
#Author: Cody Jackson
#Date: 4/11/06
#
#Copyright 2006 Cody Jackson
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#############################################################
import random #randint
def randomNumGen(choice):
"""Get a random number to simulate a d6, d10, or d100 roll."""
if choice == 1: #d6 roll
die = random.randint(1, 6)
elif choice == 2: #d10 roll
die = random.randint(1, 10)
elif choice == 3: #d100 roll
die = random.randint(1, 100)
else: #simple error message
print "Shouldn't be here. Invalid choice"
return die
def multiDie(dice_number, die_type):
"""Add die rolls together, e.g. 2d6, 4d10, etc."""
#---Initialize variables
final_roll = 0
val = 0
while val < dice_number:
final_roll += randomNumGen(die_type)
val += 1
return final_roll
def test():
"""Test criteria to show script works."""
_1d6 = multiDie(1,1) #1d6
print "1d6 = ", _1d6,
_2d6 = multiDie(2,1) #2d6
print "\n2d6 = ", _2d6,
_3d6 = multiDie(3,1) #3d6
print "\n3d6 = ", _3d6,
_4d6 = multiDie(4,1) #4d6
print "\n4d6 = ", _4d6,
_1d10 = multiDie(1,2) #1d10
print "\n1d10 = ", _1d10,
_2d10 = multiDie(2,2) #2d10
print "\n2d10 = ", _2d10,
_3d10 = multiDie(2,2) #3d10
print "\n3d10 = ", _3d10,
_d100 = multiDie(1,3) #d100
print "\n1d100 = ", _d100,
if __name__ == "__main__": #run test() if calling as a separate program
test()
Slettet bruger
10. juli 2007 - 13:05
#7
Bare for at undgå forvirring: bauerdata og webdesigner har henvist til koder som er skrevet i Python som ikke er det samme som C++...
/* Først inkluderer vi header filer der indeholder informationer
om de funktioner vi skal bruge. Måske hedder de ikke de samme
i dit tilfælde - det kommer an på compileren. Fx. compilerer
jeg til Windows med MS Visual C++. */
#include "stdafx.h" // Den skal bare altid med når man laver windows
#include <stdlib.h> // Denne indeholder rand() og srand()
#include "time.h" // Denne indeholder time()
int _tmain(int argc, _TCHAR* argv[])
{
int dice;
/* Her seeder vi randomizeren med den aktuelle tid. Dette skyldes det som
webdesigner påpejer (hvis du ikke gør det får du samme tal ud hver gang. */
srand ( time(NULL) );
/* Her genererer vi det tilfældige tal. Rand() returnerer et tal mellem
1 og 32767 (normalt). Den måde vi får et tal mellem 1 og 6 er ved at bruge
operatoren "%" - som er "resten" når man dividerer med fx. 6. Vi lægger 1 til
for at få tal mellem 1 og 6 i stedet for 0 og 5. */
dice = (rand() % 6) + 1;
/* Denne linie printer tallet ud på skærmen. */
printf("Output: %d\n", dice);
/* Her returnerer programmet værdien, hvilket ikke er det samme som
at skrive den ud på skærmen. */
return dice;
}
/*
Hvis du i stedte for VC++ bruger f.eks. gcc compileren så skal din main se
lidt anderledes ud: int main. (int argc, const char* argv[])
Programmer lukker automatisk, så du kan sikkert ikke nå at se outputtet. Hvis
du vil undgå dette kan du indsætte kommandoen system("pause") før return eller
du kan køre programmet fra en i forvejen åben terminal.
*/