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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 00:54   #1
volk00
 
Регистрация: 07.12.2013
Сообщений: 9
По умолчанию Помогите починить программу c/c++

Код:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<time.h>
#include<windows.h>
#include<conio.h>
#include<string.h>
using namespace std;
void gmindstr(char* a,char* b,char* c,char* d,char* z,char* y,char* x,char* w);
int main()
{
    char mnch='Y';
    int swh;
    while((mnch=='Y')||(mnch=='y'))
    {
        system("CLS");
        cout<<"Mastermind the game" << endl;
        cout<<"Press the Enter Key to continue" <<endl;
        getchar();
        cout<<"Please Choose an Option:" <<endl;
        cout<<"(1).Start Game" <<endl;
        cout<<"(2).Help" <<endl;
        cout<<"(3).Quit" <<endl;
        cout<<"Number Selection -> ";
        cin>>swh;
        switch(swh)
        {
        case 1:gmindstr("","","","","","","","");
                    cout<<"Do you wish to go back to the main menu? " << endl;
                    cout<<"Yes(Y) or No(N)" << endl;
                    cin>>mnch;
                    break;
            case 2:system("CLS");
                    cout<<"Rules and help" <<endl;
                    cout<<"Once you start the game, computer generates 4 colors, they can be Green, Blue, Red, Yellow, Orange, Purple. And you have 8 tries to guess which number and in what order. By Aleksandrs Volkovs, Group 2. " <<endl;
                    cout<<"Do you wish to go back to the main menu?" << endl;
                    cout<<"Yes(Y) or No(N)" << endl;
                    cin>>mnch;
                    break;
            case 3:mnch='N';
                    cout<<"Goodbye." << endl;
                    break;
            default:mnch='N';
                    cout<<"Goodbye." << endl;
                    break;
        }
    }
    system("CLS"); // clear screen
    cout<<"Thank you for playing";
    getchar(); // get input
    return 0;
}

char* number_to_color(int n)
{
    char* charout;
    if (n<=1)
    { // if n is less than or equal to 1 ie 0 or 1 set to green (g)
    charout = "g";
        return charout;
    }
    else if (n<=2)
    {
    charout = "b";
        return charout;
    }
    else if (n<=4)
    {
    charout = "r";
        return charout;
    }
    else if (n<=7)
    {
    charout = "y";
        return charout;
    }
    else if (n<=8)
    {
    charout = "o";
        return charout;
    }
    else {
    charout = "p";
        return charout;
    }
}

void gmindstr(char *a = "", char *b = "", char *c = "", char *d = "", char *z = "", char *y = "", char *x = "", char *w = "")
    {
    time_t srand(time(NULL)); // generate random numbers from time from the current unix timestamp
    char final='Y';
    while((final=='Y')||(final=='y'))
    {   system("CLS");
        cout<<"Welcome to Mastermind";
        cout<<"I have chosen 4 colors out of the colors: (g)reen, (b)lue, (r)ed, (y)ellow, (o)range, (p)urple!";
        cout<<"\n\nGuess which colors I have before your turns (8 left) runs out!";
        int test=1,hint=0;

        // This is where the cpu guesses random colors to select as the puzzle
        char *z=number_to_color(rand()%10);
        char *y=number_to_color(rand()%10);
        char *x=number_to_color(rand()%10);
        char *w=number_to_color(rand()%10);

        // loop over the guesses (the user gets 8)
        for(int n=1;n<=8;n++)
        {
            cout<<"Enter your color guess combination" << endl;
            cout<<"Separate each color letter with space! (single letters only!)" << endl;
            cout<<"Colors: (g)reen, (b)lue, (r)ed, (y)ellow, (o)range, (p)urple!" << endl;

            // Wait for user input then put their guess into the guess vars
            cin>>*a>>*b>>*c>>*d;

            // Now we have their guess proceed with checking if they won already
            if((*a==*z)&&(*b==*y)&&(*c==*x)&&(*d==*w)) {
                cout<<"YOU WIN!" << endl;
            }
            else
            {
                if(n==8) {
                    cout<<"You lose!" << endl;
                    cout<<"Correct answer was "<<z<<" "<<y<<" "<<x<<" "<<w<<" !!!" << endl;
                } else {
                    // Logic Goes Here
                    // You got x colors of x colors right

                    cout<<"\n\nYou can try again, "<<8-n<<" turns left";
                }
            }
        }
        cout<<"\n\n\nDo you want to try again?";
        cout<<"\n Yes(Y) or No(N)> ";
        cin>>final;
        system("CLS"); // clear screen
    }

}
volk00 вне форума Ответить с цитированием
Старый 10.12.2013, 16:46   #2
volk00
 
Регистрация: 07.12.2013
Сообщений: 9
По умолчанию

помогите пожалуйста
volk00 вне форума Ответить с цитированием
Старый 10.12.2013, 17:25   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что в ней сломалось?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2013, 17:45   #4
volk00
 
Регистрация: 07.12.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что в ней сломалось?
не уверен, после запуска ломается
volk00 вне форума Ответить с цитированием
Старый 10.12.2013, 18:30   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
после запуска ломается
Это не говорит ни о чем. Конкретнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2013, 19:06   #6
volk00
 
Регистрация: 07.12.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это не говорит ни о чем. Конкретнее.
volk00 вне форума Ответить с цитированием
Старый 10.12.2013, 19:06   #7
volk00
 
Регистрация: 07.12.2013
Сообщений: 9
По умолчанию

http://imgur.com/UJ1msed
volk00 вне форума Ответить с цитированием
Старый 10.12.2013, 19:21   #8
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Код:
#include<string.h>
....
   // Wait for user input then put their guess into the guess vars
   cin>>*a>>*b>>*c>>*d; 
...
попробуй все таки использовать string'и. Будет гораздо меньше проблем с обращениями к памяти.
Smogg вне форума Ответить с цитированием
Старый 10.12.2013, 19:30   #9
volk00
 
Регистрация: 07.12.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Smogg Посмотреть сообщение
Код:
#include<string.h>
....
   // Wait for user input then put their guess into the guess vars
   cin>>*a>>*b>>*c>>*d; 
...
попробуй все таки использовать string'и. Будет гораздо меньше проблем с обращениями к памяти.
как это можно сделать? никогда не использовал их
это моя вторая программа
volk00 вне форума Ответить с цитированием
Старый 10.12.2013, 19:35   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от volk00 Посмотреть сообщение
как это можно сделать? никогда не использовал их
это моя вторая программа
А первая, сломалась - напрочь?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
починить программу под ХР для написания ЧПУ balticdoors Фриланс 6 22.10.2012 13:55
WinInet ('GET') = Иероглифы. Как починить? trafbite Работа с сетью в Delphi 1 19.04.2012 09:02
Написал программу, помогите натянуть Шейдеры или как нибудь модифицировать программу WMLite Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2009 13:57
Помогите составить программу на ТР ЖекаМ Помощь студентам 2 28.01.2009 17:18
Помогите починить замороженную БАЗУ!!!! bes Microsoft Office Access 5 13.12.2006 14:53