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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2013, 11:40   #21
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Код:
cout<<"\n у вас "<<q[t]<<" очка\n"; 
sum+=q[t];
char a;
cout<<"Еще карту нажмите y\n";
        cin>>a;
if(a==121)
         karta();
Попробуйте так...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 13.06.2013, 11:52   #22
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

да спасибо

для игрока создал а как подключить компьютер????

Код:
#include <iostream>
#include<ctype.h>
#include<time.h>

using namespace std;
 
	void mast()
{
	setlocale(LC_ALL,"rus");
	char a;
	srand(time(NULL));
	a=rand()%(6+1-3)+3;
	cout<<a;
}

void karta()
{
    const int s = 13;
    char *kart[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "V", "D", "K", "T"};
    int q[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 3, 4, 11};
    srand(time(NULL));
	int sum=0;
       int t;
		while(sum<21){	
	   t = rand()%s;
        cout<<kart[t];
		mast();
		cout<<" = "<<q[t]<<" очка\n"; 
		char a;
		sum+=q[t];
		  cout<<"у Вас "<<sum<<" очков\n";
		cout<<"Еще карту нажмите y\n";
        cin>>a;
		if(a==121)
			sum;
		else
			sum=22;
		}
	}
int main(){
	karta();
	}
mixon-21 вне форума Ответить с цитированием
Старый 13.06.2013, 12:08   #23
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Вы хотите организовать игру с компьютером... ??? По подробнее напишите, что вы хотите.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 13.06.2013, 12:45   #24
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
#include <iostream>
#include <time.h>
#include <cstdlib>

using namespace std;

const int s = 13;
char *kart[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "V", "D", "K", "T"};
int q[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 3, 4, 11};

int
player()
{
    int sum = 0, t;
    char a;
    do {
        t = rand() % s;
        cout << kart[t] << char(rand()%(4)+3) << " = " << q[t] << " очка (всего " << (sum += q[t]) << ")" << endl;
        if (sum > 21)
            return sum;
        cout << "Еще карту нажмите y\n";
        cin >> a;
    } while (a == 'y');
    return sum;
}

int
computer()
{
    int sum = 0, t;
    do {
        t = rand() % s;
        sum += q[t];
        if (sum > 21)
            return sum;
    } while (rand() % (3  - (sum > 15)));
    return sum;
}

int
main()
{
    setlocale(LC_ALL,"rus");
    srand(time(NULL));
    int pl = player();
    if (pl > 21) {
        cout << "Вы проиграли (всего " << pl << ")" << endl;
    } else {
        int co = computer();
        if (co > 21 || pl > co) {
            cout << "Вы выиграли с " << pl << " против компьютера (" << co << ")" << endl;
        } else {
            cout << "Вы проиграли с " << pl << " против компьютера (" << co << ")" << endl;
        }
    }
}
Не уверен в шансах компьютера (нужно дорабатывать "интеллект" компьютера).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.06.2013, 12:58   #25
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Вы хотите организовать игру с компьютером... ??? По подробнее напишите, что вы хотите.
Да хочу организовать игру с компьютером. Но чтобы мои и карты компьютера
выводились на экран.
mixon-21 вне форума Ответить с цитированием
Старый 13.06.2013, 13:05   #26
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Цитата:
Сообщение от mixon-21 Посмотреть сообщение
чтобы мои и карты компьютера выводились на экран.
Код:
int
player()
{
    cout << "Игрок" << endl;
    int sum = 0, t;
    char a;
    do {
        t = rand() % s;
        cout << kart[t] << char(rand()%(4)+3) << " = " << q[t] << " очка (всего " << (sum += q[t]) << ")" << endl;
        if (sum > 21)
            return sum;
        cout << "Еще карту нажмите y\n";
        cin >> a;
    } while (a == 'y');
    return sum;
}

int
computer()
{
    cout << "Компьютер" << endl;
    int sum = 0, t;
    do {
        t = rand() % s;
        cout << kart[t] << char(rand()%(4)+3) << " = " << q[t] << " очка (всего " << (sum += q[t]) << ")" << endl;
        if (sum > 21)
            return sum;
    } while (rand() % (3  - (sum > 15)));
    return sum;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.06.2013, 13:42   #27
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
int
player()
{
    cout << "Игрок" << endl;
    int sum = 0, t;
    char a;
    do {
        t = rand() % s;
        cout << kart[t] << char(rand()%(4)+3) << " = " << q[t] << " очка (всего " << (sum += q[t]) << ")" << endl;
        if (sum > 21)
            return sum;
        cout << "Еще карту нажмите y\n";
        cin >> a;
    } while (a == 'y');
    return sum;
}

int
computer()
{
    cout << "Компьютер" << endl;
    int sum = 0, t;
    do {
        t = rand() % s;
        cout << kart[t] << char(rand()%(4)+3) << " = " << q[t] << " очка (всего " << (sum += q[t]) << ")" << endl;
        if (sum > 21)
            return sum;
    } while (rand() % (3  - (sum > 15)));
    return sum;
}
У компьютера один вариант проиграш.
mixon-21 вне форума Ответить с цитированием
Старый 13.06.2013, 14:45   #28
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Я покрутил "компьютер" отдельно - примерно на 3-5 раз набирает больше 21.
Нужно придумать "более выигрышную" логику для компьютера.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.06.2013, 14:49   #29
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Я покрутил "компьютер" отдельно - примерно на 3-5 раз набирает больше 21.
Нужно придумать "более выигрышную" логику для компьютера.

Код:
int karta_comp()
{
    const int s = 13;
    char *kart[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "V", "D", "K", "T"};
    int q[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 3, 4, 11};
    srand(time(NULL));
	int sum=0;
       int t;
	   char a;
		while(sum<17){
	   t = rand()%s;
        cout<<kart[t];
		mast();
		cout<<" = "<<q[t]<<" очка\n"; 
		sum+=q[t];
		  cout<<"у компютера "<<sum<<" очков\n\n";        
		}
		  return sum;
	}
не получается сравнение
кто у кого выиграл

Код:
	
	if(sum_igrok<=21 || sum_igrok>sum_comp || sum_comp>21){
		cout<<"Вы выиграли - "<<sum_igrok<<"  против компютера - "<<sum_comp;
	}
	else
		if(sum_comp > sum_igrok )
		cout<<"Вы проиграли - "<<sum_igrok<<"  против компютера - "<<sum_comp;
		else
			cout<<"Вы прoиграли\n";
	}
mixon-21 вне форума Ответить с цитированием
Старый 13.06.2013, 15:32   #30
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

игрушка получилась всем спасибо


Код:
#include <iostream>
#include<ctype.h>
#include<time.h>

using namespace std;
 
	void mast()
{
	setlocale(LC_ALL,"rus");
	char a;
	srand(time(NULL));
	a=rand()%(6+1-3)+3;
	cout<<a;
}

int karta()
{
    const int s = 13;
    char *kart[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "V", "D", "K", "T"};
    int q[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 3, 4, 11};
    srand(time(NULL));
	int sum=0;
       int t;
	   char a;
		do{	
	   t = rand()%s;
        cout<<kart[t];
		mast();
		cout<<" = "<<q[t]<<" очка\n"; 
		sum+=q[t];
		  cout<<"у Вас "<<sum<<" очков\n\n";
		cout<<"Еще карту нажмите y\n\n";
        cin>>a;
		}while(a =='y');
		return sum;
	}

int karta_comp()
{
    const int s = 13;
    char *kart[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "V", "D", "K", "T"};
    int q[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 3, 4, 11};
    srand(time(NULL));
	int sum=0;
       int t;
	   char a;
		while(sum<17){
	   t = rand()%s;
        cout<<kart[t];
		mast();
		cout<<" = "<<q[t]<<" очка\n"; 
		sum+=q[t];
		  cout<<"у компютера "<<sum<<" очков\n\n";        
		}
		  return sum;
	}
int main(){
	int sum_igrok;
	int sum_comp;
	sum_igrok=karta();
	sum_comp=karta_comp();
	
	
	if((sum_igrok<=21 && sum_igrok>=sum_comp) || sum_comp>21){
		cout<<"Вы выиграли - "<<sum_igrok<<"  против компютера - "<<sum_comp<<endl;
	}
	else
		if(sum_comp > sum_igrok )
		cout<<"Вы проиграли - "<<sum_igrok<<"  против компютера - "<<sum_comp<<endl;
		else
			cout<<"Вы проиграли - "<<sum_igrok<<"  против компютера - "<<sum_comp<<endl;
	}
mixon-21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация строк bakanaev Общие вопросы Delphi 4 14.03.2013 14:22
Последовательная генерация строк(с началом из определённой точки) vlad.md Общие вопросы Delphi 3 11.12.2012 18:09
Ввести последовательность строк. Подсчитать количество совпадающих строк. на языке SHELL lj23lj Фриланс 1 30.03.2012 16:41
Как сделать автозаполнение строк, которые зависят от строк другого столбца путвфда_иил Microsoft Office Excel 19 29.08.2010 17:16
Добавление строк в таблицу с вставкой в них текста и чередованием фона строк Centurion2xx6 Microsoft Office Word 9 30.03.2010 11:00