Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
9l noka 4To Hy6
1 / 1 / 1
Регистрация: 06.11.2011
Сообщений: 26
1

Игра в камень,ножницы бумага.Что можно улучшить\оптимизировать?

06.11.2011, 20:52. Просмотров 3782. Ответов 11
Метки нет (Все метки)

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
// KamenNozhnicyBumaga.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "time.h"
#include "stdio.h"
#include "stdlib.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int hodusera;
    int hodcomp;
 
    printf("-=Igra s komputerom v kamen-nozhnicy-bumaga=-\nID:Kamen=1,bumaga=2,nozhnice=3\nKamen,nozhnicy,bumaga!\n1,2,3!\n");
    srand(time(0));
    hodcomp=1+(rand()%3);
    printf("Hod compa=%d\n",hodcomp);
    scanf("%d",&hodusera);
    if (hodusera<0 || hodusera>3)
        printf("Vvedeno necorectnoe znachenie.\n");
    
    
                                  if (hodusera==hodcomp) {
                                   printf("Nichya!\n");
                                   return 0;
                                                         }
       if (hodcomp==3 && hodusera==1)
        printf("Vy pobedili\n");
       if (hodcomp==1 && hodusera==2)
        printf("Vy pobedili!\n");
       if (hodcomp==2 && hodusera==3)
        printf("Vy pobedili!\n");
       if (hodcomp==2 && hodusera==1)
        printf("Vy proigrali.\n");
       if (hodcomp==3 && hodusera==2)
        printf("Vy proigrali.\n");
       if (hodcomp==1 && hodusera==3)
        printf("Vy proigrali.\n");
       
                                   printf("Igra okonchena.\n");         
 
    
    return 0;
}
Что в этом коже можно улучшить\оптимизировать?
Что можно добавить?
Что убрать?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2011, 20:52
Ответы с готовыми решениями:

Игра "камень ножницы бумага"
решил написать игру камень ножницы бумага но всё работает кроме самой логики игры он не выводит...

Написать программу для игры "Камень, бумага, ножницы"
Прочитал четыри главы книги Бьярне Страуструп Программирование: принципы и практика использования...

Парсер математических выражений - можно ли оптимизировать и улучшить код
Добрый день возник следующий вопрос, в программировании не сильно большой гуру пошел на...

Калькулятор, что можно улучшить/переработать
Всем привет!Только закончил писать калькулятор,код прилагается.А теперь, вопросы:что можно...

Какие ошибки есть в коде и что можно улучшить?
Всем привет, есть вот такой код, подскажите, что у меня здесь не правильно и что можно было бы...

11
-comrade-
360 / 361 / 167
Регистрация: 11.06.2010
Сообщений: 703
06.11.2011, 20:58 2
Например, так:
C
1
2
3
4
5
6
7
if ( (hodcomp==3 && hodusera==1) || 
     (hodcomp==1 && hodusera==2) ||
     (hodcomp==2 && hodusera==3) )  printf("Vy pobedili!\n");
 
if ( (hodcomp==2 && hodusera==1) ||
     (hodcomp==3 && hodusera==2) ||
     (hodcomp==1 && hodusera==3) )  printf("Vy proigrali.\n");
1
9l noka 4To Hy6
1 / 1 / 1
Регистрация: 06.11.2011
Сообщений: 26
06.11.2011, 21:57  [ТС] 3
Цитата Сообщение от -comrade- Посмотреть сообщение
Например, так:
C
1
2
3
4
5
6
7
if ( (hodcomp==3 && hodusera==1) || 
     (hodcomp==1 && hodusera==2) ||
     (hodcomp==2 && hodusera==3) )  printf("Vy pobedili!\n");
 
if ( (hodcomp==2 && hodusera==1) ||
     (hodcomp==3 && hodusera==2) ||
     (hodcomp==1 && hodusera==3) )  printf("Vy proigrali.\n");
Спасибо,может ещё идеи есть?

Добавлено через 46 минут
Вверх!
0
-comrade-
360 / 361 / 167
Регистрация: 11.06.2010
Сообщений: 703
06.11.2011, 22:14 4
Ну вообще интересная задача. Вы сами себе такую ​​придумали, или вам задали?
0
06.11.2011, 22:14
DKOI
06.11.2011, 22:57
  #5

Не по теме:

Переменная hodusera вынесла мне мозг :)

0
9l noka 4To Hy6
1 / 1 / 1
Регистрация: 06.11.2011
Сообщений: 26
06.11.2011, 23:01  [ТС] 6
Цитата Сообщение от -comrade- Посмотреть сообщение
Ну вообще интересная задача. Вы сами себе такую ​​придумали, или вам задали?
Задали в "Белхарде".

Добавлено через 43 секунды
Цитата Сообщение от DKOI Посмотреть сообщение

Не по теме:

Переменная hodusera вынесла мне мозг :)

Почему?С ней что-то не так?
0
-comrade-
360 / 361 / 167
Регистрация: 11.06.2010
Сообщений: 703
06.11.2011, 23:06 7
9l noka 4To Hy6, зачем вы выводите значение, которое "выбрал компьютер" до того как свое значение вводит user?
0
9l noka 4To Hy6
1 / 1 / 1
Регистрация: 06.11.2011
Сообщений: 26
06.11.2011, 23:15  [ТС] 8
Цитата Сообщение от -comrade- Посмотреть сообщение
9l noka 4To Hy6, зачем вы выводите значение, которое "выбрал компьютер" до того как свое значение вводит user?
Это для тестирования,в "правильной" версии этого не будет.

Добавлено через 1 минуту
Цитата Сообщение от -comrade- Посмотреть сообщение
9l noka 4To Hy6, зачем вы выводите значение, которое "выбрал компьютер" до того как свое значение вводит user?
Может у Вас есть идеи как улучшить рандом значений?Ибо вначале он довольно часто выбирает "2".
0
-comrade-
360 / 361 / 167
Регистрация: 11.06.2010
Сообщений: 703
06.11.2011, 23:25 9
Цитата Сообщение от 9l noka 4To Hy6 Посмотреть сообщение
Может у Вас есть идеи как улучшить рандом значений?Ибо вначале он довольно часто выбирает "2".
http://www.cyberforum.ru/cpp-beginners/thread44753.html#post222553
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8134 / 4985 / 1436
Регистрация: 29.11.2010
Сообщений: 13,456
07.11.2011, 00:01 10
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 <iostream>
#include <conio.h>
#include <clocale>
#include <ctime>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int user, comp;
    srand(time(NULL));
    char* x[3] = {"ГЉГ*ìåГ*Гј", "ÍîæГ*èöû", "ГЃГіГ¬Г*ГЈГ*"};
    for(;;)
    {
        system("cls");
        cout<< "1. "<< x[0]
            << "\n2. "<< x[1]
            << "\n3. "<< x[2]
            << "\nГ‚Г*Гё âûáîð: ";
        do {cin>> user; } while (user > 3 || user < 1);
        user--;
        comp = rand() % 3;
        cout<< "Âû: "<< x[user]
            << "\nÊîìï: "<< x[comp]<< endl;
        if (user == comp) cout<< "ГЌГЁГ·ГјГї";
        else
        if ((user == 0 && comp == 1) ||
            (user == 1 && comp == 2) ||
            (user == 2 && comp == 0))
            cout<< "Âû âûèãðГ*ëè";
        else cout<< "Âû ïðîèãðГ*ëè";
        if (getch()!= 'e') continue;
        else break;
    }
    return 0;
}
Игра на щелбаны:
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
#include <iostream>
#include <conio.h>
#include <clocale>
#include <ctime>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int user, comp, usercount = 0, compcount = 0;
    srand(time(NULL));
    char* x[3] = {"ГЉГ*ìåГ*Гј", "ÍîæГ*èöû", "ГЃГіГ¬Г*ГЈГ*"};
    while (usercount < 5 && compcount < 5)
    {
        system("cls");
        cout<< "1. "<< x[0]
            << "\n2. "<< x[1]
            << "\n3. "<< x[2]
            << "\nГ‚Г*Гё âûáîð: ";
        do {cin>> user; } while (user > 3 || user < 1);
        user--;
        comp = rand() % 3;
        cout<< "Âû: "<< x[user]
            << "\nÊîìï: "<< x[comp]<< endl;
        if (user == comp) cout<< "ГЌГЁГ·ГјГї"<< endl;
        else
        if ((user == 0 && comp == 1) ||
            (user == 1 && comp == 2) ||
            (user == 2 && comp == 0))
        {
            cout<< "Âû âûèãðГ*ëè ГЁ Г¤Г*ГҐГІГҐ ùåëáГ*Г* êîìïüþòåðó\n";
            compcount++;
        }
        else 
        {
             cout<< "Âû ïðîèãðГ*ëè ГЁ ïîëó÷Г*ГҐГІГҐ ùåëáГ*Г* îò êîìïüþòåðГ*\n";
             usercount++;
        }
        cout<< "Г“ ГўГ*Г± ГёГЁГёГҐГЄ: "<< usercount<< endl
            << "Г“ êîìïüþòåðГ* ГёГЁГёГҐГЄ: "<< compcount<< endl;
        if (usercount == 5) cout<< "Âû ïðîèãðГ*ëè, ГўГЁГ¤иìî ÈÈ Г§Г*ГёГҐГ« ñëèøêîì Г¤Г*ëåêî";
        if (compcount == 5) cout<< "×åëîâåê ГіГ¬Г*ГҐГҐ, ãëóïГ*Гї Г¬Г*ГёГЁГ*Г*";
        if (getch()!= 'e') continue;
        else break;
    }
    return 0;
}
0
Van111
212 / 191 / 23
Регистрация: 03.08.2011
Сообщений: 2,816
Записей в блоге: 12
07.11.2011, 11:48 11
Цитата Сообщение от -comrade- Посмотреть сообщение
if ( (hodcomp==3 && hodusera==1) || (hodcomp==1 && hodusera==2) || (hodcomp==2 && hodusera==3) ) printf("Vy pobedili!\n"); if ( (hodcomp==2 && hodusera==1) || (hodcomp==3 && hodusera==2) || (hodcomp==1 && hodusera==3) ) printf("Vy proigrali.\n");
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch (hodcomp)
{
case 3
if(hoduser=1) вы победили
if(hoduser=2) вы проиграли
breck;
case 2
if(hoduser=3) вы победили
if(hoduser=1) вы проиграли
breck;
case 1
if(hoduser=2) вы победили
if(hoduser=3) вы проиграли
breck;
default:
ничья
}
0
9l noka 4To Hy6
1 / 1 / 1
Регистрация: 06.11.2011
Сообщений: 26
07.11.2011, 17:56  [ТС] 12
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch (hodcomp)
{
case 3
if(hoduser=1) вы победили
if(hoduser=2) вы проиграли
breck;
case 2
if(hoduser=3) вы победили
if(hoduser=1) вы проиграли
breck;
case 1
if(hoduser=2) вы победили
if(hoduser=3) вы проиграли
breck;
default:
ничья
}
Мне надо именно со структурой if.
0
07.11.2011, 17:56
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2011, 17:56

Создание матричной алгебры, что можно улучшить в коде?
Дан код программы на C++ создающий классы матриц и методы для работы с ними. Программа работает....

Эмулятор Машины Тьюринга: посоветуйте, что можно добавить/улучшить
Сделал эмулятор МТ на C++. Может, кому-то пригодится. Можете посоветовать, что можно...

Определить, что делает код, и как его можно оптимизировать
не могу понять что делает код . как его можно максимально сократить? #include &lt;iostream&gt; #include...


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

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

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