#2 Програмування Arduino » Нужна помощь в несложной задачи,камень-ножницы-бумага с помощью кейпад » 2021-04-28 16:13:01

Данил
відповідей: 3

Здравствуйте,мне нужно создать програму камень ножницы бумага с помощью кейпада.
Условия:
1.игра против бота
2.в игре должно быть 3 раунда
3.после каждого раунда выводиться в сериал монитор кто выиграл или ничья(бот или игрок)
4.по завершению игры должно показать кто выиграл в общем или ничья

#include <Keypad.h>

const byte ROWS = 4; 
const byte COLS = 4; 

int user_score=0,bot_score=0,rounds = 3,x,y;

char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte rowPins[ROWS] = {9, 8, 7, 6}; 
byte colPins[COLS] = {5, 4, 3, 2}; 

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){
  Serial.begin(9600);
x=random(1,3);

}

  
void loop(){
char customKey = customKeypad.getKey();
if (customKey=='1'){
y=1;
}
if (customKey=='2'){
y=2;
}
if (customKey=='3'){
y=3;
}

  if(rounds!=0){
  
if(y==x){
user_score++;
bot_score++;
rounds--;
x=random(1,3);
  Serial.println("BotWin");
}

else if(y==1 && x==2){
  user_score++;
  rounds--;
x=random(1,3);
  Serial.println("UserWin");
}
else if(y==1 && x==3){
  bot_score++;      
  rounds--;
  Serial.println("BotWin");
}
else if(y==2 && x==3){
  user_score++;
  rounds--;
x=random(1,3);  
  Serial.println("UserWin");
}

else if(x==1 && y==2){
  bot_score++;    
  rounds--;
x=random(1,3);
  Serial.println("BotWin");
}
else if(x==1 && y==3){
  user_score++;
  rounds--;
 x=random(1,3);
  Serial.println("UserWin");
}
else if(x==2 && y==3){
  bot_score++;
  rounds--;
x=random(1,3);
  Serial.println("BotWin");
}      
  }
  else if(rounds=0) {
    if(user_score>bot_score){
        Serial.println("USERWIN");
    }
    else if(user_score<bot_score){
        Serial.println("BOTWIN");
    }
    else{
        Serial.println("DRAW");  
    }
  }
}

#4 Програмування Arduino » Помогите новичку » 2020-02-15 15:20:45

Данил
відповідей: 20

Нужно на led дисплее в tinkercad вывести горит лампочка или нет, если горит то допустим поставить точку (готовая схема LED).Точка горит постоянно.Знаю ошибка скорее всего очень глупая но подскажите пж

int state = 0;
int led1=6;
int led2=7;
int led3=8;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
void setup (){
lcd.begin(16,2);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}

void loop(){
  for(int i=6; i<9; i++)
  {
  digitalWrite(i,HIGH);
  delay(1000);
  digitalWrite(i,LOW);
  }
  for(int i=8; i<5; i--)
  {
  digitalWrite(i,HIGH);
  delay(1000);
  digitalWrite(i,LOW);
  }
lcd.setCursor(0,0);
lcd.print("123"); 
state = digitalRead (led1);
  if(state == HIGH ){
    lcd.setCursor(0,1);
    lcd.print("1");
  }
    state = digitalRead (led1);
  if(state == LOW ){
    lcd.setCursor(0,1);
    lcd.print(".");
  }
state = digitalRead (led2);
  if(state == HIGH )
    lcd.print("2");
state = digitalRead (led2);
  if(state == LOW )
    lcd.print(".");
state = digitalRead (led3);
  if(state == HIGH )
    lcd.print("3");
state = digitalRead (led3);
  if(state == LOW )
    lcd.print(".");
  }

Підвал форуму