Hej på er, jag behöver hjälp med programmering, i A kursen.
Har en uppgift som går ut på att göra ett spel "Dansken", nedan kommer reglerna:
Spelets regler:
Man använder 6 st tärningar.
Sist till 0 vinner.
Alla spelare startar med 30 poäng.
Spelet startar med att förste spelare slår tärningarna. Målet är att få ihop 30 poäng varje omgång. Spelaren får spara en eller flera tärningar efter varje slag men måste spara minst en varje gång. Om spelaren har fått 30 poäng när alla tärningarna är färdigslagna går turen vidare till nästa spelare.
Uppnår inte spelaren 30 poäng noteras skillnaden mellan 30 och den uppnådda summan som en minuspost i protokollet, dvs spelaren tappar poäng.
Överskrider spelaren däremot 30 poäng erhåller spelaren ett extra slag. Syftet med detta extra slag är att frånta en medspelare dennes poäng. Spelaren skall slå den siffra som överskrider 30. Exempel: Spelaren slår 32 poäng. I extraslaget skall alltså siffran 2 slås. Minst en 2:a måste erhållas per slag. När ingen 2:a erhålls längre (kan inträffa redan i första försöket) går turen vidare till näste spelare. Det antal poäng som erhölls (säg att spelaren slog 3 st 2:or, dvs 6 poäng) räknas ifrån summan hos spelaren närmast före ("till höger om") spelaren (förste man sänker för siste man i turordningen).
Så snart en spelare har kommit till 0 poäng, har denne förlorat och utgår ur spelet. Spelet fortsätter tills endast EN spelare fortfarande har poäng kvar.
Har börjat, men kört fast, skulle vara tacksam om någon kunde hjälpa mig med det!
Här kommer koden jag börjat med:
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
void slumpgen (int tarning[], int tarningkvar);
int main (){
int summa; //Ska visa summan efter varje tärning man sparat, ska fixas
char yn; //Om man vill spara mer än en tärning
int tarningnmr; //Gör så att man kan välja vilken tärning man vill spara och erhålla den poäng som tärningen visar, ska fixas
int tarningkvar; //Hur många tärningar som finns kvar
int spelare; //Antal spelares om ingår
int tarningar [6]; //Fält med tärningarna i
int liv [20]; //Max antal spelare = 20, antalet poäng från början skrivs ut i for-loopen
char val; // Olika val för menyn
system("mode 83,40");
bool fortsatt = true;
do{
cout << " MENY \n";
cout << "1. Start game \n";
cout << "2. Instructions\n";
cout << "3. Credits\n";
cout << "4. Avsluta\nMake your choise: ";
cin >> val;
system("cls");
switch(val){
case '1': //Spelet
cout << "Choose players, max 20: ";
cin >> spelare;
for (int n=0; n<spelare; n++) //Antal spelare
{
liv [n]=30; //Hur mycket liv från början, spelarna ska tilldelas
}
system("cls");
cout<< "Current score:" <<endl;
cout<< "Player " << setw(6) << "Score \n" <<endl; //Ställer upp spelare och poäng
for (int x=0; x<spelare; x++){
cout<< "Player" << x+1 << setw(6)<< liv[x] <<endl;
}
system("pause");
system("cls");
while (spelare>1){
for (int i=0; i<spelare; i++){ //Visar vems omgångm det är
cout<< "Now playing: Player " << i+1 <<endl;
tarningkvar=6;
for (int c=0; c<tarningkvar; c++){
slumpgen (tarningar, tarningkvar); // Slumpgenerator här för att slumpa fram tärningar ur switch-case-satsen
switch (tarningar[c]){
case 1:
cout<< "Dice nr: " << c+1 <<endl;
cout<< "_______" << endl;
cout<< "| |" << endl;
cout<< "| O |" << endl;
cout<< "|_____|" << endl;
break;
case 2:
cout<< "Dice nr: " << c+1 <<endl;
cout<< "_______" << endl;
cout<< "|O |" << endl;
cout<< "| |" << endl;
cout<< "|____O|" << endl;
break;
case 3:
cout<< "Dice nr: " << c+1 <<endl;
cout<< "_______" << endl;
cout<< "|O |" << endl;
cout<< "| O |" << endl;
cout<< "|____O|" << endl;
break;
case 4:
cout<< "Dice nr: " << c+1 <<endl;
cout<< "_______" << endl;
cout<< "|O O|" << endl;
cout<< "| |" << endl;
cout<< "|O___O|" << endl;
break;
case 5:
cout<< "Dice nr: " << c+1 <<endl;
cout<< "_______" << endl;
cout<< "|O O|" << endl;
cout<< "| O |" << endl;
cout<< "|O___O|" << endl;
break;
case 6:
cout<< "Dice nr: " << c+1 <<endl;
cout<< "_______" << endl;
cout<< "|O O|" << endl;
cout<< "|O O|" << endl;
cout<< "|O___O|" << endl;
break;
default:
cout<< "ERROR";
break;
}
}
do{
cout<< "Which dice do you want to save?" <<endl; //spara tärningar
cin>> tarningnmr; //ska vara en if-sats i do-loopen för detta
summa = summa + tarningar[tarningnmr]; //Summan för tillfället (funkar inte) ersätt med funktion
cout<< "Current score " << summa <<endl;
cout<< "Do you want to save any more dices? Y or N"; //Om man vill spara mer tärningar loopar denna och gör om do-loopen
cin>> yn;
}
while (yn=='y');
system("pause");
//Om man inte vill spara mer ska den slumpa om så många tärningar som finns kvar
}
}
break;
case '2': //Instruktioner
system("pause");
system("cls");
break;
case '3': //Credits
cout<< "xxxxxx xxxxxxx\n";
system("pause");
system("cls");
break;
case '4':
fortsatt = false;
break;
default:
cout << "Felinmatning.\n\n";
break;
}
}
while (fortsatt);
return 0;
}
//Slumpgenerator
void slumpgen (int tarning[], int tarningkvar){
srand(time(0));
for (int a=0; a < tarningkvar; a++){
tarning [a] = rand()%6+1;
}
}
skulle behöva hjälp så snart som möjligt :)
Laddar forumet…
