Vinnaren i pepparkakshustävlingen!
2016-09-12, 16:03
  #1
Medlem
Hej!

Har fastnat på mitt tändsticksspel. Spelet skall gå till såhär.

I det här spelet för två spelare börjar spelarna med att det ligger femton tändstickor på bordet. Spelarna turas om att ta tändstickor från bordet. När en spelare ska ta tändstickor får hon välja mellan att ta 1, 2 eller 3 tändstickor. Den som tar sista stickan är vinnaren av partiet. Du ska skriva ett program som låter användaren spela detta spel mot datorn. Programmet ska slumpa vem som börjar. Datorn skall spela optimalt i mening att om den kan säkra en seger så skall den göra det. Det betyder bland annat att om datorn börjar kommer den alltid att vinna. Om den vid ett drag inte kan säkra segern får den göra valfritt drag.


min kod

int computer, user, result, totalsticks = 15;

printf("The computer will randomly select who will start. There are total of 15 matchsticks. Please select between 1-3 matchsticks. The last user who selects the last matchstick will loose.\n");

srand(time(NULL));
rand()%2;

result = rand()%2;

while (totalsticks > 1)
{

if (result == 0)
{
printf("The computer draws: %d\n", computer);
result = 1;
}
else
{
printf("Please draw between 1-3 matchsticks.");
scanf("%d", &user);
result = 0;
}


Jag tror att datorn måste plocka ut 2st om den börjar och därefter plocka ut beroende vad user plocka ut. Tips på hur man gör det? dessutom måste jag skriver ut tändstickorna i "|" och inte siffror, tips?
Citera
2016-09-12, 16:48
  #2
Medlem
svallerbyttans avatar
Optimalt är att alltid försöka plocka så att det blir 4n stickor kvar.

Blir något sånt här i pseudo:
Kod:
sticksToPick = (totalMatchsticks) % 4
if(sticksToPick == 0)
   
sticksToPick Random(1...3); 
__________________
Senast redigerad av svallerbyttan 2016-09-12 kl. 17:11. Anledning: Ändrar till 4n
Citera
2016-09-12, 17:06
  #3
Medlem
rjonssons avatar
Citat:
Ursprungligen postat av svallerbyttan
Optimalt är att alltid försöka plocka så att det blir 4n+1 stickor kvar.
Är det inte 3n+1 som är den optimala strategin
Citera
2016-09-12, 17:10
  #4
Medlem
svallerbyttans avatar
Citat:
Ursprungligen postat av rjonsson
Är det inte 3n+1 som är den optimala strategin

4n ska det nog vara, inte 4n+1. Du vill ha 4*n eftersom du alltid kan matcha en siffra mellan 1-3 med en annan siffra mellan 1-3 så att summan blir 4.
__________________
Senast redigerad av svallerbyttan 2016-09-12 kl. 17:13.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback