Tic-tac-toe: Difference between revisions
Content added Content deleted
m (added two other names.) |
(Tic-tac-toe en BASIC256) |
||
Line 956: | Line 956: | ||
=={{header|BASIC}}== |
=={{header|BASIC}}== |
||
==={{header|BASIC256}}=== |
|||
<lang BASIC256> |
|||
# basado en código de Antonio Rodrigo dos Santos Silva (gracias): |
|||
# http://statusgear.freeforums.net/thread/17/basic-256-tic-tac-toe |
|||
global playerturn$ |
|||
global endGame$ |
|||
global space$ |
|||
global player1Score$ |
|||
global player2Score$ |
|||
global invalidMove$ |
|||
global tecla$ |
|||
global keyQ$ |
|||
global keyW$ |
|||
global keyE$ |
|||
global keyA$ |
|||
global keyS$ |
|||
global keyD$ |
|||
global keyZ$ |
|||
global keyX$ |
|||
global keyC$ |
|||
global keySpace$ |
|||
global keyEsc$ |
|||
keyQ$ = 81 |
|||
keyW$ = 87 |
|||
keyE$ = 69 |
|||
keyA$ = 65 |
|||
keyS$ = 83 |
|||
keyD$ = 68 |
|||
keyZ$ = 90 |
|||
keyX$ = 88 |
|||
keyC$ = 67 |
|||
keySpace$ = 32 |
|||
keyEsc$ = 16777216 |
|||
dim space$(9) |
|||
subroutine clearGameVars() |
|||
playerturn$ = 1 |
|||
invalidMove$ = 0 |
|||
endGame$ = 0 |
|||
tecla$ = 0 |
|||
for t = 0 to space$[?]-1 |
|||
space$[t] = 0 |
|||
next t |
|||
end subroutine |
|||
subroutine endGame() |
|||
cls |
|||
print "¡Hasta pronto!..." |
|||
end |
|||
end subroutine |
|||
subroutine printBoard() |
|||
print " " + space$[0]+" | "+space$[1]+" | "+space$[2] |
|||
print " " + "— + — + —" |
|||
print " " + space$[3]+" | "+space$[4]+" | "+space$[5] |
|||
print " " + "— + — + —" |
|||
print " " + space$[6]+" | "+space$[7]+" | "+space$[8] |
|||
print "" |
|||
end subroutine |
|||
subroutine changePlayer() |
|||
if playerturn$ = 1 then |
|||
playerturn$ = 2 |
|||
else |
|||
playerturn$ = 1 |
|||
end if |
|||
end subroutine |
|||
subroutine endMatchWithWinner() |
|||
cls |
|||
call printPlayerScore() |
|||
call printBoard() |
|||
endGame$ = 1 |
|||
if playerturn$ = 1 then |
|||
player1Score$ += 1 |
|||
else |
|||
player2Score$ += 1 |
|||
end if |
|||
print "¡Jugador " + playerturn$ + " gana!" + chr(10) |
|||
print "Pulsa [SPACE] para jugar otra partida" |
|||
print "Pulsa [ESC] para dejar de jugar" |
|||
do |
|||
tecla$ = key |
|||
pause .01 |
|||
if tecla$ = keySpace$ then call gamePlay() |
|||
if tecla$ = keyEsc$ then call endGame() |
|||
until false |
|||
end subroutine |
|||
subroutine endMatchWithoutWinner() |
|||
cls |
|||
call printPlayerScore() |
|||
call printBoard() |
|||
endGame$ = 1 |
|||
print " Nadie ganó :( " + chr(10) |
|||
print " Pulsa [SPACE] para comenzar o [ESC] para salir. " |
|||
do |
|||
tecla$ = key |
|||
pause .01 |
|||
if tecla$ = keySpace$ then call gamePlay() |
|||
if tecla$ = keyEsc$ then call endGame() |
|||
until false |
|||
end subroutine |
|||
subroutine printPlayerScore() |
|||
print "--------------------------------------------" |
|||
print " Jugador #1: " + player1Score$ + " pts" |
|||
print " Jugador #2: " + player2Score$ + " pts" |
|||
print "--------------------------------------------" + chr(10) |
|||
end subroutine |
|||
subroutine printPlayerMessage() |
|||
print "Jugador: " + playerturn$ + ", elige una casilla, por favor." |
|||
end subroutine |
|||
subroutine gamePlay() |
|||
call clearGameVars() |
|||
cls |
|||
call printPlayerScore() |
|||
call printBoard() |
|||
call printPlayerMessage() |
|||
while 0 = 0 |
|||
invalidMove$ = 0 |
|||
if endGame$ = 0 then |
|||
do |
|||
tecla$ = key |
|||
pause .01 |
|||
validKeypressed$ = 0 |
|||
if tecla$ = keyQ$ or tecla$ = keyW$ or tecla$ = keyE$ or tecla$ = keyA$ or tecla$ = keyS$ or tecla$ = keyD$ or tecla$ = keyZ$ or tecla$ = keyX$ or tecla$ = keyC$ then validKeypressed$ = 1 |
|||
until validKeypressed$ = 1 |
|||
endif |
|||
if tecla$ = keyQ$ then |
|||
if space$[0] = 0 then |
|||
space$[0] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyW$ then |
|||
if space$[1] = 0 then |
|||
space$[1] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyE$ then |
|||
if space$[2] = 0 then |
|||
space$[2] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyA$ then |
|||
if space$[3] = 0 then |
|||
space$[3] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyS$ then |
|||
if space$[4] = 0 then |
|||
space$[4] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyD$ then |
|||
if space$[5] = 0 then |
|||
space$[5] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyZ$ then |
|||
if space$[6] = 0 then |
|||
space$[6] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyX$ then |
|||
if space$[7] = 0 then |
|||
space$[7] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if tecla$ = keyC$ then |
|||
if space$[8] = 0 then |
|||
space$[8] = playerturn$ |
|||
else |
|||
invalidMove$ = 1 |
|||
endif |
|||
endif |
|||
if invalidMove$ = 0 then |
|||
tecla$ = 0 |
|||
if space$[0] = 1 and space$[1] = 1 and space$[2] = 1 then call endMatchWithWinner() |
|||
if space$[3] = 1 and space$[4] = 1 and space$[5] = 1 then call endMatchWithWinner() |
|||
if space$[6] = 1 and space$[7] = 1 and space$[8] = 1 then call endMatchWithWinner() |
|||
if space$[0] = 1 and space$[3] = 1 and space$[6] = 1 then call endMatchWithWinner() |
|||
if space$[1] = 1 and space$[4] = 1 and space$[7] = 1 then call endMatchWithWinner() |
|||
if space$[2] = 1 and space$[5] = 1 and space$[8] = 1 then call endMatchWithWinner() |
|||
if space$[0] = 1 and space$[4] = 1 and space$[8] = 1 then call endMatchWithWinner() |
|||
if space$[2] = 1 and space$[4] = 1 and space$[6] = 1 then call endMatchWithWinner() |
|||
if space$[0] = 2 and space$[1] = 2 and space$[2] = 2 then call endMatchWithWinner() |
|||
if space$[3] = 2 and space$[4] = 2 and space$[5] = 2 then call endMatchWithWinner() |
|||
if space$[6] = 2 and space$[7] = 2 and space$[8] = 2 then call endMatchWithWinner() |
|||
if space$[0] = 2 and space$[3] = 2 and space$[6] = 2 then call endMatchWithWinner() |
|||
if space$[1] = 2 and space$[4] = 2 and space$[7] = 2 then call endMatchWithWinner() |
|||
if space$[2] = 2 and space$[5] = 2 and space$[8] = 2 then call endMatchWithWinner() |
|||
if space$[0] = 2 and space$[4] = 2 and space$[8] = 2 then call endMatchWithWinner() |
|||
if space$[2] = 2 and space$[4] = 2 and space$[6] = 2 then call endMatchWithWinner() |
|||
if space$[0] <> 0 and space$[1] <> 0 and space$[2] <> 0 and space$[3] <> 0 and space$[4] <> 0 and space$[5] <> 0 and space$[6] <> 0 and space$[7] <> 0 and space$[8] <> 0 then call endMatchWithoutWinner() |
|||
call changePlayer() |
|||
cls |
|||
call printPlayerScore() |
|||
call printBoard() |
|||
call printPlayerMessage() |
|||
end if |
|||
end while |
|||
end subroutine |
|||
subroutine gameMenu() |
|||
cls |
|||
call clearGameVars() |
|||
player1Score$ = 0 |
|||
player2Score$ = 0 |
|||
print "=================================================" |
|||
print "| TIC-TAC-TOE |" |
|||
print "=================================================" + chr(10) |
|||
print " Teclas para jugar:" |
|||
print "---------------------" |
|||
print " | q | w | e |" |
|||
print " | a | s | d |" |
|||
print " | z | x | c |" + chr(10) |
|||
print " Pulsa [SPACE] para comenzar o [ESC] para salir. " |
|||
do |
|||
tecla$ = key |
|||
pause .01 |
|||
if tecla$ = keySpace$ then call gamePlay() |
|||
if tecla$ = keyEsc$ then call endGame() |
|||
until false |
|||
end subroutine |
|||
call gameMenu() |
|||
end |
|||
</lang> |
|||
===Microsoft Small Basic=== |
===Microsoft Small Basic=== |
||
This game has a simple AI. |
This game has a simple AI. |