Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Facktor88
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
#1

Надо написать программу (игру) "Кости". Где ошибка? - C++

15.01.2014, 21:16. Просмотров 653. Ответов 5
Метки нет (Все метки)

Доброго времени. суток. Прошу помочь с решение "проблемы" по написанию программы (игры) в "Кости" на С++

Вот мой код:

C++
1
2
3
4
5
6
7
8
include <ctime>
include <cstdlib>
include <iostream>
using namespace std;
 
void roll(int &s) { static const char *ds[] { " -----\n| |\n| . |\n| |\n -----\n", " -----\n|. |\n| |\n| .|\n -----\n", " -----\n|. |\n| . |\n| .|\n -----\n", " -----\n|. .|\n| |\n|. .|\n -----\n", " -----\n|. .|\n| . |\n|. .|\n -----\n", " -----\n|. .|\n|. .|\n|. .|\n -----\n" }; int d1 = rand() % 6 + 1, d2 = rand() % 6 + 1; cout << ds[d1 - 1] << ds[d2 - 1] << "выброшено: " << d1 + d2 << "; всего: " << (s += d1 + d2); }
 
int main() { bool run = true; int us = 0, gus = 0, cs = 0, gcs = 0, d1, d2; srand(time(0)); while (run) { cout << "\nваш бросок (нажмите Enter)"; char c = cin.get(); roll(us); cout << "\nбросок компа:\n"; roll(cs); if (cs >= 36 || us >= 36) { if (cs == us) continue; cout << (cs > us ? "\nкомп выиграл этот раунд" : "\nвы выиграли этот раунд") << "; общий счет: вы - " << (gus += us > cs) << "; комп - " << (gcs += cs > us) << "\nпродолжить игру (введите 1 для продолжения или 0 для окончания) "; if (cin.get() != '1') run = false; cin.sync(); cs = us = 0; } } cout << (gus == gcs ? "ничья\n" : gus > gcs ? "вы выиграли\n" : "вы проиграли\n") << "нажмите Enter для выхода"; cin.get(); }
Р.S. static const char *ds[] { - данную строку подчеркивает компилятор (Visual Studio 2012) - выдает ошибку - Error: Недопустимый не полный тип.

Подскажите пожалуйста , как исправить? И в чем здесь ошибка ? Сломал себе мозг

Заранее благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 21:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Надо написать программу (игру) "Кости". Где ошибка? (C++):

Как написать игру "Кости"
Подскажите как правильно написать игру кости.

написать игру "кости"
написать игру &quot;кости&quot; у компьютера и пользователя по 100 игровой валюты ...

Программа, имитирующая игру в "Кости"
Написать программу, которая имитирует игру в кости. Игроки (2 человека) кидают...

Написать программу, моделирующую карточную игру "Пьяница" и определяющую, кто из двух игроков выигрывает
помогите. Я не могу понять. Пжлст. С++ Игорь с Артуром играют в &quot;Пьяницу&quot;. Это...

Написать программу, реализующую игру в кости
Ребята, всем доброго времени суток... Посмотрите, пожалуйста, может кто то...

Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье"
Написать программу, которая запрашивает у пользователя номер дня недели и...

5
cooller
565 / 533 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
15.01.2014, 21:18 #2
Facktor88, Код очень красивый и отформатированный
1
Facktor88
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
15.01.2014, 21:20  [ТС] #3
Извините за некорректность написания кода , я изучаю С++ не давно и не умею его форматировать. Пожалуйста объясните мою ошибку просидел над кодом уже несколько часов ....
0
cooller
565 / 533 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
15.01.2014, 21:33 #4
Facktor88, Я не знаю что здесь нужно было сделать, ну вот, теперь хоть запускается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
 
void roll(int &s) 
{ 
    static const char ds[] =
     " -----\n| |\n| . |\n| |\n -----\n  -----\n|. |\n| |\n| .|\n -----\n  -----\n|. |\n| . |\n| .|\n -----\n  -----\n|. .|\n| |\n|. .|\n -----\n -----\n|. .|\n| . |\n|. .|\n -----\n -----\n|. .|\n|. .|\n|. .|\n -----\n";
     int d1 = rand() % 6 + 1, d2 = rand() % 6 + 1;
     cout << ds[d1 - 1] << ds[d2 - 1] << "выброшено: " << d1 + d2 << "; всего: " << (s += d1 + d2); 
}
 
int main() 
{ 
    setlocale(LC_ALL,"Russian");
    bool run = true;
    int us = 0, gus = 0, cs = 0, gcs = 0, d1, d2; 
    srand(time(0));
    while (run) {
        cout << "\nваш бросок (нажмите Enter)"; 
        char c = cin.get(); 
        roll(us);
        cout << "\nбросок компа:\n"; 
        roll(cs); 
        if (cs >= 36 || us >= 36)
        { 
            if (cs == us) continue;
            cout << (cs > us ? "\nкомп выиграл этот раунд" : "\nвы выиграли этот раунд") << "; общий счет: вы - " << (gus += us > cs) << "; комп - " << (gcs += cs > us) << "\nпродолжить игру (введите 1 для продолжения или 0 для окончания) ";
            if (cin.get() != '1') run = false; cin.sync(); cs = us = 0; 
        } 
    } 
    cout << (gus == gcs ? "ничья\n" : gus > gcs ? "вы выиграли\n" : "вы проиграли\n") << "нажмите Enter для выхода"; 
    cin.get(); 
}
0
Dzzirt
0 / 0 / 2
Регистрация: 14.01.2014
Сообщений: 6
16.01.2014, 16:01 #5
Программа симуляции игры Крэпс без ставок будет выглядеть как то так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Craps simulation
#include <iostream>
#include <cstdlib>
#include <ctime>
 
 
using namespace std;
 
int rollDice(); // rolls dice, calculates and displays sum
 
int main()
{
    // enumeration with constants that represent the game status
    enum Status { CONTINUE, WON, LOST }; // all caps in constants
 
    int myPoint; // point if no win or loss on first roll
    Status gameStatus; // can contain CONTINUE, WON or LOST
 
    int sumOfDice;
    // randomize random number generator using current time
    srand( time( 0 ) );
 
        sumOfDice = rollDice(); //  roll of the dice
 
        switch ( sumOfDice )
        {
            case 7: // win with 7 on first roll
            case 11: // win with 11 on first roll
                gameStatus = WON;
                break;
            case 2: // lose with 2 on first roll
            case 3: // lose with 3 on first roll
            case 12: // lose with 12 on first roll
                gameStatus = LOST;
                break;
            default: // did not win or lose, so remember point
                gameStatus = CONTINUE; // game is not over
                myPoint = sumOfDice; // remember the point
                cout << "Point is " << myPoint << endl;
                break; // optional at end of switch
        } //end of switch
 
        // while game is not complete
        while( gameStatus == CONTINUE )// not WON or LOST
        {
            sumOfDice = rollDice(); // roll dice again
 
            // determine game status
            if ( sumOfDice == myPoint ) // win by making point
                gameStatus = WON;
            else
                if ( sumOfDice == 7 ) // lose by rolling 7 before point
                    gameStatus = LOST;
        } //end while
        if ( gameStatus == WON ) {
            cout << "Player wins\n" << endl;
 
        } // end if
 
        else {
            cout << "Player loses\n" << endl;
 
 
        } // end else
 
 
    return 0;
} // end of main
 
// roll dice, calculate sum and display results
int rollDice()
{
    // pick random die values
    int die1 = 1 + rand() % 6; // first die roll
    int die2 = 1 + rand() % 6; // second die roll
 
    int sum = die1 + die2; // compute sum of die values
 
    // display results of this roll
    cout << "Player rolled " << die1 << " + " << die2
    << " = " << sum << endl;
    return sum; // end function rollDice
} // end function rolldice
0
MrGluck
Модератор
Эксперт CЭксперт С++
8023 / 4866 / 1425
Регистрация: 29.11.2010
Сообщений: 13,251
16.01.2014, 18:02 #6
http://www.cyberforum.ru/cpp-beginners/thread1072599.html
код один в один
0
16.01.2014, 18:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2014, 18:02
Привет! Вот еще темы с решениями:

Написать программу которaя запрашиваeт у пользователя номер дня недели, затем выводит одно из сообщений "рабочий день", "суббота", "воскресенье"
Добрый день необходимо написать несколько программ, кто может помогите. ...

Где ошибка невозможно преобразовать указатель "this" из "const pers" в "pers &" при выводе объектов через cout
Добрый день! Переписал код из книг Лафоре, создание мультимножества из...

Патерн "прототип" не работает, выдаёт ошибку "недопустимый вызов нестатической ф-ции", где я в коде ошибка?
Вот мой код... #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;vector&gt;...

Написать программу, которая заменяет в указанном слове все буквы "b" на сочетание "ky"
Написать программу, которая заменяет в указанном слове все буквы &quot;b&quot; на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru