Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.12 KB | None | 0 0
  1. #define BUZZLER_PIN 9
  2. int light = 12;
  3. int lbtn = 2;
  4. int rbtn = 7;
  5. int ubtn = 4;
  6. int dbtn = 8;
  7. void setup() {
  8. Serial.begin(14400);
  9. pinMode(BUZZLER_PIN, OUTPUT);
  10. pinMode(lbtn, INPUT);
  11. pinMode(rbtn, INPUT);
  12. pinMode(ubtn, INPUT);
  13. pinMode(dbtn, INPUT);
  14. pinMode(light, OUTPUT);
  15. }
  16. void loop() {
  17. String stringOne = ":=zero";
  18. if(!digitalRead(ubtn))
  19. {
  20. Serial.println(":=ubtn");
  21. }
  22. else if(!digitalRead(rbtn))
  23. {
  24. Serial.println(":=rbtn");
  25. }
  26. else if(!digitalRead(lbtn))
  27. {
  28. Serial.println(":=lbtn");
  29. }
  30. else if(!digitalRead(dbtn))
  31. {
  32. Serial.println(":=dbtn");
  33. }
  34.  
  35. else
  36. {
  37. Serial.println(stringOne);
  38. }
  39.  
  40. if (Serial.available() > 0)
  41. {
  42.  
  43. char incomingChar = Serial.read();
  44. switch (incomingChar)
  45. {
  46. case '1':
  47. tone(BUZZLER_PIN, 3500, 100);
  48. delay(50);
  49. break;
  50. case '0':
  51. analogWrite(light, 0);
  52. break;
  53. case '2':
  54. analogWrite(light, 225);
  55. tone(BUZZLER_PIN, 60, 1000);
  56. delay(1000);
  57. tone(BUZZLER_PIN, 4000, 400);
  58. delay(400);
  59. break;
  60. }
  61. }
  62.  
  63. delay(100);
  64. }
  65. ------------------------------------------------------------------------------------------
  66. using System;
  67. using System.Collections.Generic;
  68. using System.ComponentModel;
  69. using System.Data;
  70. using System.Drawing;
  71. using System.IO.Ports;
  72. using System.Linq;
  73. using System.Text;
  74. using System.Threading;
  75. using System.Threading.Tasks;
  76. using System.Timers;
  77. using System.Windows.Forms;
  78.  
  79. namespace WindowsFormsApplication1
  80. {
  81. public partial class Form1 : Form
  82. {
  83. List<Point> enemys = new List<Point>();
  84. Point player;
  85. SolidBrush sb = new SolidBrush(Color.Red);
  86. SolidBrush sbb = new SolidBrush(Color.Blue);
  87. Pen playerPen;
  88. Pen enemyPen;
  89. SerialPort currentPort;
  90. System.Timers.Timer aTimer;
  91. Graphics g;
  92. int pos;
  93. Random r = new Random(DateTime.Now.Millisecond);
  94. private delegate void updateDelegate(string txt);
  95. public Form1()
  96. {
  97. InitializeComponent();
  98.  
  99. }
  100. int minD = 10000;
  101. private void Form1_Load(object sender, EventArgs e)
  102. {
  103.  
  104. enemys.Add(new Point(420, 220));
  105. playerPen=new Pen(sb,5);
  106. enemyPen=new Pen(sbb,5);
  107. player = new Point(picResult.Width/2,picResult.Height/2);
  108. aTimer = new System.Timers.Timer(300);
  109. aTimer.Elapsed += OnTimedEvent;
  110. aTimer.AutoReset = true;
  111. aTimer.Enabled = true;
  112. currentPort = new SerialPort("COM5", 14400);
  113. currentPort.Open();
  114. g = picResult.CreateGraphics();
  115.  
  116.  
  117. new Task(
  118. () =>
  119. {
  120. bool isGot = false;
  121. int id = 0;
  122. while (true)
  123. {
  124. isGot = false;
  125. g.Clear(Color.White);
  126. g.DrawEllipse(playerPen, new Rectangle(player.X - 5, player.Y - 5, 10, 10));
  127. for (int i = 0; i < enemys.Count();++i )
  128. {
  129. int distance = (enemys[i].X - player.X) * (enemys[i].X - player.X) + (enemys[i].Y - player.Y) * (enemys[i].Y - player.Y);
  130. if(minD>distance)
  131. {
  132. minD=distance;
  133. }
  134. g.DrawEllipse(enemyPen, new Rectangle(enemys[i].X - 5, enemys[i].Y - 5, 10, 10));
  135. if (distance < 310)
  136. {
  137. isGot = true;
  138. id = i;
  139. lblResult.BeginInvoke(new updateDelegate(updateTextBox), "YOU GOT IT!!!");
  140. break;
  141.  
  142. //MessageBox.Show("You lose!");
  143. //Form1_FormClosed(this, new FormClosedEventArgs(CloseReason.None));
  144. }
  145. }
  146. if(isGot)
  147. {
  148. enemys.RemoveAt(id);
  149. if(enemys.Count()==0)
  150. {
  151. currentPort.Write("2");
  152. MessageBox.Show("You win!");
  153. currentPort.Write("0");
  154. for (int i = 0; i < 4; ++i)
  155. {
  156. enemys.Add(new Point(r.Next(0, picResult.Width), r.Next(0, picResult.Height)));
  157. }
  158. // Form1_FormClosed(this, new FormClosedEventArgs(CloseReason.None));
  159. }
  160. }
  161. //lblResult.BeginInvoke(new updateDelegate(updateTextBox), (minD/50).ToString());
  162. Thread.Sleep(50);
  163. char val =(char) (30 + (minD/50));
  164.  
  165. }
  166. }
  167. ).Start();
  168. }
  169. private void OnTimedEvent(object sender, ElapsedEventArgs e)
  170. {
  171. if (!currentPort.IsOpen) return;
  172. try
  173. {
  174. g.Clear(Color.White);
  175. currentPort.DiscardInBuffer();
  176.  
  177. string strFromPort = currentPort.ReadLine();
  178.  
  179. if (strFromPort.Contains(":=lbtn"))
  180. {
  181. lblResult.BeginInvoke(new updateDelegate(updateTextBox), "LEFT");
  182. currentPort.Write("1");
  183. player.X = player.X - 5;
  184. }
  185. else if (strFromPort.Contains(":=rbtn"))
  186. {
  187. lblResult.BeginInvoke(new updateDelegate(updateTextBox), "RIGHT");
  188. currentPort.Write("1");
  189. player.X = player.X + 5;
  190. }
  191. else if (strFromPort.Contains(":=ubtn"))
  192. {
  193. lblResult.BeginInvoke(new updateDelegate(updateTextBox), "UP");
  194. currentPort.Write("1");
  195. player.Y = player.Y - 5;
  196. }
  197. else if (strFromPort.Contains(":=dbtn"))
  198. {
  199. lblResult.BeginInvoke(new updateDelegate(updateTextBox), "DOWN");
  200. currentPort.Write("1");
  201. player.Y = player.Y + 5;
  202. }
  203. else
  204. {
  205. lblResult.BeginInvoke(new updateDelegate(updateTextBox), "NONE");
  206. }
  207. //lblPortData.Dispatcher.BeginInvoke(new updateDelegate(updateTextBox), strFromPort);
  208. }
  209. catch { }
  210. }
  211. private void updateTextBox(string txt)
  212. {
  213. lblResult.Text = txt;
  214. }
  215.  
  216. private void Form1_FormClosed(object sender, FormClosedEventArgs e)
  217. {
  218. currentPort.Close();
  219. }
  220. }
  221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement