C4 в память о CS-GO

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


#include <SoftwareSerial.h>                            // Библиотека для для обмена данными 
#include <DFPlayer_Mini_Mp3.h>                        // Подключаем библиотеку для DFPlayer Mini
#include <iarduino_RTC.h>                            // Подключаем библиотеку часов реального времени
#include <Wire.h>                                   // Подключаем библиотеку обмена данными по i2c
#include <LiquidCrystal_I2C.h>                     // Подключаем библиотеку дисплея
#include <Keypad.h>                               // Подключаем библиотеку клавиатуры
#include <Password.h>                            // Библиотека управления паролями
LiquidCrystal_I2C lcd(0x27,16,2);                // Дисплей 16 символов и 2 строки
iarduino_RTC watch(RTC_DS3231);                 // Часы DS3231 для работы с библиотекой
#define DS3231_ADDRESS 0x68                    // Адрес шины данных часов реального времени
#define PIN_PHOTO_SENSOR A0                   // Автояркость дисплея
#define PIN_LED 9                            // Подсветка дисплея
int switchPin = 10;                         // Пин тумблера
const int buzzer = 11;                     // Пищалка кнопок
int relay = 12;                           // Реле бомбы
#define PIN_BLINK 13                     // Мигание бомбы
int previousState = LOW;                     // Состояние тумблера
int currentState = LOW;                     // Состояние тумблера
int number = 0;                            // Переменная для хранения двухзначного числа
const byte ROWS = 4;                      // Клавиатура 4 строки
const byte COLS = 3;                     // Клавиатура 3 столбца
char keys[ROWS][COLS] = {               // Определяем массив с клавишами
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
}; 
byte rowPins[ROWS] = {7, 2, 3, 5};   // Расположение пинов клавиатуры (у меня какое то странное)
byte colPins[COLS] = {6, 8, 4}; 
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );             // Какая то хрень для клавиатуры
byte cel[8] = {0b00111,0b00101,0b00111,0b00000,0b00000,0b00000,0b00000,0b00000};     // Значек градуса цельсия
uint8_t bell[8]  = {0x4, 0xe, 0xe, 0xe, 0x1f, 0x0, 0x4};                            // Колокольчик
int flagRead=0;   //переменные для блинка
int regim=1;                  // Режим часов
int seconds;
int Hours;
int minutes;
int day;
int month;
int year;
int weekday;
int bombtimeH; //таймер бомбы часы
int bombtimeM; //минуты
int bombtimeS; //секунды
String newPassword; //hold the new password
char passchars[10]; //charaters of newPassword
Password password1 = Password("7355608");   // Если введен этот пароль, то таймер на 40сек. этот пароль не поменять
Password password2 = Password("1234");      // Этот пароль хочу задавать самостоятельно каждый раз при включении рержима
Password password3 = Password("0000");      // А этот просто сделать каким ни будь секретным, типа пасхалки, а может вообще уберу
byte maxPasswordLength = 10;      // Максимальная длинна пароля
byte currentPasswordLength = 0;   // Текущий набранный пароль


void setup() {
  Serial.begin(9600);                              // Монитор порта для отладки
      pinMode(PIN_LED, OUTPUT);                   // Светодиод подсветки дисплея
      pinMode(PIN_BLINK, OUTPUT);                // Светодиод мигания бомбы
      pinMode(buzzer, OUTPUT);                  // Пищалка кнопок
      pinMode(switchPin, INPUT_PULLUP);        // Устанавливаем пин тумблера как вход с подтяжкой к питанию
      pinMode(relay, OUTPUT);                 // Реле бомбы как выход
      Wire.begin();
      watch.begin();
      lcd.init();
      //lcd.begin();
      //lcd.clear();
      lcd.backlight();
      lcd.createChar(0, cel);    // Цельсия
      lcd.createChar(1, bell);  // Колокольчик
      mp3_set_serial(Serial); // включаем передачу данных с DFPlayer mini mp3
      mp3_set_volume(25);     // устанавливаем громкость от 0 до 30
      mp3_set_EQ(0);          // устанавливаем эквалайзер от 0 до 5
}

void Regim_Clock(){
    lcd.setCursor(0,0);
    lcd.print(watch.gettime("H:i:s"));
    Wire.beginTransmission(DS3231_ADDRESS);
    Wire.write(0x11);
    Wire.endTransmission();
    Wire.requestFrom(DS3231_ADDRESS,2);
    byte msb = Wire.read();
    byte lsb = Wire.read();
    byte temperature = ((msb << 8)|lsb)/256.0;
    lcd.setCursor(12,0);
    lcd.print(temperature);
    lcd.write(byte(0));
    lcd.print("C");
    lcd.setCursor(0,1);
    lcd.print(watch.gettime("d-m-Y   D"));
    currentState = digitalRead(switchPin);                      //Проверяем состояние тумблера, если он выключен, и будет включен
    if (currentState != previousState && currentState == LOW){ //переходим в режим бомбы
    Regim_Bomb();}
    previousState = currentState;
    char key = keypad.getKey();
    if(key){tone(buzzer, 750, 100);}
    if(key == '*'){;Set_Time();}
          if (key == '1'){mp3_play(1);}
          if (key == '2'){mp3_play(2);}
}

//Установка времени
void Set_Time(){
  watch.gettime();
  Hours=(watch.gettime(Hours));
  minutes=(watch.gettime(minutes));
  day=(watch.gettime(day));
  month=(watch.gettime(month));
  year=(watch.gettime(year));
  weekday=(watch.gettime(weekday));
  regim=2;
  
  while(regim==2){  //установка часов
    char key = keypad.getKey();
    if (key){tone(buzzer, 750, 100);
      lcd.setCursor(0, 0);
      lcd.print(watch.gettime("H:i:s"));
      lcd.setCursor(0, 1);
      lcd.print(watch.gettime("d-m-Y   D"));
      watch.blinktime(3);
      if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
      Hours = Hours * 10 + (key - '0');
      if (Hours >= 24){Hours=0;}}}
      watch.settime(-1, -1, Hours);
      if (key == '*') {regim++;}
      if (key == '#') {watch.blinktime(0);regim=1;lcd.clear();}}
    
  while(regim==3){   //установка минут
    char key = keypad.getKey();
    if (key){tone(buzzer, 750, 100);
      lcd.setCursor(0, 0);
      lcd.print(watch.gettime("H:i:s"));
      lcd.setCursor(0, 1);
      lcd.print(watch.gettime("d-m-Y   D"));    
      watch.blinktime(2);
      if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
      minutes = minutes * 10 + (key - '0');
      if (minutes >= 60){minutes=0;}}}
      watch.settime(0, minutes);
      if (key == '*') {regim++;}
      if (key == '#') {watch.blinktime(0);regim=1;lcd.clear();}}
  
  while(regim==4){  //установка числа
      char key = keypad.getKey();
      if (key){tone(buzzer, 750, 100);
      lcd.setCursor(0, 0);
      lcd.print(watch.gettime("H:i:s"));
      lcd.setCursor(0, 1);
      lcd.print(watch.gettime("d-m-Y   D"));    
      watch.blinktime(4);
      if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
      day = day * 10 + (key - '0');
      if (day>32 ||  day==32){day=0;}}}        //if(day<0){day=31;}}}     
      watch.settime(-1, -1, -1, day);
      if (key == '*') {regim++;}
      if (key == '#') {watch.blinktime(0);regim=1;lcd.clear();}}
    
  while(regim==5){   //установка месяца
      char key = keypad.getKey();
      if (key){tone(buzzer, 750, 100);
      lcd.setCursor(0, 0);
      lcd.print(watch.gettime("H:i:s"));
      lcd.setCursor(0, 1);
      lcd.print(watch.gettime("d-m-Y   D"));    
      watch.blinktime(5);
      if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
      month = month * 10 + (key - '0');
      if (month>13 || month ==13){month=0;}}}    //if(month<0){month=12;}}}       
      watch.settime(-1, -1, -1, -1, month);
      if (key == '*') {regim++;}
      if (key == '#') {watch.blinktime(0);regim=1;lcd.clear();}}
    
  while(regim==6){   //установка года
      char key = keypad.getKey();
      if (key){tone(buzzer, 750, 100);
      lcd.setCursor(0, 0);
      lcd.print(watch.gettime("H:i:s"));
      lcd.setCursor(0, 1);
      lcd.print(watch.gettime("d-m-Y   D"));    
      watch.blinktime(6);
      if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
      year = year * 10 + (key - '0');
      if (year>100 || year ==100){year=0;}}}     //if(year<0){year=99;}}}     
      watch.settime(-1, -1, -1, -1, -1, year);
      if (key == '*') {regim++;}
      if (key == '#') {watch.blinktime(0);regim=1;lcd.clear();}}
        
  while(regim==7){   //установка дня недели
      char key = keypad.getKey();
      if (key){tone(buzzer, 750, 100);
      lcd.setCursor(0, 0);
      lcd.print(watch.gettime("H:i:s"));
      lcd.setCursor(0, 1);
      lcd.print(watch.gettime("d-m-Y   D"));    
      watch.blinktime(7);
      weekday = (key - '0');
      if(weekday == 7){weekday = 0;}}    
      watch.settime(-1, -1, -1, -1, -1, -1, weekday);
      if (key == '*') {watch.blinktime(0);Set_Time();lcd.clear();}
      if (key == '#') {watch.blinktime(0);regim=1;lcd.clear();}}}




//Режим установки бомбы
void Regim_Bomb(){
  regim=8;
  lcd.clear();

   while(regim==8){   //установка пароля бомбы
      auto_light();
      char key = keypad.getKey();
      if(key){tone(buzzer, 750, 100);}
      lcd.setCursor(0, 0);
      lcd.print(("Set  Pass"));
      lcd.setCursor(0, 1);
      lcd.print(("Press 1  2  3"));
      if (key != NO_KEY) {
      switch (key) {
      //case 'A': break;
      //case 'B': break;
      //case 'C': break;
      case '1': changePassword1(); break;
      case '2': changePassword2(); break;
      case '3': changePassword3(); break;
      case '#': lcd.clear();regim++; break;
      case '*': resetPassword(); break;
      //default: processNumberKey(key);
      }}  
      //if (key=='#'){watch.blinktime(0);regim++;lcd.clear();}
      }
        
    while(regim==9){   //установка таймера часов бомбы
      auto_light();
      char key = keypad.getKey();
      if(key){tone(buzzer, 750, 100);}
      blink_H(flagRead * 250);
  if (key){
       if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
       bombtimeH = bombtimeH * 10 + (key - '0');
       if (bombtimeH>23){bombtimeH=0;}if(bombtimeH<0){bombtimeH=23;}}
       else if (key == '*'){ // введен символ окончания числа
       if (bombtimeH >= 0){ // проверяем, что число было введено
       }}}
       if (key=='#'){lcd.clear();regim++;}}
    
    while(regim==10){   //установка таймера минут бомбы
      auto_light();
      char key = keypad.getKey();
      if(key){tone(buzzer, 750, 100);} 
      blink_M(flagRead * 250); 
      if (key){
      if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
      bombtimeM = bombtimeM * 10 + (key - '0'); // добавляем введенную цифру к числу
      if (bombtimeM>59){bombtimeM=0;}if(bombtimeM<0){bombtimeM=59;}}
      else if (key == '*'){ // введен символ окончания числа
      if (bombtimeM >= 0){ // проверяем, что число было введено
      }}}
      if (key=='#'){lcd.clear();regim++;}}

    while(regim==11){   //установка таймера секунд бомбы
      auto_light();
      char key = keypad.getKey();
      if(key){tone(buzzer, 750, 100);}
      blink_S(flagRead * 250);
      if (key){
      if (key >= '0' && key <= '9'){ // проверяем, введено ли однозначное или двухзначное число
      bombtimeS = bombtimeS * 10 + (key - '0'); // добавляем введенную цифру к числу
      if (bombtimeS>59){bombtimeS=0;}if(bombtimeS<0){bombtimeS=59;}}
      else if (key == '*'){ // введен символ окончания числа
      if (bombtimeS >= 1){ // проверяем, что число было введено
      }}}
      if (key=='#'){lcd.clear();regim++;}}


   
      
    while(regim==12){   //тиканье бомбы (таймер)
      auto_light();
      char key = keypad.getKey();
      if(key){tone(buzzer, 750, 100);}
      
  if (key != NO_KEY) {
    //delay(60);
    switch (key) {
      //case 'A': break;
      //case 'B': break;
      //case 'C': break;
      //case '1': changePassword1(); break;
      //case '2': changePassword2(); break;
      //case '3': changePassword3(); break;
      case '#': checkPassword(); break;
      case '*': resetPassword(); break;
      default: processNumberKey(key);
    }}
      bomb_tik(flagRead * 500);
      if (bombtimeH>23){bombtimeH=0;}if(bombtimeH<0){bombtimeH=23;}
      if (bombtimeM>59){bombtimeM=0;bombtimeH--;}if(bombtimeM<0){bombtimeM=59;bombtimeH--;}
      if (bombtimeS>59){bombtimeS=0;bombtimeM--;}if(bombtimeS<0){bombtimeS=59;bombtimeM--;}
            lcd.setCursor(0,0);
            lcd.print(currentPasswordLength);
            if (bombtimeH<10){lcd.setCursor(4,1);
            lcd.print("0");lcd.print(bombtimeH);}
            else{lcd.setCursor(4,1);lcd.print(bombtimeH);}
            lcd.setCursor(6,1);lcd.print(":");
            if(bombtimeM<10){lcd.setCursor(7,1);
            lcd.print("0");lcd.print(bombtimeM);}
            else{lcd.setCursor(7,1);lcd.print(bombtimeM);}
            lcd.setCursor(9,1);lcd.print(":");
            if(bombtimeS<10){lcd.setCursor(10,1);
            lcd.print("0");lcd.print(bombtimeS);}
            else{lcd.setCursor(10,1);lcd.print(bombtimeS);}
            if(bombtimeH==0&bombtimeM==0&bombtimeS==0){                //взрыв бомбы условие
             mp3_play(4);mp3_play(1);digitalWrite(relay, HIGH);delay(1000);digitalWrite(relay, LOW);regim=1;lcd.clear();}
      }}

      //Тиканье бомбы (убавление секунд, мигание светодиода)
   void bomb_tik(unsigned long interval){   //мигаем светодиодом бомбы
    static unsigned long prevTime=0;
    if(millis() - prevTime > interval){
    static boolean flag = 0;
    prevTime = millis();
    flag =! flag;
    if(flag){
      bombtimeS--;
      digitalWrite(PIN_BLINK, LOW);
    flagRead = 1;}
    else{
      digitalWrite(PIN_BLINK, HIGH);mp3_play(5);
    flagRead = 1;}}}

void changePassword1() {   // Устанавливается первыый пароль
  newPassword = "7355608";
  newPassword.toCharArray(passchars, newPassword.length() + 1); //convert string to char array
  password1.set(passchars);
  resetPassword();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(("SETUP"));
  lcd.setCursor(0,1);
  lcd.print(newPassword);
  delay(1000);
  lcd.clear();
}
void changePassword2() {    // Устанавливается второй пароль
  newPassword = "1234";
  newPassword.toCharArray(passchars, newPassword.length() + 1); //convert string to char array
  password2.set(passchars);
  resetPassword();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(("SETUP"));
  lcd.setCursor(0,1);
  lcd.print(newPassword);
  delay(1000);
  lcd.clear();
}
void changePassword3() {   // Устанавливается третии пароль
  newPassword = "0000";
  newPassword.toCharArray(passchars, newPassword.length() + 1); //convert string to char array
  password3.set(passchars);
  resetPassword();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(("SETUP"));
  lcd.setCursor(0,1);
  lcd.print(newPassword);
  delay(1000);
  lcd.clear();
}
void resetPassword() {   // Сбрасывает набранный ввод пароля
  password1.reset();
  password2.reset();
  password3.reset();
  currentPasswordLength = 0;
}
void checkPassword(){         // Проверка паролей на совпадение
  if (password1.evaluate()){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Bomb has ben");
    lcd.setCursor(0,1);
    lcd.print("   defuse...");
    delay(3000);
    digitalWrite(PIN_BLINK, LOW);lcd.clear();regim=1;
  }
  else if (password2.evaluate()){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Bomb has ben");
    lcd.setCursor(0,1);
    lcd.print("   defuse...");
    delay(3000);
    digitalWrite(PIN_BLINK, LOW);lcd.clear();regim=1;
  }
  else if (password3.evaluate()){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Bomb has ben");
    lcd.setCursor(0,1);
    lcd.print("   defuse...");
    delay(3000);
    digitalWrite(PIN_BLINK, LOW);lcd.clear();regim=1;
  }
  else{
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Wrong");
    delay(1000);
    lcd.clear();
  }
}
void processNumberKey(char key) {    // Ввод пароля 
  currentPasswordLength++;
  password1.append(key);   // Добавляет символ к текущему вводу пароля
  password2.append(key);
  password3.append(key);
  if (currentPasswordLength == maxPasswordLength) {
    checkPassword();
  }
}

 void blink_H(unsigned long interval){   //мигаем переменной часов таймера бомбы
    static unsigned long prevTime=0;
    if(millis() - prevTime > interval){
    static boolean flag = 0;
    prevTime = millis();
    flag =! flag;
    if(flag){
    lcd.clear();
    lcd.setCursor(4,0);
    lcd.print("Set Time");
    if(bombtimeH<10){
    lcd.setCursor(4, 1);
    lcd.print("0");
    lcd.setCursor(5, 1);}
    else{lcd.setCursor(4, 1);}
    lcd.print(bombtimeH); //показать врем
    lcd.print(":");
    if(bombtimeM<10){
    lcd.setCursor(7, 1);
    lcd.print("0");
    lcd.setCursor(8, 1);}
    else{lcd.setCursor(7, 1);}
    lcd.print(bombtimeM);
    lcd.print(":");
    if(bombtimeS<10){
    lcd.setCursor(10, 1);
    lcd.print("0");
    lcd.setCursor(11, 1);}
    else{lcd.setCursor(10, 1);}
    lcd.print(bombtimeS);
    flagRead = 1;}
    else{
    lcd.setCursor(4, 1);
    lcd.print("  ");
    flagRead = 1;}}}

 void blink_M(unsigned long interval){   //мигаем переменной минут таймера бомбы
    static unsigned long prevTime=0;
    if(millis() - prevTime > interval){
    static boolean flag = 0;
    prevTime = millis();
    flag =! flag;
    if(flag){
    lcd.clear();
    lcd.setCursor(4,0);
    lcd.print("Set Time");
    if(bombtimeH<10){
    lcd.setCursor(4, 1);
    lcd.print("0");
    lcd.setCursor(5, 1);}
    else{lcd.setCursor(4, 1);}
    lcd.print(bombtimeH); //показать врем
    lcd.print(":");
    if(bombtimeM<10){
    lcd.setCursor(7, 1);
    lcd.print("0");
    lcd.setCursor(8, 1);}
    else{lcd.setCursor(7, 1);}
    lcd.print(bombtimeM);
    lcd.print(":");
    if(bombtimeS<10){
    lcd.setCursor(10, 1);
    lcd.print("0");
    lcd.setCursor(11, 1);}
    else{lcd.setCursor(10, 1);}
    lcd.print(bombtimeS);
    flagRead = 1;}
    else{
    lcd.setCursor(7, 1);
    lcd.print("  ");
    flagRead = 1;}}}

 void blink_S(unsigned long interval){   //мигаем переменной секунд таймера бомбы
    static unsigned long prevTime=0;
    if(millis() - prevTime > interval){
    static boolean flag = 0;
    prevTime = millis();
    flag =! flag;
    if(flag){
    lcd.clear();
    lcd.setCursor(4,0);
    lcd.print("Set Time");
    if(bombtimeH<10){
    lcd.setCursor(4, 1);
    lcd.print("0");
    lcd.setCursor(5, 1);}
    else{lcd.setCursor(4, 1);}
    lcd.print(bombtimeH); //показать врем
    lcd.print(":");
    if(bombtimeM<10){
    lcd.setCursor(7, 1);
    lcd.print("0");
    lcd.setCursor(8, 1);}
    else{lcd.setCursor(7, 1);}
    lcd.print(bombtimeM);
    lcd.print(":");
    if(bombtimeS<10){
    lcd.setCursor(10, 1);
    lcd.print("0");
    lcd.setCursor(11, 1);}
    else{lcd.setCursor(10, 1);}
    lcd.print(bombtimeS);
    flagRead = 1;}
    else{
    lcd.setCursor(10, 1);
    lcd.print("  ");
    flagRead = 1;}}}


void alarm_work(){
  
}


//Автоматическая регулировка яркости
  void auto_light(){
  int val = analogRead(PIN_PHOTO_SENSOR);
  int ledPower = map(val, 0, 1023, 1, 255);
  analogWrite(PIN_LED, ledPower); // Меняем яркость
  //Serial.println(val);
}


void loop() {
  auto_light();
  if(regim = 1){Regim_Clock();}
}

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

Вам соврали.

5 лайков

Если не разбираетесь, то купите. А если хотите разобраться, то учите. Не зря начинают с азов и теории. Ибо не зная теории алгоритмов всегда наступает момент, когда код становится тупиковым: невозможность его развивать и вообще понимать. Он превращается в кашу буковок и циферок.
Единственный совет: пишите изначально правильно. В этот код нельзя вменяемо вставить новый функционал.

В этот код нельзя вставить новый функционал. Почему? Циклы как то не так сделаны? While не нужно использовать?

Нет как такового правильного “каркаса” программы. Это не “ошибка в строке N”. Это " написать всё с нуля".
Логика программы сломала мне мозг.
Здесь необходимо применить конечный автомат как минимум.
Вот Вы можете описать циклограмму кода?

Bomb has been planted ))

Роджер дед)))
Как раз домой еду. Ща постреляю))

Ну типа есть режим отображения часов, режим с настройкой даты и времени. Режим установки бомбы, задание пароля и таймера, и режим обезвреживания. Парочка побочных циклов с миганием переменных и авто яркостью дисплея. Я ведь пишу как умею. Я электрик, а не программист, поэтому и зашел на форум к умным людям за советом. Я как бы и раньше делал небольшие проекты, спаять что то для меня не проблема, а вот с написанием кода беда


Это еще не конечный результат

за тобой выехали…

Зачем заниматься не своим делом?

Поэтому умные люди посоветовали:

  • сначала почитать про конечные автоматы,
  • затем переписать все с нуля в соответствии с прочитанным.

Вы получили как раз то, что хотели.

PS. Халтура - это всегда плохо. Но бывает, что к халтуре принуждают жизненные обстоятельства, а в случае хобби то зачем халтуру делать?
Хобби для чего? - для удовольствия.
А какое может быть удовольствие от халтуры.

Что конкретно в моем коде не так? Какая конструкция сделана неправильно?

Уквасчв ррапкм воуирмв

Какая буква неправильная? Все правильные. А в сумме - абракадабра.
Так и в вашем коде - конструкции по отдельности вроде правильные, а программа - шлак :wink:

1 лайк

Да блин… А как надо то… Схематично примерно?

А как телевизор спаять? Ну, схематично, в двух словах, чтобы учитель физкультуры смог сразу и качественно.

Начните с простого - примера к библиотеке клавиатуры, повыводите вводимые числа на экран.

Я сейчас не конкретно про вывод цифр и ввод пароля, а про весь код в целом. Как должна выглядеть блок схема?

Вы серьезно хотите, чтобы кто-то за вас блок-схему программы продумал?

Я всего лишь попросил помочь сделать что бы можно было ввести свой пароль с клавиатуры, а мне предлогают выучить весь язык программирования, и написать новый код… Наверно для Вас это тоже что то из нереального. Я уверен что там пара строчек кода, просто мне в силу моей не образованности не дано понять как их написать. Но и помощи похоже ждать не придется

Это я сразу написал.

Ждите коллег по контре, которые умеют программировать, если сами не хотите напрягаться.

Не пойму зачем форумы существуют. Так можно в любую тему зайти и написать. Ты бездарь, иди учи физику за 7 класс… На старом форуме помню помогали, не писали код за меня, а давали шаблон, образец, каркас… Давно это было правда, наверно людям кроме как послать учиться больше нечего сказать… Вы на форум заходите что бы над убогими поугарать? Я без обид как бы… И обидеть не кого не хочу. Так что если что сорян. Пойду учить физику за 7 класс…

1 лайк