View Single Post
Hei, alle sammen.

Jeg har to spørsmål. Det første er at jeg prøver å lage et enkelt rundebasert spill, og jeg prøver å få til at det skal være X antall runders delay fra spilleren gjør en handling til den trer i kraft. Jeg tenker at det må være en funksjon som tar antall runders delay som argument, men da blir problemet at man ikke kommer ut av funksjonen før handlingen er utført.
Videre tenkte jeg at jeg måtte lage en if-else som sjekket den globale variabelen nRounds, men da blir problemet at hvis jeg lager en funksjon á lá dette:

Kode

int delay(const int* nRounds, int nDelay) {
nTarget = (nRounds + nDelay)
(...)
}
Hver gang programmet kommer til delay() blir det opprettet en ny nTarget, også blir delayen konstant dyttet fremover og aldri utført. Jeg vedder på at det dreier seg om dynamisk minne eller static. Jeg kan lite om det. Håper noen skjønner hva jeg spør om, og kan hjelpe.
Forresten, så må selvsagt funksjonen kunne brukes mange ganger, og av flere brukere samtidig. Altså hvis en oppgave ikke er ferdig utført, må man fortsatt kunne sette i gang en ny prosess. Rotete forklart, men jeg håper dere skjønner.


Spørsmål nummer to er at jeg vil at det i nevnte spill skal være mulig å skrive inn hvor mange spillere det skal være med, og så skal programmet opprette X antall kopier av klassen Person. Jeg har laget et tullete eksempel som kanskje hjelper til med å forklare hva jeg mener:

Kode

// Person.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include "CPerson.h" // Definerer class Person.
using namespace std;

int main()
{
	cout << "How many players? ";
	int nPersons;
	cin >> nPersons;

	for(int i=1; i <= nPersons; i++) {
		Person Person_i;
		}

	system("pause");

    return 0;
}
Linjen Person Person_i; er nøkkelen. Den skal liksom i tur og orden opprette det antallet objekter av klassen Person som brukeren skrev inn.
Lar dette seg gjøre?
På forhånd takk for all hjelp.
Sist endret av Bolletott; 16. juni 2012 kl. 16:37.