Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Крестики нолики на с++  (Прочитано 12876 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #60 : 18 Января 2015, 17:48:35 »
alsoijw, пробелы - глюк форума, не обращай внимания или используй Astyle.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #61 : 18 Января 2015, 17:49:23 »
peregrine, а Astyle это что?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #62 : 18 Января 2015, 22:14:45 »
alsoijw, консольная программа для приведения файла с кодом поддерживаемого языка (C, C++, C#, Java) в соответствие с каким-либо общепринятым видом записи (allman-style, GNU-style, K&R и т.д.).

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #63 : 18 Января 2015, 22:41:14 »
peregrine, понял.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #64 : 25 Января 2015, 18:12:26 »
Цитировать
Это сложная задача. Вопросы у тебя наверняка появятся.
Извини что долго не появлялся: школа, олимпиады и так далее. Да, вопросы есть, и один из первых: какая ескейпт последовательность отвечает за движение курсора?
Откопал вот что: printf("\033[A\033[1;%dH", cursor == 1 ? 17 : 24);   , но не ззнаю как это реализовать в с++

Пользователь решил продолжить мысль 25 Января 2015, 22:44:31:
я иммел в виду как в ескейпт последовательность вставить переменную?
« Последнее редактирование: 25 Января 2015, 22:44:31 от Гриб_под_зонтом »
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #65 : 25 Января 2015, 23:12:56 »
Гриб_под_зонтом, пиши такие прожки на Си
Извините, я все еще учусь

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #66 : 26 Января 2015, 00:11:33 »
SergeyIT,
После того, как учитель посоветовал на с++ переходить, давно на с не писал. Тем более начал классы изучать и наверное с си ещё не скоро увижусь. А в чём преимущество писать такие проги на си?
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #67 : 26 Января 2015, 01:03:07 »
Гриб_под_зонтом, нет никаких преимуществ такие проги писать на с++
Извините, я все еще учусь

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #68 : 26 Января 2015, 04:50:28 »
SergeyIT, отчего же нет преимуществ? В плюсах много полезного функционала. Если им грамотно воспользоваться, то можно написать более эффективную/безопасную/структурированную программу.
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #69 : 26 Января 2015, 12:21:30 »
Protopopulus, будем лозунгами сыпать? Инструмент выбирают по задаче, и для такой проги с++ избыточен (причем, сильно)
Извините, я все еще учусь

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #70 : 26 Января 2015, 14:26:20 »
SergeyIT, эм... В чем избыточность-то? Сравни:
// Си обычный
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    FILE *fd = fopen("test.txt", "w");

    if(fd == NULL) {
        fprintf(stderr, "Cannot open file\n");
        return 1;
    }

    char *buf = (char*) malloc(1024);

    if(buf == NULL) {
        fprintf(stderr, "Cannot allocate memory\n");
        return 2;
    }

    int i;

    for(i = 0; i < 1024; i++) {
        buf[i] = 32 + i % 36;
    }

    if(fwrite((void*) buf, 1024, 1, fd) != 1) {
         fprintf(stderr, "Cannot write data to file\n");
    }

    free(buf);

    fclose(fd);

    return 0;
}
А теперь "избыточные" плюсы:
// Си++
#include <fstream>
#include <iostream>

using namespace std;

int main(void) {
    try {
        fstream fs("test.txt", ios::out);

        if(fs.is_open()) {
              char *buf = new char[1024];

              for(int i = 0; i < 1024; i++) {
                  buf[i] = 32 + i % 36;
              }

              fs.write(buf, 1024);

              delete[] buf;

              fs.close();

              return 0;
        }
    }

    catch(exception &ex) {
        cerr << "Exception handled: " << ex.what() << endl;

        return 1;
    }
}
Всего лишь запись в файл...
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Grayscale

  • Активист
  • *
  • Сообщений: 573
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #71 : 26 Января 2015, 15:37:15 »
Гриб_под_зонтом,
вам никто не мешает Сишный printf юзать в C++ программе...
Хотя вариант с эскейп-последовательностями не айс, конечно. Но и ncurses вам курить рано :)
В мире столько разнообразной фигни.. И в каждой найдется специалист
ASUS K46CB(S46CB) i7-3537U @ 2.0GHz 8Gb RAM + SSD 64 Gb + Manjaro Linux

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #72 : 26 Января 2015, 17:32:05 »
Вот тебе код, который позволяет ставить|стирать крестики, не даёт тебе выйти за пределы поля. Теперь мне интересно, как ты будешь делать проверку того кто выиграл. Сначала опиши словами. Будут вопросы по коду - задавай.
ЗЫ обрати внимание на отступы.
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 26 Января 2015, 17:32:45:
Какая разница - си или си инкремет? Оба языка ущербные.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #73 : 26 Января 2015, 19:25:12 »
alsoijw,
pole - интовый массив. Считаем сумму в клетках , которые находяться на одной линиии таким образом: столбики - если pole
  • [y]+pole[x+1][y] и так далее равняется predel*2, то выигрыш. Со строками тоже самое но плюс один к y. Диагонали считаем так:
Код: (cpp) [Выделить]

  int win = 0;

 for (int i = predel; i > 0; i--)
     {
          if (pole[x][i] == 2) win++; // x от 1 до предела
     }
 if (win == predel) return true;
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Крестики нолики на с++
« Ответ #74 : 26 Января 2015, 19:33:28 »
Гриб_под_зонтом, куда съезжают пробелы? Во вторых, не обязательно делать его из int
(Нажмите, чтобы показать/скрыть)
, и в третьих - выиграл то, кто составил комбинацию из 5 символов подряд. Для начала реализуй проверку в одной строке.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

 

Страница сгенерирована за 0.035 секунд. Запросов: 25.