Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2014, 14:53   #1
TonySokur
Новичок
Джуниор
 
Регистрация: 01.12.2014
Сообщений: 1
По умолчанию C++ Игра Баше

Нужно исправить данный код под задание. Не могу понять как.

Задание: разработать программную модель следующей логической игры для двух игроков (пользователь-компьютер), реализовав выигрышную стратегию для компьютера: На стол выкладывается достаточно большая кучка спичек (не менее 50). Каждый игрок при своём ходе берёт спички из кучки. Нужно взять, по крайней мере, одну и не более чем вдвое больше, чем взял предыдущий игрок. Выигрывает тот, кто берёт последнюю спичку.

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
setlocale(LC_ALL,"rus");
system("color F1");
system("cls");

cout<<"\n\t\tИгра Баше\n";

int n,k,m,p,b;
double z;
b=0;
srand(time(NULL));
n=rand()%10+1;
n=n*3;
cout<<"\n\tИсходное количество предметов "<<n;

k=rand()%2+2;
cout<<"\n\tМожно выбрать от 1 до "<<k;

p=rand()%2+1;
if (p==1) cout<<"\n\tНачинает компьютер ";

else 
cout<<"\n\tНачинаете Вы ";


m=n;
do {
if (p==1) 
{ 

{
b=rand()%k+1;
m=m-b;
p=0;
if (m<=0)
{
cout<<"\n\tПоследний предмет взял компьютер, ВЫЙГРАЛИ ВЫ! ";

break;
}
}

cout<<"\n\tКомпьютер взял "<<b;

cout<<"\n\tМожно выбрать от 1 до "<<k;

}
if (p!=1)
{ 
do 
{
cout<<"\n\tСколько Вы берете?";

scanf("%d",&b); 
if (b<=0 || b>k || b>m){
cout<<"\n\tНеправильное значение";

b=0;
if (m<=0)
{
cout<<"\n\tПоследний предмет взяли Вы, ВЫЙГРАЛ КОМПЬЮТЕР!";

break;
}
}

}
while (b<0 && b>k && b>m);
}

m=m-b;

if (m<=0)
{
if (p==0)
{
cout<<"\n\tПоследний предмет взяли Вы, ВЫЙГРАЛ КОМПЬЮТЕР!";

}

}else{
cout<<"\n\tОсталось предметов "<<m;


if(p==1){p=2;}
else{
p=1;}
}

}while(m!=0);

getch();
}

Последний раз редактировалось Stilet; 01.12.2014 в 15:01.
TonySokur вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра на С++ fawn Помощь студентам 0 19.12.2011 01:47
игра на С# NickLid Помощь студентам 1 30.11.2011 10:41
Игра NzBeat Паскаль, Turbo Pascal, PascalABC.NET 1 26.04.2011 22:07
Игра Баше. Что-то уже написано. Нужно разобраться LuckyStarKsu Общие вопросы C/C++ 1 17.12.2010 17:01
Задача Баше (Паскаль) smail1701 Помощь студентам 0 03.12.2010 18:26