Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define BUZZLER_PIN 9
- int light = 12;
- int lbtn = 2;
- int rbtn = 7;
- int ubtn = 4;
- int dbtn = 8;
- void setup() {
- Serial.begin(14400);
- pinMode(BUZZLER_PIN, OUTPUT);
- pinMode(lbtn, INPUT);
- pinMode(rbtn, INPUT);
- pinMode(ubtn, INPUT);
- pinMode(dbtn, INPUT);
- pinMode(light, OUTPUT);
- }
- void loop() {
- String stringOne = ":=zero";
- if(!digitalRead(ubtn))
- {
- Serial.println(":=ubtn");
- }
- else if(!digitalRead(rbtn))
- {
- Serial.println(":=rbtn");
- }
- else if(!digitalRead(lbtn))
- {
- Serial.println(":=lbtn");
- }
- else if(!digitalRead(dbtn))
- {
- Serial.println(":=dbtn");
- }
- else
- {
- Serial.println(stringOne);
- }
- if (Serial.available() > 0)
- {
- char incomingChar = Serial.read();
- switch (incomingChar)
- {
- case '1':
- tone(BUZZLER_PIN, 3500, 100);
- delay(50);
- break;
- case '0':
- analogWrite(light, 0);
- break;
- case '2':
- analogWrite(light, 225);
- tone(BUZZLER_PIN, 60, 1000);
- delay(1000);
- tone(BUZZLER_PIN, 4000, 400);
- delay(400);
- break;
- }
- }
- delay(100);
- }
- ------------------------------------------------------------------------------------------
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.IO.Ports;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Timers;
- using System.Windows.Forms;
- namespace WindowsFormsApplication1
- {
- public partial class Form1 : Form
- {
- List<Point> enemys = new List<Point>();
- Point player;
- SolidBrush sb = new SolidBrush(Color.Red);
- SolidBrush sbb = new SolidBrush(Color.Blue);
- Pen playerPen;
- Pen enemyPen;
- SerialPort currentPort;
- System.Timers.Timer aTimer;
- Graphics g;
- int pos;
- Random r = new Random(DateTime.Now.Millisecond);
- private delegate void updateDelegate(string txt);
- public Form1()
- {
- InitializeComponent();
- }
- int minD = 10000;
- private void Form1_Load(object sender, EventArgs e)
- {
- enemys.Add(new Point(420, 220));
- playerPen=new Pen(sb,5);
- enemyPen=new Pen(sbb,5);
- player = new Point(picResult.Width/2,picResult.Height/2);
- aTimer = new System.Timers.Timer(300);
- aTimer.Elapsed += OnTimedEvent;
- aTimer.AutoReset = true;
- aTimer.Enabled = true;
- currentPort = new SerialPort("COM5", 14400);
- currentPort.Open();
- g = picResult.CreateGraphics();
- new Task(
- () =>
- {
- bool isGot = false;
- int id = 0;
- while (true)
- {
- isGot = false;
- g.Clear(Color.White);
- g.DrawEllipse(playerPen, new Rectangle(player.X - 5, player.Y - 5, 10, 10));
- for (int i = 0; i < enemys.Count();++i )
- {
- int distance = (enemys[i].X - player.X) * (enemys[i].X - player.X) + (enemys[i].Y - player.Y) * (enemys[i].Y - player.Y);
- if(minD>distance)
- {
- minD=distance;
- }
- g.DrawEllipse(enemyPen, new Rectangle(enemys[i].X - 5, enemys[i].Y - 5, 10, 10));
- if (distance < 310)
- {
- isGot = true;
- id = i;
- lblResult.BeginInvoke(new updateDelegate(updateTextBox), "YOU GOT IT!!!");
- break;
- //MessageBox.Show("You lose!");
- //Form1_FormClosed(this, new FormClosedEventArgs(CloseReason.None));
- }
- }
- if(isGot)
- {
- enemys.RemoveAt(id);
- if(enemys.Count()==0)
- {
- currentPort.Write("2");
- MessageBox.Show("You win!");
- currentPort.Write("0");
- for (int i = 0; i < 4; ++i)
- {
- enemys.Add(new Point(r.Next(0, picResult.Width), r.Next(0, picResult.Height)));
- }
- // Form1_FormClosed(this, new FormClosedEventArgs(CloseReason.None));
- }
- }
- //lblResult.BeginInvoke(new updateDelegate(updateTextBox), (minD/50).ToString());
- Thread.Sleep(50);
- char val =(char) (30 + (minD/50));
- }
- }
- ).Start();
- }
- private void OnTimedEvent(object sender, ElapsedEventArgs e)
- {
- if (!currentPort.IsOpen) return;
- try
- {
- g.Clear(Color.White);
- currentPort.DiscardInBuffer();
- string strFromPort = currentPort.ReadLine();
- if (strFromPort.Contains(":=lbtn"))
- {
- lblResult.BeginInvoke(new updateDelegate(updateTextBox), "LEFT");
- currentPort.Write("1");
- player.X = player.X - 5;
- }
- else if (strFromPort.Contains(":=rbtn"))
- {
- lblResult.BeginInvoke(new updateDelegate(updateTextBox), "RIGHT");
- currentPort.Write("1");
- player.X = player.X + 5;
- }
- else if (strFromPort.Contains(":=ubtn"))
- {
- lblResult.BeginInvoke(new updateDelegate(updateTextBox), "UP");
- currentPort.Write("1");
- player.Y = player.Y - 5;
- }
- else if (strFromPort.Contains(":=dbtn"))
- {
- lblResult.BeginInvoke(new updateDelegate(updateTextBox), "DOWN");
- currentPort.Write("1");
- player.Y = player.Y + 5;
- }
- else
- {
- lblResult.BeginInvoke(new updateDelegate(updateTextBox), "NONE");
- }
- //lblPortData.Dispatcher.BeginInvoke(new updateDelegate(updateTextBox), strFromPort);
- }
- catch { }
- }
- private void updateTextBox(string txt)
- {
- lblResult.Text = txt;
- }
- private void Form1_FormClosed(object sender, FormClosedEventArgs e)
- {
- currentPort.Close();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement