0% encontró este documento útil (0 votos)
364 vistas23 páginas

Michi C++

El documento describe un programa para jugar al juego del tres en raya entre dos jugadores. El programa inicializa una matriz que representa el tablero, muestra el tablero, pide las coordenadas al jugador 1, verifica si la posición está disponible y coloca su ficha, luego hace lo mismo para el jugador 2. Verifica después si hay un ganador revisando las filas, columnas y diagonales, y continúa el juego hasta que haya un ganador o empate.

Cargado por

Robert Taylor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
364 vistas23 páginas

Michi C++

El documento describe un programa para jugar al juego del tres en raya entre dos jugadores. El programa inicializa una matriz que representa el tablero, muestra el tablero, pide las coordenadas al jugador 1, verifica si la posición está disponible y coloca su ficha, luego hace lo mismo para el jugador 2. Verifica después si hay un ganador revisando las filas, columnas y diagonales, y continúa el juego hasta que haya un ganador o empate.

Cargado por

Robert Taylor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

#include <iostream>

#include <string>
using namespace std;
void reemplazar(string [3][3],string,string);
void verificar(string [3][3],string);
int main()
{
string A[3][3]={"1","2","3",
"4","5","6",
"7","8","9"};
string resp,figura="X";
while (resp!="fin")
{
//Muestra tabla
for(int fila=0;fila<3;fila++)
{
for(int columna=0;columna<3;columna++)
{
cout<<A[fila][columna]<<" ";
}
cout<<endl;
}
cout<<"Posicion "<<figura<<": ";
cin>>resp;
//Llamar funcion reemplazar
reemplazar(A,figura,resp);
//Llamar funcion verificar
verificar(A,figura);
//Intercambia X por O

if (figura=="X")
figura="O";
else
figura="X";

}
return 0;
}
//Funciones
void reemplazar(string A[3][3],string figura,string resp)
{
for(int fila=0;fila<3;fila++)
{
for(int columna=0;columna<3;columna++)
{
if(resp==A[fila][columna])
A[fila][columna]=figura;
}
}
return;
}
void verificar(string A[3][3],string figura)
{
if(A[0][0]==A[0][1] && A[0][1]==A[0][2])
cout<<"Gano "<<A[0][0]<<endl;
else if (A[1][0]==A[1][1] && A[1][1]==A[1][2])
cout<<"Gano "<<A[1][0]<<endl;
else if (A[2][0]==A[2][1] && A[2][1]==A[2][2])
cout<<"Gano "<<A[2][0]<<endl;

else if (A[0][0]==A[1][0] && A[1][0]==A[2][0])


cout<<"Gano "<<A[0][0]<<endl;
else if (A[0][1]==A[1][1] && A[1][1]==A[2][1])
cout<<"Gano "<<A[0][1]<<endl;
else if (A[0][2]==A[1][2] && A[1][2]==A[2][2])
cout<<"Gano "<<A[0][2]<<endl;
else if (A[0][0]==A[1][1] && A[1][1]==A[2][2])
cout<<"Gano "<<A[0][0]<<endl;
else if (A[0][2]==A[1][1] && A[1][1]==A[2][0])
cout<<"Gano "<<A[0][2]<<endl;
else //Veamos si hay dos iguales
{
if(A[0][0]==A[0][1] || A[0][0]==A[0][2]||A[0][1]==A[0][2])
cout<<"Cuidado con "<<figura<<endl;
else if (A[1][0]==A[1][1] || A[1][0]==A[1][2]||A[1][1]==A[1][2])
cout<<"Cuidado con "<<figura<<endl;
}
return;
}

/*REALIZAR JUEGO TRES EN RAYA: JUGADOR CONTRA JUGADOR*/


#include
#include
#include
#include

<conio.h>
<stdio.h>
<string.h>
<dos.h>

void tablero (int,int);


void jugador1(void);
void jugador2(void);
char matriz [3][3];
int comprueba(void);
void main(void)
{
printf("BIENVENIDO AL TRES EN RAYA\n");
printf("--------------------------\n");
printf("Las posiciones empiezan en '0' y acaban en '2'\n\n");
do
{
jugador1();
jugador2();
}
while(comprueba!=0);

getch();
}
void jugador1(void)
{
int i,j;
printf("\n\nJugador 1, introduce una posicion\n\n");
printf("\n\n FILA : ");
scanf("%d",&i);
printf("\nCOLUMNA : ");
scanf("%d",&j);
if(i>3 || j>3)
{
printf("\n\nLo siento,esa coordenada no existe");
}
else
{
matriz[i][j]='X';
tablero(i,j);
}
comprueba();
getch();
}

void jugador2(void)
{
int i,j;
printf("\n\nJugador 2, introduce una posicion\n\n");
printf("\n\n FILA : ");
scanf("%d",&i);
printf("\nCOLUMNA : ");
scanf("%d",&j);
if(i>3 || j>3)
{
printf("\n\nLo siento,esa coordenada no existe");
}
else
{
matriz[i][j]='O';
tablero(i,j);
}
getch();
comprueba();
return;
}
int comprueba (void)
{
//gana jugador 1
if(matriz[0][0]== matriz[0][1] && matriz[0][1]==matriz[0][2]&&
matriz[0][0]=='X')
{
printf("Jugador 1, has ganado la partida!!");
if(matriz[0][0]== matriz[0][1] && matriz[0][1]==matriz[0][2]&&
matriz[0][0]=='O')
printf("Jugador 2, has ganado la partida!!");
}
if(matriz[0][0]== matriz[1][0] && matriz[1][0]==matriz[2][0]&&
matriz[0][0]=='X')
{
printf("Jugador 1, has ganado la partida!!");
}
if(matriz[0][1]== matriz[1][1] && matriz[2][1]==matriz[2][1]&&
matriz[0][1]=='O')
{
printf("Jugador 1, has ganado la partida!!");
}
if(matriz[0][2]== matriz[1][2] && matriz[2][2]==matriz[2][2]&&
matriz[0][2]=='O')
{
printf("Jugador 1, has ganado la partida!!");

}
if(matriz[0][2]== matriz[1][1] && matriz[2][0]==matriz[2][0]&&
matriz[0][2]=='O')
{
printf("Jugador 1, has ganado la partida!!");
}
return(1);
}
void tablero (int i,int j)
{
clrscr();
printf("\n\n
0 | 1 | 2 \n");
printf("-------------------\n");
printf(" 0 %c | %c | %c\n",matriz[0][0],matriz[0][1],matriz[0][2]);
printf("-------------------\n");
printf(" 1 %c | %c | %c\n",matriz[1][0],matriz[1][1],matriz[1][2]);
printf("-------------------\n");
printf(" 2 %c | %c | %c\n",matriz[2][0],matriz[2][1],matriz[2][2]);
return;
}

//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the [Link] on your
// install media.
//
/*++

Module Name: windows.h

Purpose: Master include file for Windows applications.

--*/

#ifndef __WINDOWS__
#define __WINDOWS__

#ifdef SHx
#pragma warning(disable:4710)
#endif

#include <windef.h>
#include <types.h>
#include <winbase.h>
#include <wingdi.h>
#include <winuser.h>

#include <winreg.h>
#include <shellapi.h>
#if !defined(WINCEMACRO) && !defined(WIN32_NO_OLE)
#include <ole2.h>
#endif

#include <imm.h>

#include <tchar.h>
#include <excpt.h>

// On CE force the functions to be linked instead of inline and


// turn off auto deprecate
#ifdef UNDER_CE
#define STRSAFE_LIB
#define STRSAFE_NO_DEPRECATE
#endif
#include <strsafe.h>

#endif /* __WINDOWS__ */

#include <stdio.h>
#include <stdlib.h>

void SumaEstadistica(int jug);

void DespliegaEstadistica(int,int,int,int,int);
void Ocupado(int jug);
void Preparaturno(int jug);
void menu();
void victoria(int);
void jugando();
int main(int argc, char *argv[],int jug)
{
//Imprime menu
int opc=0;
int jug1p=0;
int jug1g=0;
int jug2p=0;
int jug2g=0;
int emp=0;
if(jug==2){
jug2g++;
jug1p++;
}
if (jug==1){
jug1g++;
jug2p++;
}
if (jug==5)
{
emp++
}
do
{

system("CLS");
system("Color 0a");
printf ("Bienvenido al juego del gato.\nPor favor, sirvase escoger una opcion.\n1. Jugar\n2.
Estadisticas\n3. Salir\n");
scanf("%d",&opc);
switch (opc){
case 1://jugar
jugando();
break;
case 2://estadisticas
system("cls");
printf("\t\tEstadisticas\n\t\t------------\n");
printf("Jugador\tGanadas\tPerdidas\tEmpatadas\n");
printf("O\t %d\t%d\t\t%d\n",jug1g,jug1p,emp);
printf("X\t %d\t%d\t\t%d\n",jug2g,jug2p,emp);
Sleep(4000);
system("cls");
main(1,1,0);
break;
case 3:

break;
}
}while (opc=!3);

return 0;
}

void Ocupado(int jug){


//Mensaje de posicion Ocupada.
system("CLS");
system("Color c");
printf("El espacio esta ocupado, seleccione otro.");
Sleep(1500);
system("Cls");

system("color 0a");
Preparaturno(jug);
jug=0;
}
void Preparaturno(int jug){
//Prepara turno para jugador
system("cls");
printf("\nJugador %d. \nIngrese fila y columna.\n",jug);
jug=0;
}
int verifganador(int dat1, int dat2, int dat3){
if (dat1 == 0 && dat2 == 0 && dat3 == 0){}
else
{
if (dat1 == dat2 && dat1 == dat3 && dat1 == 3){return 1;}
}
if (dat1 == dat2 && dat1 == dat3 && dat1 == 5){return 2;}

void victoria(int quien){


system("CLS");
system("Color 0b");

if (quien==2){printf ("Felicidadesjugador 2, has vencido!");


Sleep(2000);
main(1,0,2);
}

if (quien==1){printf("Felicidades jugador 1, has vencido!");}


Sleep(2000);
main(1,0,1);
}

void jugando(){
int Tablero[3][3];
int x =0;
int z =0;
int jugador =1 ;
int fila =0;
int col =0;
int intentos=0;
int gano=0;

//Dar formato a matriz


for(z=0;z<3;z++){for(x=0;x<3;x++){Tablero[z][x]=0;}}
do
{ system("color 0a");
//Grafica matriz

system("CLS");
for(z=0;z<3;z++){
for(x=0;x<3;x++){
if (Tablero[z][x]==0){printf(" ");if(x<2){printf(" | ");}}
if (Tablero[z][x]==3){printf("O");if(x<2){printf(" | ");}}
if (Tablero[z][x]==5){printf("X");if(x<2){printf(" | ");}}}
if(z<2){
printf("\n__________\n");}
}
printf("\n");
//Comprobacion Diaagonal izquierda,
gano = verifganador(Tablero[0][2],Tablero[1][1],Tablero[2][0]);
//Comprobacion Diaagonal derecha,
gano = verifganador(Tablero[0][0],Tablero[1][1],Tablero[2][2]);
//Comprobacion horizontal
for(z=0;z<3;z++){gano = verifganador(Tablero[z][0],Tablero[z][1],Tablero[z][2]);}
//Comprobacion vertical
for(z=0;z<3;z++){gano = verifganador(Tablero[0][z],Tablero[1][z],Tablero[2][z]);}
if (gano==1){intentos=10;jugador=0;}
if (gano==2){intentos=10;jugador=0;}
//Alternado entre jugadores
if (jugador==1)
{
printf("\nJugador %d. \nIngrese fila y columna.\n",jugador);
scanf("%d %d",&fila, &col);
fflush (stdin);
if (Tablero[fila-1][col-1] == 0){
//La posicion esta libre
Tablero[fila-1][col-1]=3;

jugador=2;
}
else
{
//la posicion esta ocupada
Ocupado(1);
jugador=1;
}
//Suma intentos para controlar fin del juego o empate.
intentos++;
}
if (jugador==2 )
{
printf("\nJugador %d. \nIngrese fila y columna.\n",jugador);
scanf("%d %d",&fila, &col);
fflush (stdin);
if (Tablero[fila-1][col-1] == 0){
Tablero[fila-1][col-1]=5;
jugador=1;
}
else
{
Ocupado(2);
jugador=2;
}

intentos++;
}

}while(intentos<9);
victoria(gano);
}

void DespliegaEstadistica(int jug1p,int jug1g,int jug2p,int jug2g,int emp){


system("cls");
printf("\t\tEstadisticas\n\t\t------------\n");
printf("Jugador\tGanadas\tPerdidas\tEmpatadas\n");
printf("O\t %d\t%d\t\t%d\n",jug1g,jug1p,emp);
printf("X\t %d\t%d\t\t%d\n",jug2g,jug2p,emp);
Sleep(4000);
system("cls");

#include <iostream.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
char coma,c1[2][3],a[2][3];
int x1, y1, x2, y2, aciertos,r,c,val;
int jugador=1,ganador1=0,ganador2=0,nuevo=0;
void Valores()
{
aciertos=0;
c1[0][0]='A';c1[0][1]='A';c1[0][2]='B';
c1[1][0]='D';c1[1][1]='D';c1[1][2]='B';
}
void Ocultar()
{
for(r=0;r<2;r++)
{
for(c=0;c<3;c++)
{a[r][c]='*';}
}
}
void Cordenadas()
{
cout<<"\nCOORDENADAS \n";
cout<<"\n 0 1 2 \n";
for ( r=0; r<2; r++)
{
cout<<r<<" ";
for ( c=0; c<3; c++)
cout<<a[r][c]<<" ";
cout<<"\n";
}
cout<<"\n";
}

int posiciones()
{
gotoxy(5,10);cout<<"Jugador: "<<jugador;
gotoxy(48,3);cout<<"Ejemplo como coordenar";
gotoxy(48,4);cout<<"Tecleas 1,2 Enter";
gotoxy(5,11);cout<<"primer coordenada: ";
cin>>x1>>coma>>y1;
gotoxy(5,13);cout<<"seguda cordenada: ";
cin>>x2>>coma>>y2;
cout<<"\n 0 1 2\n";
for (r=0;r<2;r++)
{
cout<<r<<" ";
for (c=0;c<3;c++)
{

if ((r==x1)&&(c==y1))
{
cout<<c1[r][c]<<" ";
}
else if((r==x2)&&(c==y2))
{
cout<<c1[r][c]<<" ";
}
else
{
cout<<"* ";
}
}
cout<<"\n";
}
if (c1[x1][y1]==c1[x2][y2])
{
cout<<"Felicidades tienes un par jugador "<<jugador;
a[x1][y1]=c1[x1][y1];
a[x2][y2]=c1[x2][y2];
aciertos++;
getch();
clrscr(); //limpiador de pantalla
if (jugador==2){jugador=2;ganador2=ganador2+1;}
else {jugador=1;ganador1=ganador1+1; }
}
else
{
cout<<"Lo siento jugador "<<jugador<<" No es un par \n";
getch();
clrscr();
if (jugador==2){jugador=1;}
else {jugador=2; }
}
return aciertos;
}
main()
{ while(nuevo<1){
int res;
int pares=0;
Valores();
Ocultar();
gotoxy(30,2);cout<< "M..E..M..O..R..A..M..A";
getch();
clrscr();
do{
Cordenadas();
pares=posiciones();
}while(pares<3);
if(ganador2>ganador1){clrscr();gotoxy(40,15);cout<<"El ganador es el jugador: 2"; }
else if(ganador1>ganador2){clrscr();gotoxy(40,15);cout<<"El ganador es el jugador: 1 "; }
else {clrscr();gotoxy(40,15);cout<<"ES UN EMPATE"; }
gotoxy(50,8);cout<<"..Aciertos..";
gotoxy(50,9);cout<<"Jugador #1:"<<ganador1;
gotoxy(50,10);cout<<"Jugador #2:"<<ganador2;

getch();
cout<<"\n\nDeseas volver a jugar";
cout<<"\n1.-SI";
cout<<"\n2.-No\n";
cin>>res;
if(res==2){clrscr();nuevo=3;gotoxy(30,15);cout<< "GAME OVER";gotoxy(40,17);getch();}
aciertos=0;
ganador1=0;
ganador2=0;
clrscr();
}
return 0;
}

import [Link].*;
public class TresEnRaya{
BufferedReader consola;
public String tablero[][];
public int fila;
public int columna;
public String jugador1;
public String jugador2;
public TresEnRaya(){
consola = new BufferedReader(new InputStreamReader([Link]));
tablero = new String[3][3];
}
public void start(){
leerJugadores();
[Link]("Comencemos");
[Link]();
iniciaTablero();
for(int jugadas = 0; jugadas < 9; jugadas++){
if(jugada(jugadas))
return;
}
imprimeTablero();
[Link]("Tablas!!!!");
}
public boolean jugada(int jugada){
String jugador = null;
String valor = null;
if(jugada %
jugador
valor =
}else{
jugador
valor =
}

2 == 0){
= jugador1;
"X";
= jugador2;
"O";

imprimeTablero();
leerEntrada(jugador);
tablero[fila][columna] = valor;
if(hayGanador(valor)){
[Link]("Ha ganado " + jugador + "!!!!");
return true;
}else{
return false;
}
}
public boolean hayGanador(String valor){
boolean tresEnRaya = false;
int i, j;
int contador;

//comprueba filas
for(i = 0; i < 3; i++){
contador = 0;
for(j = 0; j < 3; j++){
if(tablero[i][j].compareTo(valor) == 0)
contador++;
}
if(contador == 3){
tresEnRaya = true;
break;
}
}
//comprueba columnas
if(!tresEnRaya){
for(j = 0; j < 3; j++){
contador = 0;
for(i = 0; i < 3; i++){
if(tablero[i][j].compareTo(valor) == 0)
contador++;
}
if(contador == 3){
tresEnRaya = true;
break;
}
}
}
//comprueba diagonal principal
if(!tresEnRaya){
contador = 0;
for(i = 0; i < 3; i++){
if(tablero[i][i].compareTo(valor) == 0)
contador++;
}
if(contador == 3){
tresEnRaya = true;
}
}
//comprueba diagonal secundaria
if(!tresEnRaya){
contador = 0;
for(i = 0; i < 3; i++){
if(tablero[i][2 - i].compareTo(valor) == 0)
contador++;
}
if(contador == 3){
tresEnRaya = true;
}
}
return tresEnRaya;
}
public void iniciaTablero(){

for(int i = 0; i < 3; i++){


for(int j = 0; j < 3; j++){
tablero[i][j] = "-";
}
}
}
public void imprimeTablero(){
[Link](" 1 2 3");
for(int i = 0; i < 3; i++){
[Link](i+1 + " ");
for(int j = 0; j < 3; j++){
[Link](tablero[i][j] + " ");
}
[Link]();
}
[Link]();
}
public boolean entradaValida(){
if(tablero[fila][columna].compareTo("-") == 0){
return true;
}else{
return false;
}
}
public void leerJugadores(){
boolean entradaCorrecta = false;
while(!entradaCorrecta){
try{
[Link]("Empiezan X.");
[Link]("Nombre del jugador con X: ");
jugador1 = [Link]();
[Link]("Nombre del jugador con O: ");
jugador2 = [Link]();
[Link]();
entradaCorrecta = true;
}catch(Exception e){
[Link]("Valor incorrecto.");
entradaCorrecta = false;
}
}
}
public void leerEntrada(String jugador){
boolean entradaCorrecta = false;
[Link]("Es el turno de " + jugador + ":");
while(!entradaCorrecta){
try{
String entrada;
[Link]("Fila
(1, 2, 3): ");
entrada = [Link]();
fila = [Link](entrada) - 1;
if(fila > 2 || fila < 0){
[Link]("Valor fuera de rango.");
entradaCorrecta = false;

}else{
[Link]("Columna (1, 2, 3): ");
entrada = [Link]();
columna = [Link](entrada) - 1;
if(columna > 2 || columna < 0){
[Link]("Valor fuera de rango.");
entradaCorrecta = false;
}else{
if(entradaValida()){
[Link]();
entradaCorrecta = true;
}else{
[Link]("Casilla ocupada.");
entradaCorrecta = false;
}
}
}
}catch(Exception e){
[Link]("Valor incorrecto.");
entradaCorrecta = false;
}
}
}
public static void main(String args[]){
TresEnRaya ter = new TresEnRaya();
[Link]();
}

También podría gustarte