Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
9l noka 4To Hy6
1 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 26
#1

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

06.11.2011, 20:52. Просмотров 2620. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2011, 20:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Игра в камень,ножницы бумага.Что можно улучшить\оптимизировать? (C++):

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

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

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

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

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

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

11
-comrade-
355 / 356 / 42
Регистрация: 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 / 0
Регистрация: 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-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
06.11.2011, 22:14 #4
Ну вообще интересная задача. Вы сами себе такую ​​придумали, или вам задали?
0
DKOI
06.11.2011, 22:57
  #5

Не по теме:

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

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

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

Не по теме:

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

Почему?С ней что-то не так?
0
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
06.11.2011, 23:06 #7
9l noka 4To Hy6, зачем вы выводите значение, которое "выбрал компьютер" до того как свое значение вводит user?
0
9l noka 4To Hy6
1 / 1 / 0
Регистрация: 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-
355 / 356 / 42
Регистрация: 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Эксперт С++
7490 / 4605 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
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
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,598
Записей в блоге: 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 / 0
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2011, 17:56
Привет! Вот еще темы с ответами:

Чем можно улучшить прогу!Дополните) - C++
#include &lt;iostream&gt; using namespace std; enum {researsher,laborer,secratary,manager,accountant,executive}; class employe { ...

Реализовал shared pointer class. В каких местах можно улучшить ? - C++
Изучаю с++, реализовал класс shared pointer(разумеется не в полной мере), хотелось бы услышать совета от людей более хорошо разбирающихся в...

Как можно еще оптимизировать код? - C++
Как еще можно оптимизировать данный код? Если вкратце, то он выводит значение АВ, если ключ = вводу пользотвателя. #include &lt;map&gt; ...

Как можно оптимизировать данный код? - C++
И... Ещё один вопрос: Дан участок кода С++: #include &lt;iostream&gt; #include &quot;Windows.h&quot; using namespace...


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

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

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