0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
1

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

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

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

Вот мой код:

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2014, 21:16
Ответы с готовыми решениями:

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

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

Написать игру кости
Здравствуйте, стоит вот такая задача: &quot;Основное правило игры в кости — каждый игрок по очереди...

Написать игру Кости на Python
Игроки кидают кубик по очереди. Если выпадает единица и игрок не завершил хода, то все очки,...

5
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
15.01.2014, 21:18 2
Facktor88, Код очень красивый и отформатированный
1
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
15.01.2014, 21:20  [ТС] 3
Извините за некорректность написания кода , я изучаю С++ не давно и не умею его форматировать. Пожалуйста объясните мою ошибку просидел над кодом уже несколько часов ....
0
571 / 539 / 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
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
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.01.2014, 18:02 6
Игра "Кости". Упростить код
код один в один
0
16.01.2014, 18:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2014, 18:02
Помогаю со студенческими работами здесь

Написать программу где надо найти наибольший и наименьший элементы матрицы N на M
Написать программу где Дана действительная матрица размера N на M элементов, элементы которой...

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

Помогите доделать игру, где надо стрелять по невидимому объекту
помогите доделать игру, где надо стрелять по невидимому объекту, который находиться где то на...

Что надо написать в игру?
Решил что-то сделать,но кроме &quot;Pong&quot; мало чего получилось =) Прошу помочь вот с чем: Чтоб котик...

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

Написать программу игры в кости
Написать программу игры в кости по следующим правилам: играющий (их число не больше 4) называет...

надо-бы дописать программу "кости"...
Люди, кому не трудно, помогите дописать программный код для программы &quot;кости&quot;. Вернее она...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru