Advertisement
XfreeBG

Untitled

May 15th, 2023
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.68 KB | None | 0 0
  1. using Microsoft.EntityFrameworkCore;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Linq.Expressions;
  6. using System.Security.Cryptography.X509Certificates;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9.  
  10. namespace TicTacToe.Multiplayer
  11. {
  12.  
  13. public class Service
  14. {
  15. public void Code()
  16. {
  17. TTTContext context = new TTTContext();
  18. int counter = 0;
  19. bool yourTurn;
  20. char symbol = ' ';
  21. bool first;
  22.  
  23.  
  24. /*Box box1 = new Box(1, 'A');
  25. context.Boxes.Add(box1);
  26. context.SaveChanges();
  27. box1 = context.Boxes.AsNoTracking().First(p => p.Field == 1);
  28. box1.Symbol = 'B';
  29. context.Boxes.Update(box1);
  30. context.SaveChanges();*/
  31.  
  32. Box box1 = new Box(1, ' ');
  33. Box box2 = new Box(2, ' ');
  34. Box box3 = new Box(3, ' ');
  35. Box box4 = new Box(4, ' ');
  36. Box box5 = new Box(5, ' ');
  37. Box box6 = new Box(6, ' ');
  38. Box box7 = new Box(7, ' ');
  39. Box box8 = new Box(8, ' ');
  40. Box box9 = new Box(9, ' ');
  41. context.Boxes.Update(box1);
  42. context.Boxes.Update(box2);
  43. context.Boxes.Update(box3);
  44. context.Boxes.Update(box4);
  45. context.Boxes.Update(box5);
  46. context.Boxes.Update(box6);
  47. context.Boxes.Update(box7);
  48. context.Boxes.Update(box8);
  49. context.Boxes.Update(box9);
  50. context.SaveChanges();
  51.  
  52. Random random = new Random();
  53. bool order = random.Next(2) == 0;
  54. Player player1 = new Player(1, order, false, false);
  55. Player player2 = new Player(2, false, false, false);
  56.  
  57.  
  58. if (context.Players.Contains(player1))
  59. {
  60. player1 = context.Players.AsNoTracking().First(p => p.ID == player1.ID);
  61. if(player1.FirstOrder)
  62. {
  63. player2 = new Player(2, false, false, false);
  64. symbol = 'O';
  65. first = player2.FirstOrder;
  66. context.Players.Update(player2);
  67. context.SaveChanges();
  68. }
  69. else
  70. {
  71. player2 = new Player(2, true, false, false);
  72. symbol = 'X';
  73. first = player2.FirstOrder;
  74. context.Players.Update(player2);
  75. context.SaveChanges();
  76. }
  77. }
  78. else
  79. {
  80. if (player1.FirstOrder)
  81. {
  82. symbol = 'X';
  83. }
  84. else
  85. {
  86. symbol = 'O';
  87. }
  88.  
  89. context.Players.Add(player1);
  90. player2.YourTurn = true;
  91. context.Players.Add(player2);
  92. context.SaveChanges();
  93. first = player1.FirstOrder;
  94. }
  95.  
  96. List<char> firstRow = "│ │ │ │".ToList();
  97. List<char> secondRow = "│ │ │ │".ToList();
  98. List<char> thirdRow = "│ │ │ │".ToList();
  99. while (true)
  100. {
  101. counter++;
  102. if (first)
  103. {
  104.  
  105. if (counter % 2 == 1)
  106. {
  107. player1 = context.Players.First(p => p.ID == player1.ID);
  108. player1.YourTurn = true;
  109. yourTurn = true;
  110. context.Players.Update(player1);
  111. context.SaveChanges();
  112. }
  113. else
  114. {
  115. player1 = context.Players.First(p => p.ID == player1.ID);
  116. player1.YourTurn = false;
  117. yourTurn = false;
  118. context.Players.Update(player1);
  119. context.SaveChanges();
  120. }
  121. }
  122. else
  123. {
  124.  
  125. if (counter % 2 == 0)
  126. {
  127. player2 = context.Players.First(p => p.ID == player2.ID);
  128. player2.YourTurn = true;
  129. yourTurn = true;
  130. context.Players.Update(player2);
  131. context.SaveChanges();
  132. }
  133. else
  134. {
  135. player2 = context.Players.First(p => p.ID == player2.ID);
  136. player2.YourTurn = false;
  137. yourTurn = false;
  138. context.Players.Update(player2);
  139. context.SaveChanges();
  140. }
  141. }
  142.  
  143.  
  144. /* box1 = context.Boxes.First(p => p.Field == 1);
  145. box2 = context.Boxes.First(p => p.Field == 2);
  146. box3 = context.Boxes.First(p => p.Field == 3);
  147. box4 = context.Boxes.First(p => p.Field == 4);
  148. box5 = context.Boxes.First(p => p.Field == 5);
  149. box6 = context.Boxes.First(p => p.Field == 6);
  150. box7 = context.Boxes.First(p => p.Field == 7);
  151. box8 = context.Boxes.First(p => p.Field == 8);
  152. box9 = context.Boxes.First(p => p.Field == 9);*/
  153.  
  154. box1 = context.Boxes.AsNoTracking().First(p => p.Field == 1);
  155. box2 = context.Boxes.AsNoTracking().First(p => p.Field == 2);
  156. box3 = context.Boxes.AsNoTracking().First(p => p.Field == 3);
  157. box4 = context.Boxes.AsNoTracking().First(p => p.Field == 4);
  158. box5 = context.Boxes.AsNoTracking().First(p => p.Field == 5);
  159. box6 = context.Boxes.AsNoTracking().First(p => p.Field == 6);
  160. box7 = context.Boxes.AsNoTracking().First(p => p.Field == 7);
  161. box8 = context.Boxes.AsNoTracking().First(p => p.Field == 8);
  162. box9 = context.Boxes.AsNoTracking().First(p => p.Field == 9);
  163.  
  164. firstRow[2] = box1.Symbol;
  165. firstRow[6] = box2.Symbol;
  166. firstRow[10] = box3.Symbol;
  167. secondRow[2] = box4.Symbol;
  168. secondRow[6] = box5.Symbol;
  169. secondRow[10] = box6.Symbol;
  170. thirdRow[2] = box7.Symbol;
  171. thirdRow[6] = box8.Symbol;
  172. thirdRow[10] = box9.Symbol;
  173.  
  174. Console.Clear();
  175. foreach (char c in firstRow)
  176. {
  177. Console.Write(c);
  178. }
  179. Console.WriteLine();
  180. foreach (char c in secondRow)
  181. {
  182. Console.Write(c);
  183. }
  184. Console.WriteLine();
  185. foreach (char c in thirdRow)
  186. {
  187. Console.Write(c);
  188. }
  189. Console.WriteLine();
  190.  
  191. player1 = context.Players.AsNoTracking().First(p => p.ID == player1.ID);//
  192. player2 = context.Players.AsNoTracking().First(p => p.ID == player2.ID);//
  193. /*if(context.Players.Contains(player2))
  194. {
  195. player2 = context.Players.AsNoTracking().First(p => p.ID == player2.ID);//
  196. }
  197. else
  198. {
  199. player2.YourTurn = true;
  200. }*/
  201. if (yourTurn == false && player1.ID == 1)
  202. {
  203. if (player2.YourTurn == true)
  204. {
  205. Console.WriteLine("Opponent's turn");
  206. }
  207. while (player2.YourTurn == true)
  208. {
  209. player2 = context.Players.AsNoTracking().First(p => p.ID == player2.ID);
  210. }
  211. }
  212. else if (yourTurn == false && player2.ID == 2)
  213. {
  214. if(player1.YourTurn == true)
  215. {
  216. Console.WriteLine("Opponent's turn!");
  217. }
  218. while (player1.YourTurn == true)
  219. {
  220. player1 = context.Players.AsNoTracking().First(p => p.ID == player1.ID);
  221. }
  222. }
  223.  
  224. if(player1.Won == true || player2.Won == true)
  225. {
  226. Console.WriteLine("You Lose!");
  227. break;
  228. }
  229. if (yourTurn)
  230. {
  231. Console.ForegroundColor = ConsoleColor.White;
  232. Console.Write("Your turn:");
  233. int n = int.Parse(Console.ReadLine());
  234.  
  235. if (n == 1)
  236. {
  237. box1 = context.Boxes.First(p => p.Field == 1);
  238. box1.Symbol = symbol;
  239. context.Boxes.Update(box1);
  240. context.SaveChanges();
  241. }
  242. else if (n == 2)
  243. {
  244. box2 = context.Boxes.First(p => p.Field == 2);
  245. box2.Symbol = symbol;
  246. context.Boxes.Update(box2);
  247. context.SaveChanges();
  248. }
  249. else if (n == 3)
  250. {
  251. box3 = context.Boxes.First(p => p.Field == 3);
  252. box3.Symbol = symbol;
  253. context.Boxes.Update(box3);
  254. context.SaveChanges();
  255.  
  256. }
  257. else if (n == 4)
  258. {
  259. box4 = context.Boxes.First(p => p.Field == 4);
  260. box4.Symbol = symbol;
  261. context.Boxes.Update(box4);
  262. context.SaveChanges();
  263.  
  264. }
  265. else if (n == 5)
  266. {
  267. box5 = context.Boxes.First(p => p.Field == 5);
  268. box5.Symbol = symbol;
  269. context.Boxes.Update(box5);
  270. context.SaveChanges();
  271.  
  272. }
  273. else if (n == 6)
  274. {
  275. box6 = context.Boxes.First(p => p.Field == 6);
  276. box6.Symbol = symbol;
  277. context.Boxes.Update(box6);
  278. context.SaveChanges();
  279.  
  280. }
  281. else if (n == 7)
  282. {
  283. box7 = context.Boxes.First(p => p.Field == 7);
  284. box7.Symbol = symbol;
  285. context.Boxes.Update(box7);
  286. context.SaveChanges();
  287.  
  288. }
  289. else if (n == 8)
  290. {
  291. box8 = context.Boxes.First(p => p.Field == 8);
  292. box8.Symbol = symbol;
  293. context.Boxes.Update(box8);
  294. context.SaveChanges();
  295.  
  296. }
  297. else if (n == 9)
  298. {
  299. box9 = context.Boxes.First(p => p.Field == 9);
  300. box9.Symbol = symbol;
  301. context.Boxes.Update(box9);
  302. context.SaveChanges();
  303.  
  304. }
  305. Console.Clear();
  306. foreach (char c in firstRow)
  307. {
  308. Console.Write(c);
  309. }
  310. Console.WriteLine();
  311. foreach (char c in secondRow)
  312. {
  313. Console.Write(c);
  314. }
  315. Console.WriteLine();
  316. foreach (char c in thirdRow)
  317. {
  318. Console.Write(c);
  319. }
  320. Console.WriteLine();
  321. }
  322. if (firstRow[2] == symbol && firstRow[6] == symbol && firstRow[10] == symbol)
  323. {
  324. player1 = context.Players.First(p => p.ID == player1.ID);
  325. player2 = context.Players.First(p => p.ID == player2.ID);
  326. if (first)
  327. {
  328. player1.Won = true;
  329. context.Players.Update(player1);
  330. context.SaveChanges();
  331. }
  332. else
  333. {
  334. player2.Won = true;
  335. context.Players.Update(player2);
  336. context.SaveChanges();
  337. }
  338. Console.WriteLine();
  339. Console.WriteLine("You Win!");
  340. Console.WriteLine("-------------");
  341. Console.WriteLine($"│ {symbol} │ {symbol} │ {symbol} │");
  342. Console.WriteLine("│ │ │ │");
  343. Console.WriteLine("│ │ │ │");
  344. break;
  345. }
  346. else if (secondRow[2] == symbol && secondRow[6] == symbol && secondRow[10] == symbol)
  347. {
  348. player1 = context.Players.First(p => p.ID == player1.ID);
  349. player2 = context.Players.First(p => p.ID == player2.ID);
  350. if (first)
  351. {
  352. player1.Won = true;
  353. context.Players.Update(player1);
  354. context.SaveChanges();
  355. }
  356. else
  357. {
  358. player2.Won = true;
  359. context.Players.Update(player2);
  360. context.SaveChanges();
  361. }
  362. Console.WriteLine();
  363. Console.WriteLine("You Win");
  364. Console.WriteLine("-------------");
  365. Console.WriteLine("│ │ │ │");
  366. Console.WriteLine($"│ {symbol} │ {symbol} │ {symbol} │");
  367. Console.WriteLine("│ │ │ │");
  368. break;
  369. }
  370. else if (thirdRow[2] == symbol && thirdRow[6] == symbol && thirdRow[10] == symbol)
  371. {
  372. player1 = context.Players.First(p => p.ID == player1.ID);
  373. player2 = context.Players.First(p => p.ID == player2.ID);
  374. if (first)
  375. {
  376. player1.Won = true;
  377. context.Players.Update(player1);
  378. context.SaveChanges();
  379. }
  380. else
  381. {
  382. player2.Won = true;
  383. context.Players.Update(player2);
  384. context.SaveChanges();
  385. }
  386. Console.WriteLine();
  387. Console.WriteLine("You Win");
  388. Console.WriteLine("-------------");
  389. Console.WriteLine("│ │ │ │");
  390. Console.WriteLine("│ │ │ │");
  391. Console.WriteLine($"│ {symbol} │ {symbol} │ {symbol} │");
  392. break;
  393. }
  394. else if (firstRow[2] == symbol && secondRow[2] == symbol && thirdRow[2] == symbol)
  395. {
  396. player1 = context.Players.First(p => p.ID == player1.ID);
  397. player2 = context.Players.First(p => p.ID == player2.ID);
  398. if (first)
  399. {
  400. player1.Won = true;
  401. context.Players.Update(player1);
  402. context.SaveChanges();
  403. }
  404. else
  405. {
  406. player2.Won = true;
  407. context.Players.Update(player2);
  408. context.SaveChanges();
  409. }
  410. Console.WriteLine();
  411. Console.WriteLine("You Win");
  412. Console.WriteLine("-------------");
  413. Console.WriteLine($"│ {symbol} │ │ │");
  414. Console.WriteLine($"│ {symbol} │ │ │");
  415. Console.WriteLine($"│ {symbol} │ │ │");
  416. break;
  417. }
  418. else if (firstRow[6] == symbol && secondRow[6] == symbol && thirdRow[6] == symbol)
  419. {
  420. player1 = context.Players.First(p => p.ID == player1.ID);
  421. player2 = context.Players.First(p => p.ID == player2.ID);
  422. if (first)
  423. {
  424. player1.Won = true;
  425. context.Players.Update(player1);
  426. context.SaveChanges();
  427. }
  428. else
  429. {
  430. player2.Won = true;
  431. context.Players.Update(player2);
  432. context.SaveChanges();
  433. }
  434. Console.WriteLine();
  435. Console.WriteLine("You Win");
  436. Console.WriteLine("-------------");
  437. Console.WriteLine($"│ │ {symbol} │ │");
  438. Console.WriteLine($"│ │ {symbol} │ │");
  439. Console.WriteLine($"│ │ {symbol} │ │");
  440. break;
  441. }
  442. else if (firstRow[10] == symbol && secondRow[10] == symbol && thirdRow[10] == symbol)
  443. {
  444. player1 = context.Players.First(p => p.ID == player1.ID);
  445. player2 = context.Players.First(p => p.ID == player2.ID);
  446. if (first)
  447. {
  448. player1.Won = true;
  449. context.Players.Update(player1);
  450. context.SaveChanges();
  451. }
  452. else
  453. {
  454. player2.Won = true;
  455. context.Players.Update(player2);
  456. context.SaveChanges();
  457. }
  458. Console.WriteLine();
  459. Console.WriteLine("You Win");
  460. Console.WriteLine("-------------");
  461. Console.WriteLine($"│ │ │ {symbol} │");
  462. Console.WriteLine($"│ │ │ {symbol} │");
  463. Console.WriteLine($"│ │ │ {symbol} │");
  464. break;
  465. }
  466. else if (firstRow[2] == symbol && secondRow[6] == symbol && thirdRow[10] == symbol)
  467. {
  468. player1 = context.Players.First(p => p.ID == player1.ID);
  469. player2 = context.Players.First(p => p.ID == player2.ID);
  470. if (first)
  471. {
  472. player1.Won = true;
  473. context.Players.Update(player1);
  474. context.SaveChanges();
  475. }
  476. else
  477. {
  478. player2.Won = true;
  479. context.Players.Update(player2);
  480. context.SaveChanges();
  481. }
  482. Console.WriteLine();
  483. Console.WriteLine("You Win");
  484. Console.WriteLine("-------------");
  485. Console.WriteLine($"│ {symbol} │ │ │");
  486. Console.WriteLine($"│ │ {symbol} │ │");
  487. Console.WriteLine($"│ │ │ {symbol} │");
  488. break;
  489. }
  490. else if (firstRow[10] == symbol && secondRow[6] == symbol && thirdRow[2] == symbol)
  491. {
  492. player1 = context.Players.First(p => p.ID == player1.ID);
  493. player2 = context.Players.First(p => p.ID == player2.ID);
  494. if (first)
  495. {
  496. player1.Won = true;
  497. context.Players.Update(player1);
  498. context.SaveChanges();
  499. }
  500. else
  501. {
  502. player2.Won = true;
  503. context.Players.Update(player2);
  504. context.SaveChanges();
  505. }
  506. Console.WriteLine();
  507. Console.WriteLine("You Win");
  508. Console.WriteLine("-------------");
  509. Console.WriteLine($"│ │ │ {symbol} │");
  510. Console.WriteLine($"│ │ {symbol} │ │");
  511. Console.WriteLine($"│ {symbol} │ │ │");
  512. break;
  513. }
  514.  
  515. }
  516. //context.Players.Remove(player1);
  517. //context.Players.Remove(player2);
  518. //context.SaveChanges();
  519. }
  520.  
  521. }
  522. }
  523.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement