Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Mar 23rd, 2007, 4:44 AM   #1
crawforddavid2006
Expert Programmer
 
crawforddavid2006's Avatar
 
Join Date: Apr 2005
Location: Not sure yet
Posts: 597
Rep Power: 0 crawforddavid2006 is an unknown quantity at this point
Send a message via AIM to crawforddavid2006 Send a message via MSN to crawforddavid2006
Tic Tac Toe

It's kinda finished and kinda in progress... I need to add AI and make it more efficient but other then that it does work.
Attached Files
File Type: zip Tic Tac Toe.zip (4.9 KB, 6 views)
__________________
Quote:
Originally Posted by DaWei View Post
Well, it's better than Pen Islands url....;)

crawforddavid2006 is offline   Reply With Quote
Old Mar 23rd, 2007, 5:40 AM   #2
crawforddavid2006
Expert Programmer
 
crawforddavid2006's Avatar
 
Join Date: Apr 2005
Location: Not sure yet
Posts: 597
Rep Power: 0 crawforddavid2006 is an unknown quantity at this point
Send a message via AIM to crawforddavid2006 Send a message via MSN to crawforddavid2006
I almost forgot the code
csharp Syntax (Toggle Plain Text)
  1.  
  2. //crawforddavid2006
  3.  
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Drawing;
  7. using System.Windows.Forms;
  8.  
  9. namespace Tic_Tac_Toe
  10. {
  11. public partial class MainForm : Form
  12. {
  13. bool player1 = true;
  14. bool player1Win = false;
  15. bool player2Win = false;
  16. [STAThread]
  17.  
  18. public static void Main(string[] args)
  19. {
  20. Application.EnableVisualStyles();
  21. Application.SetCompatibleTextRenderingDefault(false);
  22. Application.Run(new MainForm());
  23. }
  24.  
  25. public MainForm()
  26. {
  27. InitializeComponent();
  28. }
  29.  
  30. void MainFormLoad(object sender, EventArgs e)
  31. {
  32. statusLable.Text = "Click 'New Game' to begin.";
  33. textBox1.Text = "Click 'New Game' to begin.";
  34. startButton.Enabled = false;
  35. label1.Enabled = false;
  36. label2.Enabled = false;
  37. label3.Enabled = false;
  38. label4.Enabled = false;
  39. label5.Enabled = false;
  40. label6.Enabled = false;
  41. label7.Enabled = false;
  42. label8.Enabled = false;
  43. label9.Enabled = false;
  44. }
  45.  
  46. void StatusStrip1ItemClicked(object sender, ToolStripItemClickedEventArgs e)
  47. {
  48.  
  49. }
  50.  
  51. void ExitButtonClick(object sender, EventArgs e)
  52. {
  53. Application.Exit();
  54. }
  55.  
  56. void NewGameButtonClick(object sender, EventArgs e)
  57. {
  58. label1.Text = "";
  59. label2.Text = "";
  60. label3.Text = "";
  61. label4.Text = "";
  62. label5.Text = "";
  63. label6.Text = "";
  64. label7.Text = "";
  65. label8.Text = "";
  66. label9.Text = "";
  67. label1.Enabled = false;
  68. label2.Enabled = false;
  69. label3.Enabled = false;
  70. label4.Enabled = false;
  71. label5.Enabled = false;
  72. label6.Enabled = false;
  73. label7.Enabled = false;
  74. label8.Enabled = false;
  75. label9.Enabled = false;
  76. player1 = true;
  77. player1Win = false;
  78. player2Win = false;
  79. statusLable.Text = "Click 'Start' to begin.";
  80. textBox1.Text = "Click 'Start' to begin.";
  81. startButton.Enabled = true;
  82. }
  83.  
  84. void StartButtonClick(object sender, EventArgs e)
  85. {
  86. statusLable.Text = "Player 1";
  87. textBox1.Text = "Player 1";
  88. label1.Enabled = true;
  89. label2.Enabled = true;
  90. label3.Enabled = true;
  91. label4.Enabled = true;
  92. label5.Enabled = true;
  93. label6.Enabled = true;
  94. label7.Enabled = true;
  95. label8.Enabled = true;
  96. label9.Enabled = true;
  97. startButton.Enabled = false;
  98. player1 = true;
  99. }
  100.  
  101. void Label1Click(object sender, EventArgs e)
  102. {
  103. if(player1 == true)
  104. {
  105. label1.Text = "X";
  106. player1 = false;
  107. label1.Enabled = false;
  108. checkForWinner();
  109. if(player1Win == true)
  110. {
  111. statusLable.Text = "Player 1 Wins";
  112. textBox1.Text = "Player 1 Wins";
  113. }
  114. else
  115. {
  116. statusLable.Text = "Player 2";
  117. textBox1.Text = "Player 2";
  118. }
  119. }
  120. else
  121. {
  122. label1.Text = "O";
  123. player1 = true;
  124. label1.Enabled = false;
  125. checkForWinner();
  126. if(player2Win == true)
  127. {
  128. statusLable.Text = "Player 2 Wins";
  129. textBox1.Text = "Player 2 Wins";
  130. }
  131. else
  132. {
  133. statusLable.Text = "Player 1";
  134. textBox1.Text = "Player 1";
  135. }
  136. }
  137. }
  138.  
  139. void Label2Click(object sender, EventArgs e)
  140. {
  141. if(player1 == true)
  142. {
  143. label2.Text = "X";
  144. player1 = false;
  145. label2.Enabled = false;
  146. checkForWinner();
  147. if(player1Win == true)
  148. {
  149. statusLable.Text = "Player 1 Wins";
  150. textBox1.Text = "Player 1 Wins";
  151. }
  152. else
  153. {
  154. statusLable.Text = "Player 2";
  155. textBox1.Text = "Player 2";
  156. }
  157. }
  158. else
  159. {
  160. label2.Text = "O";
  161. player1 = true;
  162. label2.Enabled = false;
  163. checkForWinner();
  164. if(player2Win == true)
  165. {
  166. statusLable.Text = "Player 2 Wins";
  167. textBox1.Text = "Player 2 Wins";
  168. }
  169. else
  170. {
  171. statusLable.Text = "Player 1";
  172. textBox1.Text = "Player 1";
  173. }
  174. }
  175. }
  176.  
  177. void Label3Click(object sender, EventArgs e)
  178. {
  179. if(player1 == true)
  180. {
  181. label3.Text = "X";
  182. //player1 = false;
  183. label3.Enabled = false;
  184. checkForWinner();
  185. if(player1Win == true)
  186. {
  187. statusLable.Text = "Player 1 Wins";
  188. textBox1.Text = "Player 1 Wins";
  189. }
  190. else
  191. {
  192. player1 = false;
  193. statusLable.Text = "Player 2";
  194. textBox1.Text = "Player 2";
  195. }
  196. }
  197. else
  198. {
  199. label3.Text = "O";
  200. //player1 = true;
  201. label3.Enabled = false;
  202. checkForWinner();
  203. if(player2Win == true)
  204. {
  205. statusLable.Text = "Player 2 Wins";
  206. textBox1.Text = "Player 2 Wins";
  207. }
  208. else
  209. {
  210. player1 = true;
  211. statusLable.Text = "Player 1";
  212. textBox1.Text = "Player 1";
  213. }
  214. }
  215. }
  216.  
  217. void Label4Click(object sender, EventArgs e)
  218. {
  219. if(player1 == true)
  220. {
  221. label4.Text = "X";
  222. player1 = false;
  223. label4.Enabled = false;
  224. checkForWinner();
  225. if(player1Win == true)
  226. {
  227. statusLable.Text = "Player 1 Wins";
  228. textBox1.Text = "Player 1 Wins";
  229. }
  230. else
  231. {
  232. statusLable.Text = "Player 2";
  233. textBox1.Text = "Player 2";
  234. }
  235. }
  236. else
  237. {
  238. label4.Text = "O";
  239. player1 = true;
  240. label4.Enabled = false;
  241. checkForWinner();
  242. if(player2Win == true)
  243. {
  244. statusLable.Text = "Player 2 Wins";
  245. textBox1.Text = "Player 2 Wins";
  246. }
  247. else
  248. {
  249. statusLable.Text = "Player 1";
  250. textBox1.Text = "Player 1";
  251. }
  252. }
  253. }
  254.  
  255. void Label5Click(object sender, EventArgs e)
  256. {
  257. if(player1 == true)
  258. {
  259. label5.Text = "X";
  260. player1 = false;
  261. label5.Enabled = false;
  262. checkForWinner();
  263. if(player1Win == true)
  264. {
  265. statusLable.Text = "Player 1 Wins";
  266. textBox1.Text = "Player 1 Wins";
  267. }
  268. else
  269. {
  270. statusLable.Text = "Player 2";
  271. textBox1.Text = "Player 2";
  272. }
  273. }
  274. else
  275. {
  276. label5.Text = "O";
  277. player1 = true;
  278. label5.Enabled = false;
  279. checkForWinner();
  280. if(player2Win == true)
  281. {
  282. statusLable.Text = "Player 2 Wins";
  283. textBox1.Text = "Player 2 Wins";
  284. }
  285. else
  286. {
  287. statusLable.Text = "Player 1";
  288. textBox1.Text = "Player 1";
  289. }
  290. }
  291. }
  292.  
  293. void Label6Click(object sender, EventArgs e)
  294. {
  295. if(player1 == true)
  296. {
  297. label6.Text = "X";
  298. player1 = false;
  299. label6.Enabled = false;
  300. checkForWinner();
  301. if(player1Win == true)
  302. {
  303. statusLable.Text = "Player 1 Wins";
  304. textBox1.Text = "Player 1 Wins";
  305. }
  306. else
  307. {
  308. statusLable.Text = "Player 2";
  309. textBox1.Text = "Player 2";
  310. }
  311. }
  312. else
  313. {
  314. label6.Text = "O";
  315. player1 = true;
  316. label6.Enabled = false;
  317. checkForWinner();
  318. if(player2Win == true)
  319. {
  320. statusLable.Text = "Player 2 Wins";
  321. textBox1.Text = "Player 2 Wins";
  322. }
  323. else
  324. {
  325. statusLable.Text = "Player 1";
  326. textBox1.Text = "Player 1";
  327. }
  328. }
  329. }
  330.  
  331. void Label7Click(object sender, EventArgs e)
  332. {
  333. if(player1 == true)
  334. {
  335. label7.Text = "X";
  336. player1 = false;
  337. label7.Enabled = false;
  338. checkForWinner();
  339. if(player1Win == true)
  340. {
  341. statusLable.Text = "Player 1 Wins";
  342. textBox1.Text = "Player 1 Wins";
  343. }
  344. else
  345. {
  346. statusLable.Text = "Player 2";
  347. textBox1.Text = "Player 2";
  348. }
  349. }
  350. else
  351. {
  352. label7.Text = "O";
  353. player1 = true;
  354. label7.Enabled = false;
  355. checkForWinner();
  356. if(player2Win == true)
  357. {
  358. statusLable.Text = "Player 2 Wins";
  359. textBox1.Text = "Player 2 Wins";
  360. }
  361. else
  362. {
  363. statusLable.Text = "Player 1";
  364. textBox1.Text = "Player 1";
  365. }
  366. }
  367. }
  368.  
  369. void Label8Click(object sender, EventArgs e)
  370. {
  371. if(player1 == true)
  372. {
  373. label8.Text = "X";
  374. player1 = false;
  375. label8.Enabled = false;
  376. checkForWinner();
  377. if(player1Win == true)
  378. {
  379. statusLable.Text = "Player 1 Wins";
  380. textBox1.Text = "Player 1 Wins";
  381. }
  382. else
  383. {
  384. statusLable.Text = "Player 2";
  385. textBox1.Text = "Player 2";
  386. }
  387. }
  388. else
  389. {
  390. label8.Text = "O";
  391. player1 = true;
  392. label8.Enabled = false;
  393. checkForWinner();
  394. if(player2Win == true)
  395. {
  396. statusLable.Text = "Player 2 Wins";
  397. textBox1.Text = "Player 2 Wins";
  398. }
  399. else
  400. {
  401. statusLable.Text = "Player 1";
  402. textBox1.Text = "Player 1";
  403. }
  404. }
  405. }
  406.  
  407. void Label9Click(object sender, EventArgs e)
  408. {
  409. if(player1 == true)
  410. {
  411. label9.Text = "X";
  412. player1 = false;
  413. label9.Enabled = false;
  414. checkForWinner();
  415. if(player1Win == true)
  416. {
  417. statusLable.Text = "Player 1 Wins";
  418. textBox1.Text = "Player 1 Wins";
  419. }
  420. else
  421. {
  422. statusLable.Text = "Player 2";
  423. textBox1.Text = "Player 2";
  424. }
  425. }
  426. else
  427. {
  428. label9.Text = "O";
  429. player1 = true;
  430. label9.Enabled = false;
  431. checkForWinner();
  432. if(player2Win == true)
  433. {
  434. statusLable.Text = "Player 2 Wins";
  435. textBox1.Text = "Player 2 Wins";
  436. }
  437. else
  438. {
  439. statusLable.Text = "Player 1";
  440. textBox1.Text = "Player 1";
  441. }
  442. }
  443. }
  444. void checkForWinner()
  445. {
  446. //player 1
  447. if(label1.Text == "X" && label2.Text == "X" && label3.Text == "X")
  448. {
  449. player1Win = true;
  450. reset();
  451. }
  452. else if(label4.Text == "X" && label5.Text == "X" && label6.Text == "X")
  453. {
  454. player1Win = true;
  455. reset();
  456. }
  457. else if(label7.Text == "X" && label8.Text == "X" && label9.Text == "X")
  458. {
  459. player1Win = true;
  460. reset();
  461. }
  462. else if(label1.Text == "X" && label4.Text == "X" && label7.Text == "X")
  463. {
  464. player1Win = true;
  465. reset();
  466. }
  467. else if(label2.Text == "X" && label5.Text == "X" && label8.Text == "X")
  468. {
  469. player1Win = true;
  470. reset();
  471. }
  472. else if(label3.Text == "X" && label6.Text == "X" && label9.Text == "X")
  473. {
  474. player1Win = true;
  475. reset();
  476. }
  477. else if(label1.Text == "X" && label5.Text == "X" && label9.Text == "X")
  478. {
  479. player1Win = true;
  480. reset();
  481. }
  482. else if(label3.Text == "X" && label5.Text == "X" && label7.Text == "X")
  483. {
  484. player1Win = true;
  485. reset();
  486. }
  487.  
  488. //player 2
  489. else if(label1.Text == "O" && label2.Text == "O" && label3.Text == "O")
  490. {
  491. player2Win = true;
  492. reset();
  493. }
  494. else if(label4.Text == "O" && label5.Text == "O" && label6.Text == "O")
  495. {
  496. player2Win = true;
  497. reset();
  498. }
  499. else if(label7.Text == "O" && label8.Text == "O" && label9.Text == "O")
  500. {
  501. player2Win = true;
  502. reset();
  503. }
  504. else if(label1.Text == "O" && label4.Text == "O" && label7.Text == "O")
  505. {
  506. player2Win = true;
  507. reset();
  508. }
  509. else if(label2.Text == "O" && label5.Text == "O" && label8.Text == "O")
  510. {
  511. player2Win = true;
  512. reset();
  513. }
  514. else if(label3.Text == "O" && label6.Text == "O" && label9.Text == "O")
  515. {
  516. player2Win = true;
  517. reset();
  518. }
  519. else if(label1.Text == "O" && label5.Text == "O" && label9.Text == "O")
  520. {
  521. player2Win = true;
  522. reset();
  523. }
  524. else if(label3.Text == "O" && label5.Text == "O" && label7.Text == "O")
  525. {
  526. player2Win = true;
  527. reset();
  528. }
  529. else
  530. {
  531. player1Win = false;
  532. player2Win = false;
  533. }
  534. }
  535.  
  536. void reset()
  537. {
  538. label1.Enabled = false;
  539. label2.Enabled = false;
  540. label3.Enabled = false;
  541. label4.Enabled = false;
  542. label5.Enabled = false;
  543. label6.Enabled = false;
  544. label7.Enabled = false;
  545. label8.Enabled = false;
  546. label9.Enabled = false;
  547. }
  548. }
  549. }


P.S. I'm new to C# so please be nice when you criticize
__________________
Quote:
Originally Posted by DaWei View Post
Well, it's better than Pen Islands url....;)

crawforddavid2006 is offline   Reply With Quote
Old Mar 23rd, 2007, 12:43 PM   #3
pegasus001
Hobbyist Programmer
 
pegasus001's Avatar
 
Join Date: Nov 2006
Location: 163H
Posts: 215
Rep Power: 3 pegasus001 is on a distinguished road
I didn`t try the code but i think it won`t execute. The InitializeComponent() method is not implemented. Visual Studio sometimes puts it in a different file.

PS:This is no criticism. Good luck with AI.
__________________
You never test the depth of a river with both feet.
The believer is happy. The doubter is wise.
Free speech carries with it some freedom to listen.
The next generation will always surpass the previous one. It`s one of the never ending cycles of life.
pegasus001 is offline   Reply With Quote
Old Mar 23rd, 2007, 4:04 PM   #4
crawforddavid2006
Expert Programmer
 
crawforddavid2006's Avatar
 
Join Date: Apr 2005
Location: Not sure yet
Posts: 597
Rep Power: 0 crawforddavid2006 is an unknown quantity at this point
Send a message via AIM to crawforddavid2006 Send a message via MSN to crawforddavid2006
It seems to work when i try it on my machines, could someone please let me know if it works for you
__________________
Quote:
Originally Posted by DaWei View Post
Well, it's better than Pen Islands url....;)

crawforddavid2006 is offline   Reply With Quote
Old Mar 25th, 2007, 3:04 PM   #5
Ooble
I eat cake for breakfast.
 
Ooble's Avatar
 
Join Date: Jul 2004
Location: In my box.
Posts: 4,434
Rep Power: 9 Ooble is on a distinguished road
You haven't included all the source files. I guarantee you you're missing at least one... it should be called MainForm.Designer.cs or something like that.
__________________
Me :: You :: Them
Ooble is offline   Reply With Quote
Old Mar 25th, 2007, 4:36 PM   #6
Arevos
Programming Guru
 
Arevos's Avatar
 
Join Date: Aug 2005
Location: England
Posts: 1,499
Rep Power: 5 Arevos is on a distinguished road
The code has a lot of repetition in that could be factored out. Instead of writing the same code for each label, why not just have all the labels link to the same function, and use the "sender" object to get the right label:
csharp Syntax (Toggle Plain Text)
  1. void Label6Click(object sender, EventArgs e)
  2. {
  3. Label label = (Label)sender;
  4.  
  5. if(player1 == true)
  6. {
  7. label.Text = "X";
  8. player1 = false;
  9. label.Enabled = false;
  10. checkForWinner();
  11. if(player1Win == true)
  12. {
  13. statusLable.Text = "Player 1 Wins";
  14. textBox1.Text = "Player 1 Wins";
  15. }
  16. else
  17. {
  18. statusLable.Text = "Player 2";
  19. textBox1.Text = "Player 2";
  20. }
  21. }
  22. else
  23. {
  24. label.Text = "O";
  25. player1 = true;
  26. label.Enabled = false;
  27. checkForWinner();
  28. if(player2Win == true)
  29. {
  30. statusLable.Text = "Player 2 Wins";
  31. textBox1.Text = "Player 2 Wins";
  32. }
  33. else
  34. {
  35. statusLable.Text = "Player 1";
  36. textBox1.Text = "Player 1";
  37. }
  38. }
  39. }
There are a few other things you could do to cut the amount of code down even further.
Arevos is offline   Reply With Quote
Old Mar 26th, 2007, 2:30 AM   #7
crawforddavid2006
Expert Programmer
 
crawforddavid2006's Avatar
 
Join Date: Apr 2005
Location: Not sure yet
Posts: 597
Rep Power: 0 crawforddavid2006 is an unknown quantity at this point
Send a message via AIM to crawforddavid2006 Send a message via MSN to crawforddavid2006
ok... i'll add the correct file, and i'm gonna work on making it more efficient
__________________
Quote:
Originally Posted by DaWei View Post
Well, it's better than Pen Islands url....;)