Форум программистов, компьютерный форум CyberForum.ru

Игра крестики-нолики - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Логическая задачка http://www.cyberforum.ru/cpp-beginners/thread395208.html
Здравствуйте. Помогите решить задачку. Имеется 100 рублей. Стоимость курицы 1,5 рубля, овечки 2 руб. , бычка 5 руб. Вопрос: сколько всевозможных комбинаций можно проделать для покупки без остатка. Мои размышления. Составляем уравнения 1,5x+2y+5z=100. Все числа должны быть целые. Х начинается с 6, у-только парные, z- делятся на 5. В голове крутиться, что нужно прогонять в не в одном цикле,...
C++ rdtsc gcc #include <stdio.h> static inline unsigned long long tick() { unsigned long long d; __asm__ __volatile__ ("rdtsc" : "=A" (d) ); return d; } int main() { long long res; http://www.cyberforum.ru/cpp-beginners/thread395207.html
C++ Почему происходит остановка цикла?
Подскажите почему при заполнении массива строками длиной от 5 символов, происходит остановка цикла? И как это можно исправить? #include <iostream.h> struct clinic { char FIO; char number_room; }; void vvod (clinic data, int &n) {
рекурсия функцию C++
Описать рекурсивную функцию Palindrom(S) логического типа,возвпощающую True, если строка S является палиндромом (то есть читается одинаково слева направо и справо налево), и FALSE В ПРв противном случае. Оператор цикла в теле функции не использовать. Выввести значение функции Palindrom для пяти данных строк.
C++ как исправить ошибку outportb(0x43,0x36); /* Управляющий байт */ http://www.cyberforum.ru/cpp-beginners/thread395192.html
Доброго времени суток. Есть программка для управления таймером с такими параметрами: R= 0 - 1 ; F(x)=y=50*sin(x/(10+R))+150 ; Частота=36.4 Гц И соответственно код: #include <dos.h> #include <math.h> #include <stdlib.h> #include <graphics.h> #include <time.h> #include <conio.h> #define TIMEINT 8 /* Прерывание таймера */ #define NN 100 /*...
C++ Переделать программу 1 в программу 2 с использованием функций проблема в том, что компилятор не ругается, но программа зависает при выполнении. уже много времени на это потратил. вроде задание не сложное, но я новичок и полностью хочу обуздать этот язык. спасибо всем за помощь заранее! в общем, вот коды: 1: # include "iostream" # include <math.h> подробнее

Показать сообщение отдельно
Freddie
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 18

Игра крестики-нолики - C++

29.11.2011, 23:19. Просмотров 10373. Ответов 7
Метки (Все метки)

Здравствуйте, ребята!
Вообщем такое задание: Создать класс типа игра крестики-нолики. Поле класса - массив из (3х3).
Ставить можна только на свободные.
Написал прогу: Процесс игры ведется в консоли. Игрок задает положение игры координатой: столбец, строка.
Но проблемка в том:
Если координата находится вне доски то выдается сигнал об ошибке и координата запрашивается заново. --- у меня же просто предлагает ввести другому игроку (O) координаты вместо ошибки 1ому игроку (X).
Ниже представлена сама прога, помогите начинаеющему..

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
 #include <iostream>
 #include <conio.h>
using namespace std;
///////////////////////////////////////////////////////////
    enum {Maxn=3}; //Максимальное количевство элементов в массиве
    enum {Maxm=3}; //Максимальное количевство элементов в массиве
    int mass[Maxn][Maxm];
   class game {
   private:
    int x;
    int y;
    bool a;
    int b;
    char znac1,znac2,znac3,znac4,znac5,znac6,znac7,znac8,znac9;
    public:
   int init()
    {
    a=true;    //pl X
            for (int i = 0; i <=3; i++)
             {
              for(int j = 0; j <=3; j++)
              {
               mass[i][j]=46;
              }
             }
     }
      //Вывод таблицы
    void show_table( )
      {
        cout << "(00) (01) (02)"<<endl;
        cout << endl;
        cout << "(10) (11) (12)"<<endl;
        cout << endl;
        cout << "(20) (21) (22)"<<endl;
       }
    //Получение координат
         void give_coord( )
      {
      if (a==true)
      {
        cout <<endl<<"Player X";
        b=88;
        a=false;       //pl 0
      }
      else
      {
        cout <<endl<<"Player 0";
        b=48;
        a=true;        //pl X
      }
        cout <<endl<<"Enter x: ";
        cin>>x;
        cout <<endl<<"Enter y: ";
        cin>>y;
        if((mass[x][y]!=88)&&(mass[x][y]!=48))
        {
        mass[x][y]=b;
        }
        else
        {
         cout<<"error"<<endl;
             if (a==true)
             {
                a=false;
             }
             else
             {
                a=true;
             }
       }
       }
     void show_res( )
      {
      znac1=mass[0][0];
      znac2=mass[0][1];
      znac3=mass[0][2];
      znac4=mass[1][0];
      znac5=mass[1][1];
      znac6=mass[1][2];
      znac7=mass[2][0];
      znac8=mass[2][1];
      znac9=mass[2][2];
        cout <<"("<<znac1 <<") "<<"("<< znac2<<") "<<"("<<znac3<<")"<<endl;
        cout << endl;
        cout <<"("<<znac4 <<") "<<"("<< znac5<<") "<<"("<<znac6<<")"<<endl;
        cout << endl;
        cout <<"("<<znac7 <<") "<<"("<< znac8<<") "<<"("<<znac9<<")"<<endl;
       }
 
       void winner( )
       {
       if (((mass[0][0]==mass[0][1])&&(mass[0][0]==mass[0][2]))||((mass[0][0]==mass[1][1])&&(mass[0][0]==mass[2][2]))||((mass[0][0]==mass[1][0])&&(mass[0][0]==mass[2][0])))
       {
                if (mass[0][0]==88)
                {
                        cout <<endl<<"Winner is X";
                }
                if (mass[0][0]==48)
                {
                        cout <<endl<<"Winner is 0";
                }
                return;
        }
        else
        {
               if (((mass[0][1]==mass[1][1])&&(mass[0][1]==mass[2][1]))||((mass[0][2]==mass[1][1])&&(mass[0][2]==mass[2][0]))||((mass[1][0]==mass[1][1])&&(mass[1][0]==mass[1][2])))
               {
                        if (mass[1][1]==88)
                        {
                                cout <<endl<<"Winner is X";
                        }
                        if (mass[1][1]==48)
                        {
                                cout <<endl<<"Winner is 0";
                        }
                        return;
                }
                else
                {
                        if (((mass[0][2]==mass[1][2])&&(mass[0][2]==mass[2][2]))||((mass[2][0]==mass[2][1])&&(mass[2][0]==mass[2][2])))
                        {
                                if (mass[2][2]==88)
                                {
                                        cout <<endl<<"Winner is X";
                                }
                                if (mass[2][2]==48)
                                {
                                        cout <<endl<<"Winner is 0";
                                }
                                return;
                        }
                        else
                        {
                                if ((mass[0][0]!=46)||(mass[0][1]!=46)||(mass[0][2]!=46)||(mass[1][0]!=46)||(mass[1][1]!=46)||(mass[1][2]!=46)||(mass[2][0]!=46)||(mass[2][1]!=46)||(mass[2][2]!=46))
                                {
                                        cout <<endl<<"no one wins";
                                }
                        }
                }
        }
       }
 
    };
#pragma argsused
int main(int argc, char* argv[])
{
game cross_ziro;
cross_ziro.init();
cross_ziro.show_table();
 
while ((mass[0][0]==46)||(mass[0][1]==46)||(mass[0][2]==46)||(mass[1][0]==46)||(mass[1][1]==46)||(mass[1][2]==46)||(mass[2][0]==46)||(mass[2][1]==46)||(mass[2][2]==46))
{
cross_ziro.give_coord();
cross_ziro.show_res();
cross_ziro.winner();
}
 
getch();
return 0;
}
C++
1
[CPP]
[/CPP]
Вложения
Тип файла: rar 3.rar (356.5 Кб, 203 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru