Помогите разобраться в коде.
- Войдите на сайт для отправки комментариев
Сб, 05/12/2020 - 15:34
Помогите пожалуйста разобраться в коде из интернета
курсач надо защитить не понимаю почти ничего
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define UP_BUTTON A2
#define DOWN_BUTTON A3
const unsigned long PADDLE_RATE = 33; // скорость клюшки
const unsigned long BALL_RATE = 16; // скорость мяча
const uint8_t PADDLE_HEIGHT = 16; // высота клюшки
#define SCREEN_WIDTH 128 // OLED display width, in pixels ширина
#define SCREEN_HEIGHT 64 // OLED display height, in pixels высота
// Объявление для дисплея SSD1306, подключенного к I2C (выводы SDA, SCL)
#define OLED_RESET 4 // Сброс пин # (или -1, если общий пин сброса Arduino)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void drawCourt();
uint8_t ball_x = 64, ball_y = 32;
uint8_t ball_dir_x = 1, ball_dir_y = 1;
unsigned long ball_update;
unsigned long paddle_update;
const uint8_t CPU_X = 12;
uint8_t cpu_y = 16;
const uint8_t PLAYER_X = 115;
uint8_t player_y = 16;
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
unsigned long start = millis();
pinMode(UP_BUTTON, INPUT);
pinMode(DOWN_BUTTON, INPUT);
digitalWrite(UP_BUTTON,1);
digitalWrite(DOWN_BUTTON,1);
display.clearDisplay();
drawCourt();
while(millis() - start < 2000);
display.display();
ball_update = millis();
paddle_update = ball_update;
}
void loop() {
bool update = false;
unsigned long time = millis();
static bool up_state = false;
static bool down_state = false;
up_state |= (digitalRead(UP_BUTTON) == LOW);
down_state |= (digitalRead(DOWN_BUTTON) == LOW);
if(time > ball_update) {
uint8_t new_x = ball_x + ball_dir_x;
uint8_t new_y = ball_y + ball_dir_y;
// Check if we hit the vertical walls
if(new_x == 0 || new_x == 127) {
ball_dir_x = -ball_dir_x;
new_x += ball_dir_x + ball_dir_x;
}
// Check if we hit the horizontal walls.
if(new_y == 0 || new_y == 63) {
ball_dir_y = -ball_dir_y;
new_y += ball_dir_y + ball_dir_y;
}
// Check if we hit the CPU paddle
if(new_x == CPU_X && new_y >= cpu_y && new_y <= cpu_y + PADDLE_HEIGHT) {
ball_dir_x = -ball_dir_x;
new_x += ball_dir_x + ball_dir_x;
}
// Check if we hit the player paddle
if(new_x == PLAYER_X
&& new_y >= player_y
&& new_y <= player_y + PADDLE_HEIGHT)
{
ball_dir_x = -ball_dir_x;
new_x += ball_dir_x + ball_dir_x;
}
display.drawPixel(ball_x, ball_y, BLACK);
display.drawPixel(new_x, new_y, WHITE);
ball_x = new_x;
ball_y = new_y;
ball_update += BALL_RATE;
update = true;
}
if(time > paddle_update) {
paddle_update += PADDLE_RATE;
// CPU paddle
display.drawFastVLine(CPU_X, cpu_y, PADDLE_HEIGHT, BLACK);
const uint8_t half_paddle = PADDLE_HEIGHT >> 1;
if(cpu_y + half_paddle > ball_y) {
cpu_y -= 1;
}
if(cpu_y + half_paddle < ball_y) {
cpu_y += 1;
}
if(cpu_y < 1) cpu_y = 1;
if(cpu_y + PADDLE_HEIGHT > 63) cpu_y = 63 - PADDLE_HEIGHT;
display.drawFastVLine(CPU_X, cpu_y, PADDLE_HEIGHT, WHITE);
// Player paddle
display.drawFastVLine(PLAYER_X, player_y, PADDLE_HEIGHT, BLACK);
if(up_state) {
player_y -= 1;
}
if(down_state) {
player_y += 1;
}
up_state = down_state = false;
if(player_y < 1) player_y = 1;
if(player_y + PADDLE_HEIGHT > 63) player_y = 63 - PADDLE_HEIGHT;
display.drawFastVLine(PLAYER_X, player_y, PADDLE_HEIGHT, WHITE);
update = true;
}
if(update)
display.display();
}
void drawCourt() {
display.drawRect(0, 0, 128, 64, WHITE);
}
Полная лажа в строке +100500 !
Это как?
Сначала не плохо бы было научиться ЧИТАТЬ ! http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Помочь как - составить компанию в пабе? ОК, пиши адрес.
извиняюсь просто не глядя вырезал вставил
Теперь не глядя учись портянки наматывать. Это легче, чем курсач
Дет, ща в армейке можна внасках рассекать и мамке памабиле пазванить )))
Этт те не в 90х, када ничо небыло)))
курсач надо защитить
Не надо. От слова "совсем".
не понимаю почти ничего
Вот поэтому и не надо.
Самый прикол в том что и студенты-медики сейчас такие же ...
10000руб
За 5000р распишу, что и как.
kakmycmail@gmail.com
расказываю как я одному студенту помог сдать курсач на 5 баллов (кстати по ардуинке)
я ему просто дал ссылок на учебники и четко описал задачу, после этого он всего 1 раз у меня спросил по коду и все написал за неделю. Хотя изначально плакал, что программирование не понимает и прогуливал все...
Ну так:
1. Ссылки на учебнике есть в песочнице. В достаточном количестве.
2. Конкретную задачу должен ставить преподаватель.
3. На конкретные вопросы на форуме всегда отвечали вне зависимости от того, студент или нет.
Тему прикрыл.
Коллеги, предлагаю не засорять форум.
Хотите заработать денег, предложите создать новую в "Ищу исполнителя", но не начинайте здесь торг.
С отношением к ленивым студентам вроде давно определились.