#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
#define bu1 D3//定义宏
#define bu2 D4
#define bu3 D7
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0 ,16);//u8g2的配置
int num=0,a=101,b=0,b1,b2,b3;//不用说吧
int i=0,r,ok=1;
void setup(){
Serial.begin(9600);//波特率9600
pinMode(bu1,INPUT_PULLUP);//上拉
pinMode(bu2,INPUT_PULLUP);
pinMode(bu3,INPUT_PULLUP);
u8g2.begin();
u8g2.enableUTF8Print();
r=random(0,101);
}
void loop(){
u8g2.setFont(u8g2_font_unifont_t_chinese2);
u8g2.setFontDirection(0);
/*int b1=digitalRead(bu1);
int b2=digitalRead(bu2);
int b3=digitalRead(bu3);
if(b1==HIGH)
num++;
if(b2==HIGH)num+=10;*/
u8g2.setFontDirection(0);
u8g2.firstPage();//说明一下,因为do while会一直循环下去,所以你不放在do while里面只会执行1次
do {
b1=digitalRead(bu1);//比较容易的输入
b2=digitalRead(bu2);
b3=digitalRead(bu3);
if(b1==LOW){
delay(80);
Serial.println("b1");
num++; }
if(b2==LOW){
num=num+3;
delay(80);
Serial.println("b2");}
/* if(num==r){
if(b3==LOW)ok=0;
else ok=1;
if(ok==0){
u8g2.setCursor(0,55);
u8g2.print("you lose!");
} }*/
if(b3==LOW){
//程序的主要部
if(num!=r){
if(num<a&&num>r){a=num;
num=0;break;}//一个判断数值
if(num>b&&num<=r){ b=num;num=0;break;}
}else ok=0;
delay(100);
}
if(ok==0){
u8g2.setCursor(0,55);
u8g2.print("you lose!");
}
if(a-b==2){
u8g2.setCursor(0,55);
u8g2.print("you win!");
}
/*if(a-b==2&&bu3==HIGH){
ok=1;
a=101;
b=0;
u8g2.clearBuffer();
}*/
/* if(ok==0&&bu3==HIGH){
ok=1;
a=101;
b=0;
u8g2.clearBuffer();
}*/
if(num>=100)num=0;
u8g2.setCursor(0,15);
u8g2.print(num);
u8g2.setCursor(0,30);
u8g2.print("num is>=");u8g2.print(b);u8g2.print('<');u8g2.print(a);
/*u8g2.setCursor(20,15);
u8g2.print(r);*/
} while ( u8g2.nextPage() );//输出
} |