Крестики-нолики на Си.

Тема в разделе "Закажу проект", создана пользователем Chaco, 19 янв 2019.

  1. Chaco

    Chaco Нуб

    Здравствуйте. Нужен скетч на Ардуино. Игра крестики -нолики на Си. Играют два человека. 9 светодиодов и 2 кнопки, одной выбираешь диод, другой утверждаешь. Точно как в этом видео.

    . Жду ответа.
     
  2. ostrov

    ostrov Гуру

    Так покатит?

     
  3. Chaco

    Chaco Нуб

    Классно:). Но условия как в видео:(
     
  4. Rassamaha78

    Rassamaha78 Гик

    Грустная игра какая то с одноцветными светодиодами. Чисто ради интереса: каков гонорар ?
     
  5. Chaco

    Chaco Нуб

    Согласен, но не моя идея, а преподавателя.:)
     
  6. ostrov

    ostrov Гуру

    Грустный преподаватель какой то А студент веселый.
     
  7. Chaco

    Chaco Нуб

    Говорит, что 6 лет в мелкософте программировал. 2 раза показал ардуину, и сразу игру на зачет. А про диоды сказал так нам будет легче. А я думаю, просто такого скучного скетча в интернете не найти.:D
     
  8. ostrov

    ostrov Гуру

    Да, сумму озвучьте. За достойную оплату, хоть блинк на полсекунды переделаем!
     
    Последнее редактирование: 19 янв 2019
  9. ostrov

    ostrov Гуру

    Не, для такой программы 10 лет минимум.
     
  10. Chaco

    Chaco Нуб

    Ваши условия?
     
  11. ostrov

    ostrov Гуру

    По глазам вижу, условия неподьемные.
     
  12. Chaco

    Chaco Нуб

    Ну если не подъемные, то я зря трачу здесь время. Всем спасибо.
     
  13. ostrov

    ostrov Гуру

    За 200 руб врядли кто возьмется, даже студенты. Лучше немного потратить времени и сделать самому. И на будущее знания пригодятся.
     
  14. Chaco

    Chaco Нуб

    Я про 200 рублей не писал. Я задал конкретный вопрос в профильной ветке. Нужно конкретно эта игра, и сколько это СТОИТ?. Извините, мне 44 года и жизнь заставила получать еще одно образование. Но с программированием, что-то не заладилось, поэтому прошу конкретной помощи.
     
  15. Вот жеманные барышни. Берете да называете цену. Согласится - согласится. Нет - нет.
    2000 р. Достойно за 80 строк кода и пару картинок со схемой.
     
    parovoZZ нравится это.
  16. Chaco

    Chaco Нуб

    Берётесь? Меня цена устраивает. Куда высылать условия?
     
  17. Не берусь, у меня и так завал. Но может барышни оживятся.
     
  18. Chaco

    Chaco Нуб

    И на этом спасибо.
     
  19. b707

    b707 Гуру

    пишите ded собака cur-ex.ru обсудим
     
  20. sser

    sser Гик

    Вот чё-то намудрил , только для одного игрока.


    https://youtu.be/aR5fDKJwgC4

    Код (C++):

    const int buttonPin11 = 11;      // номер входа, подключенный к кнопке
    int buttonState11 = 0;        // переменная для хранения состояния кнопки
    const int buttonPin12 = 12;     // номер входа, подключенный к кнопке
    int buttonState12 = 0;          // переменная для хранения состояния кнопки


    int X = 0;
    bool a1 = false; //переменные для хранения состояния светодиода 1
    bool a2= false; //...светодиода 2
    bool a3 = false;
    bool a4= false;
    bool a5 = false;
    bool a6= false;
    bool a7 = false;
    bool a8= false;
    bool a9 = false;




    const int ledPin2 =  2;
    const int ledPin3 =  3;
    const int ledPin4 =  4;
    const int ledPin5 =  5;
    const int ledPin6 =  6;
    const int ledPin7 =  7;
    const int ledPin8 =  8;
    const int ledPin9 =  9;
    const int ledPin10 =  10;//номер выхода, подключенного к светодиоду



    // Variables will change:
    int ledState2 = LOW;
    int ledState3 = LOW;
    int ledState4 = LOW;
    int ledState5 = LOW;
    int ledState6 = LOW;
    int ledState7 = LOW;
    int ledState8 = LOW;
    int ledState9 = LOW;
    int ledState10 = LOW;
    // этой переменной устанавливаем состояние светодиода
    long previousMillis = 0;     // храним время последнего переключения светодиода
    long interval = 200;           // интервал между включение/выключением светодиода
    void setup() {

      pinMode(buttonPin11, INPUT);// задаем режим выхода для порта, подключенного к кнопке
      pinMode(buttonPin12, INPUT);
      pinMode(ledPin2, OUTPUT);  // задаем режим выхода для порта, подключенного к светодиоду
      pinMode(ledPin3, OUTPUT);
      pinMode(ledPin4, OUTPUT);
      pinMode(ledPin5, OUTPUT);
       pinMode(ledPin6, OUTPUT);
      pinMode(ledPin7, OUTPUT);
      pinMode(ledPin8, OUTPUT);
      pinMode(ledPin9, OUTPUT);
        pinMode(ledPin10, OUTPUT);
    }
    void loop()
    {

      buttonState11 = digitalRead(buttonPin11);//нажатие кнопки изменяет переменную
      buttonState12 = digitalRead(buttonPin12);



    if (buttonState11 == HIGH) { //перемещаем мигающий светодиод после каждого нажатия
    X= ++X;
    if (X==10)

    {
    X=1;

    }
    delay (200);
    }
    if ((buttonState12 == HIGH)&&(X==1)){
                                           // запоминаем  положение мигающего светодиода.
      a1=true;
    }
    if ((buttonState12 == HIGH)&&(X==2)){

    a2=true;
    }

    if ((buttonState12 == HIGH)&&(X==3)){

    a3=true;
    }
    if ((buttonState12 == HIGH)&&(X==4)){

    a4=true;
    }

    if ((buttonState12 == HIGH)&&(X==5)){

    a5=true;
    }
    if ((buttonState12 == HIGH)&&(X==6)){

    a6=true;
    }
    if ((buttonState12 == HIGH)&&(X==7)){

    a7=true;
    }
    if ((buttonState12 == HIGH)&&(X==8)){

    a8=true;
    }

    if ((buttonState12 == HIGH)&&(X==9)){

    a9=true;
    }










      unsigned long currentMillis = millis();

      if(currentMillis - previousMillis > interval) {

        previousMillis = currentMillis;
      }




        if (((ledState2 == LOW)&&(X==1))||(a1==true))//мигаем светодиодами
          ledState2 = HIGH;
        else
          ledState2 = LOW;

        if (((ledState3 == LOW)&&(X==2))||(a2==true))
          ledState3 = HIGH;
        else
          ledState3 = LOW;

     
          if (((ledState4 == LOW)&&(X==3))||(a3==true))
          ledState4 = HIGH;
        else
          ledState4 = LOW;

        if (((ledState5 == LOW)&&(X==4))||(a4==true))
          ledState5 = HIGH;
        else
          ledState5 = LOW;

        if (((ledState6 == LOW)&&(X==5))||(a5==true))
          ledState6 = HIGH;
        else
          ledState6 = LOW;
       
          if (((ledState7 == LOW)&&(X==6))||(a6==true))
          ledState7 = HIGH;
        else
          ledState7 = LOW;



             if (((ledState8 == LOW)&&(X==7))||(a7==true))
          ledState8 = HIGH;
        else
          ledState8 = LOW;

        if (((ledState9 == LOW)&&(X==8))||(a8==true))
          ledState9 = HIGH;
        else
          ledState9 = LOW;


          if (((ledState10 == LOW)&&(X==9))||(a9==true))
          ledState10 = HIGH;
        else
          ledState10 = LOW;





       digitalWrite(ledPin2, ledState2);
       digitalWrite(ledPin3, ledState3);
       digitalWrite(ledPin4, ledState4);

       digitalWrite(ledPin5, ledState5);
       digitalWrite(ledPin6, ledState6);
       digitalWrite(ledPin7, ledState7);
       digitalWrite(ledPin8, ledState8);

       digitalWrite(ledPin9, ledState9);
       digitalWrite(ledPin10, ledState10);




     if (((a1==true)&&(a2==true)&&(a3==true))||((a1==true)&&(a4==true)&&(a7==true))||((a4==true)&&(a5==true)&&(a6==true))||((a1==true)&&(a5==true)&&(a9==true))||((a3==true)&&(a6==true)&&(a9==true))||((a7==true)&&(a8==true)&&(a9==true))||((a3==true)&&(a5==true)&&(a7==true)))

      {
        //победил!
    a2=0;//второй светодиод отключаем
    X=2; //мигаем 2 светодиодом
      }
    }
     
    Последнее редактирование: 26 янв 2019