Skip to main content
gamedev.net
🔒 Locked

tic tac toe ai

Started by phil67rpg Feb 23, 2012 at 1:12 AM 5 replies 3.1k views
Original Post
phil67rpg
phil67rpg
well I am making a tic tac toe game using c# and gdi+.I want to implement a very simple AI using random numbers to draw "O"'s on the screen.here is the code I am working on.
[source lang = "c#"]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]private[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]void[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] Computer_Move_Click([/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]object[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] sender, [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]EventArgs[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] e)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Graphics[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] g = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]this[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].CreateGraphics();[/font][/font]

[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Random[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] random = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Random[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]();[/font][/font]
[font="Consolas"][size="2"][color="#008000"][font="Consolas"][size="2"][color="#008000"][font="Consolas"][size="2"][color="#008000"]//int pX = 15;[/font][/font][/font]
[font="Consolas"][size="2"][color="#008000"][font="Consolas"][size="2"][color="#008000"][font="Consolas"][size="2"][color="#008000"]//int pY = 105;[/font][/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] pX = random.Next(0, 200);[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] pY = random.Next(0, 200);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_one = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](10,20,30,40);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_two = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](80, 90, 30, 40);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_three = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](160, 170, 30, 40);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_four = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](10, 20, 100, 110);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_five = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](80, 90, 100, 110);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_six = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](160, 170, 100, 110);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_seven = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](10, 20, 160, 170);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_eight = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](80, 90, 160, 170);[/font][/font]
[font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] square_nine = [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Rectangle[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](160, 170, 160, 170);[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]while[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX == 15 || pX == 85 || pX == 165 || pY == 35 || pY == 105 || pY == 165)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_one.X && pX <= square_one.Y && pY >= square_one.Width && pY <= square_one.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_two.X && pX <= square_two.Y && pY >= square_two.Width && pY <= square_two.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_three.X && pX <= square_three.Y && pY >= square_three.Width && pY <= square_three.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_four.X && pX <= square_four.Y && pY >= square_four.Width && pY <= square_four.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_five.X && pX <= square_five.Y && pY >= square_five.Width && pY <= square_five.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_six.X && pX <= square_six.Y && pY >= square_six.Width && pY <= square_six.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_seven.X && pX <= square_seven.Y && pY >= square_seven.Width && pY <= square_seven.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_eight.X && pX <= square_eight.Y && pY >= square_eight.Width && pY <= square_eight.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] (pX >= square_nine.X && pX <= square_nine.Y && pY >= square_nine.Width && pY <= square_nine.Height)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.DrawString([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"O"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Font[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Verdana"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"], 20), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SolidBrush[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Green), [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/font][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Point[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pX, pY));[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]break[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"];[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]g.Dispose();[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"][/source][/font][/font]
Cornstalks
Cornstalks

well I am making a tic tac toe game using c# and gdi+.I want to implement a very simple AI using random numbers to draw "O"'s on the screen.here is the code I am working on.

Sounds great. And your question is...

FYI, when you want to copy 'n' paste code, first paste it into notepad, then copy it from notepad into GameDev's post editor. That way it'll remove the formatting and GameDev won't mangle your code like it is right now. For the rest of the world, here's what I could salvage from the code:

private void Computer_Move_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();

Random random = new Random();
//int pX = 15;
//int pY = 105;
int pX = random.Next(0, 200);
int pY = random.Next(0, 200);
Rectangle square_one = new Rectangle(10,20,30,40);
Rectangle square_two = new Rectangle(80, 90, 30, 40);
Rectangle square_three = new Rectangle(160, 170, 30, 40);
Rectangle square_four = new Rectangle(10, 20, 100, 110);
Rectangle square_five = new Rectangle(80, 90, 100, 110);
Rectangle square_six = new Rectangle(160, 170, 100, 110);
Rectangle square_seven = new Rectangle(10, 20, 160, 170);
Rectangle square_eight = new Rectangle(80, 90, 160, 170);
Rectangle square_nine = new Rectangle(160, 170, 160, 170);
while (pX == 15 || pX == 85 || pX == 165 || pY == 35 || pY == 105 || pY == 165)
{
if (pX >= square_one.X && pX <= square_one.Y && pY >= square_one.Width && pY <= square_one.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_two.X && pX <= square_two.Y && pY >= square_two.Width && pY <= square_two.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_three.X && pX <= square_three.Y && pY >= square_three.Width && pY <= square_three.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_four.X && pX <= square_four.Y && pY >= square_four.Width && pY <= square_four.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_five.X && pX <= square_five.Y && pY >= square_five.Width && pY <= square_five.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_six.X && pX <= square_six.Y && pY >= square_six.Width && pY <= square_six.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_seven.X && pX <= square_seven.Y && pY >= square_seven.Width && pY <= square_seven.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_eight.X && pX <= square_eight.Y && pY >= square_eight.Width && pY <= square_eight.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
if (pX >= square_nine.X && pX <= square_nine.Y && pY >= square_nine.Width && pY <= square_nine.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
break;
}
g.Dispose();
}
}
}


Just a suggestion on simplifying your code: make an array of rectangles, and then iterate through each rectangle and perform the test. Something like this (note that this code is untested, but hopefully it gives you an idea of how to simplify things):


private void Computer_Move_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();

Random random = new Random();
//int pX = 15;
//int pY = 105;
int pX = random.Next(0, 200);
int pY = random.Next(0, 200);
Rectangle[] squares = new Rectangle[9];
squares[0] = new Rectangle(10,20,30,40);
squares[1] = new Rectangle(80, 90, 30, 40);
squares[2] = new Rectangle(160, 170, 30, 40);
squares[3] = new Rectangle(10, 20, 100, 110);
squares[4] = new Rectangle(80, 90, 100, 110);
squares[5] = new Rectangle(160, 170, 100, 110);
squares[6] = new Rectangle(10, 20, 160, 170);
squares[7] = new Rectangle(80, 90, 160, 170);
squares[8] = new Rectangle(160, 170, 160, 170);
while (pX == 15 || pX == 85 || pX == 165 || pY == 35 || pY == 105 || pY == 165)
{
for (int i = 0; i < squares.Length; ++i)
{
if (pX >= squares.X && pX <= squares.Y && pY >= squares.Width && pY <= squares.Height)
{
g.DrawString("O", new Font("Verdana", 20), new SolidBrush(Color.Green), new Point(pX, pY));
}
}
break; // Also, why do you have this break here???
}
g.Dispose();
}
}
}
phil67rpg
phil67rpg
thanks corn,sorry about the mangled code.well my question is how do I go about tackling an AI problem.all I want to do is to get the computer to draw an "O" in the appropriate every time I click a button on the form.this is the first game in which I have tried to involve some AI to.go easy on me its my first time.I am learning alot about c# and gdi+ by doing this project.
Cornstalks
Cornstalks

thanks corn,sorry about the mangled code.well my question is how do I go about tackling an AI problem.all I want to do is to get the computer to draw an "O" in the appropriate every time I click a button on the form.this is the first game in which I have tried to involve some AI to.go easy on me its my first time.I am learning alot about c# and gdi+ by doing this project.

Wikipedia has a nice article about the strategy behind Tic-tac-toe. The strategy would be fairly simple to implement in code (I know you're just beginning so you'll probably have questions, which is fine, but give it a try first).

Personal nitpick that makes reading your posts easier: put a space after ',' and '.' and capitalize the first letter after '.' like in my posts. I also made a quick edit to my post about simplifying your code. You may have seen it, but I think I made the changes just after your second post.
phil67rpg
phil67rpg
well corn I have done what you said and my code went from 4 pages to 2 pages. EXCELLENT,thanks for all the help.
Greg_B
Greg_B
Back in College here's how I solved the problem:

T3 has 3 rows, 3 columns and 2 diagonals. I called these 8 things a Set.

Assume I'm playing X. Negotiate the sets in this order

If any Set has X X - (In any order) then play my X in the blank to win

If any Set has O O - (in any order) then play an X in the blank to block

If any set contains X - - (in any order) then see if either of the blanks intersects with another set with the value X - - and play there. Otherwhise, play on a random blank.

If any set contains O - - (in any order) then see if either of the blanks intersects with another set with the value O - - and play there. Otherwhise, play on a random blank.

Find a set with - - - and play any blank.

If the only move left is in a set with X O - then the game is tied.

This simple AI will play an almost perfect game. To make it perfect you simply add some code to pick the best first move. Once that's done this system will find the best next move.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.