#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "SSD1306TUR.h"
#include "U8glib.h"
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C // Datasheete bakınız; 0x3D -> 128x64, 0x3C -> 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);
const byte buttonPins[] = {2, 3, 4};
const byte ledPins[] = {11, 12, 13};
const byte directionPins[] = {7, 8};
int buttonControlTop = 0;
int buttonControlBottom = 0;
int buttonControlGreen;
int buttonControlRed;
int buttonControlYellow;
int buttonController[] = {buttonControlGreen, buttonControlYellow, buttonControlRed};
int gameWidth = 56;
int gameHeight = 112;
int uzayAraciHeight = 15;
int uzayAraciWidth = 6;
int engeller[8] = {0, 1, 2, 3, 4, 5, 6, 7};
int ilk = 123;
int ikinci = 123;
int ucuncu = 123;
int uzayAraci = 10;
int r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13;
int asagi = 7;
int yukari = 6;
int randomlar[] = {r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13};
void setup() {
Serial.begin(115200);
pinMode(buttonControlTop, INPUT);
pinMode(buttonControlBottom, INPUT);
pinMode(asagi, INPUT);
pinMode(yukari, INPUT);
for(int i = 0; i < 3; i++){
pinMode(buttonPins[i], INPUT);
pinMode(ledPins[i], OUTPUT);
}
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
display.setCursor(0,0);
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.println ("1. icin sarı butona basın");
display.println("2. icin yeşil butona basın");
display.println("Oyunu başlatmak icin kırmızı butona basın");
display.display();
for(int i = 0; i < 12; i++)
{
randomlar[i] = random(8);
}
if(asagi == 1){
uzayAraci += 7;
}
}
void loop() {
randomSeed(analogRead(0));
for(int i = 0; i < 3; i++){
buttonController[i] = digitalRead(buttonPins[i]);
}
if(buttonController[0] == 1){
//yeşile bastı, 2. zorluk seviyesi
display.clearDisplay();
display.setCursor(0,0);
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.println ("2. zorluk seviyesine hosgeldiniz");
display.display();
delay(1000);
}
else if(buttonController[1] == 1){
//sarıya bastı, 1. zorluk seviyesi
display.clearDisplay();
display.setCursor(0,0);
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.println ("1. zorluk seviyesine hosgeldiniz");
seviye1();
display.display();
}
else if(buttonController[2] == 1){
//kırmızıya bastı, oyun başlıyor
display.clearDisplay();
display.setCursor(0,0);
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.println ("OYUN BASLIYOR");
display.display();
delay(1000);
}
buttonControlTop = digitalRead(8);
buttonControlBottom = digitalRead(7);
if(buttonControlBottom == 1){
uzayAraci += 10;
}
else if(buttonControlTop == 1){
uzayAraci -= 10;
}
delay(500);
}
void seviye1(){
ilk -= 7;
display.clearDisplay();
display.writeFillRect(0,uzayAraci,uzayAraciHeight, uzayAraciWidth,1); //uzay aracı
display.writeFillRect(ilk,engeller[randomlar[0]] * 7, 7, 7, 1); //engeli
if(ilk < 109){
display.writeFillRect(ikinci,engeller[randomlar[1]] * 7, 7, 7, 1); //engeli çizdin
display.display();
ikinci -= 7;
}
//recur(123);
display.display();
delay(100);
}