Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Practica 12
- gato3.cpp
- Programa basado en el ejercicio 29 (Juego del Gato) del Cuaderno de Ejercicios
- de Programacion I. pag 60.
- Ahora con una interfaz grafica.
- *NOTA IMPORTANTE: Debido a las limitantes de la libreria RAD C++, las cajas de
- texto no pueden establecer una longitud, por lo que necesita ponerse el ancho
- de las cajas en 15. Esto hace que solamente acepte UN CARACTER, de lo contrario
- la caja de texto contendra mas de uno (espacios en blanco) y la evaluacion de
- las condiciones no se llevara a cabo
- Ademas, debido a la libreria, tampoco es posible evaluar de manera directa el
- contenido de las cajas de texto, con su valor almacenado en la propiedad TEXT.
- Para ello, se ha creado un ARRAY ASOCIATIVO DE CADENA (ver mas abajo) para
- almacenar en dicha matriz los valores introducidos por el usuario a traves de
- la interfaz. De esta forma, es posible hacer las condiciones para saber que
- jugador gana.
- Por: LSC Sergio Hugo Sanchez O.
- Fecha: 15/Mayo/2011
- */
- #include <radc++.h>
- Form form1("Juego del Gato",10,10,300,200);
- TextBox t1("",AUTO_ID, 10,10,15,20,form1);
- TextBox t2("",AUTO_ID, 45,10,15,20,form1);
- TextBox t3("",AUTO_ID, 80,10,15,20,form1);
- TextBox t4(" ",AUTO_ID, 10,35,15,20,form1);
- TextBox t5(" ",AUTO_ID, 45,35,15,20,form1);
- TextBox t6(" ",AUTO_ID, 80,35,15,20,form1);
- TextBox t7(" ",AUTO_ID, 10,60,15,20,form1);
- TextBox t8(" ",AUTO_ID, 45,60,15,20,form1);
- TextBox t9(" ",AUTO_ID, 80,60,15,20,form1);
- SunkLine line1(10,100,200,2,form1);
- Label label1("Resultado ",-1,10,120,250,20,form1);
- Button b1("Instrucciones",AUTO_ID,180,90,100,30,form1);
- //create an associative array to hold string values
- createAssocArray(String, movs);
- int Check(void)
- {
- /* Se evaluara lo que ha introducido el usuario en cada caja de texto, si
- lo ha puesto por fila, columna o en diagonal para cada una de las 2 letras:
- X o O. segun el jugador */
- if (movs[0]=="X" & movs[1]=="X" & movs[2]=="X"){
- label1.caption = "Gano X " ;
- }
- else if (movs[3]=="X" && movs[4]=="X" && movs[5]=="X"){
- label1.caption = "Gano X" ;
- }
- else if (movs[6]=="X" && movs[7]=="X" && movs[8]=="X"){
- label1.caption = "Gano X ";
- }
- else if (movs[0]=="X" && movs[4]=="X" && movs[8]=="X"){
- label1.caption = "Gano X " ;
- }
- else if (movs[2]=="X" && movs[4]=="X" && movs[6]=="X"){
- label1.caption = "Gano X " ;
- }
- else if (movs[0]=="X" && movs[3]=="X" && movs[6]=="X"){
- label1.caption = "Gano X " ;
- }
- else if (movs[1]=="X" && movs[4]=="X" && movs[7]=="X"){
- label1.caption = "Gano X " ;
- }
- else if (movs[2]=="X" && movs[5]=="X" && movs[8]=="X"){
- label1.caption = "Gano X " ;
- }
- /* Ahora evaluamos la O mayuscula para el otro jugador. El codigo es el mismo que para la X
- solamente que pondremos O en lugar de X */
- if (movs[0]=="O" & movs[1]=="O" & movs[2]=="O"){
- label1.caption = "Gano O " ;
- }
- else if (movs[3]=="O" && movs[4]=="O" && movs[5]=="O"){
- label1.caption = "Gano O" ;
- }
- else if (movs[6]=="O" && movs[7]=="O" && movs[8]=="O"){
- label1.caption = "Gano O ";
- }
- else if (movs[0]=="O" && movs[4]=="O" && movs[8]=="O"){
- label1.caption = "Gano O " ;
- }
- else if (movs[2]=="O" && movs[4]=="O" && movs[6]=="O"){
- label1.caption = "Gano O " ;
- }
- else if (movs[0]=="O" && movs[3]=="O" && movs[6]=="O"){
- label1.caption = "Gano O " ;
- }
- else if (movs[1]=="O" && movs[4]=="O" && movs[7]=="O"){
- label1.caption = "Gano O " ;
- }
- else if (movs[2]=="O" && movs[5]=="O" && movs[8]=="O"){
- label1.caption = "Gano O " ;
- }
- // label1.caption = "NADIE GANO " ;
- return 0;
- }
- //NOTE: function createAssocArray accepts two arguments, where 1st is type of array elements,
- // and second is the name of variable.
- FormProcedure proc1(FormProcArgs){
- //Cuando se cierra la aplicacion.
- ON_CLOSE() Application.close();
- /*Aqui van todos los eventos segun se pone una letra en cada caja de texto.
- Tenemos una matriz de 3x3.
- Necesitamos poner el valor del texto de cada caja en una variable para que
- pueda ser evaluada correctamente con una X o O. Por lo tanto se creo una
- matriz que almacene dichos valores. Una vez pasado el valor, vamos a la
- funcion CHECK() que es la que evaluara como va el juego */
- ON_TEXT_CHANGED( t1){
- movs[0] = t1.text;
- Check();
- }
- ON_TEXT_CHANGED( t2){
- movs[1] = t2.text;
- Check();
- }
- ON_TEXT_CHANGED(t3) {
- movs[2] = t3.text;
- Check();
- }
- // Segunda fila
- ON_TEXT_CHANGED( t4){
- movs[3] = t4.text;
- Check();
- }
- ON_TEXT_CHANGED( t5){
- movs[4] = t5.text;
- Check();
- }
- ON_TEXT_CHANGED(t6) {
- movs[5] = t6.text;
- Check();
- }
- // Tercera fila
- ON_TEXT_CHANGED( t7){
- movs[6] = t7.text;
- Check();
- }
- ON_TEXT_CHANGED( t8){
- movs[7] = t8.text;
- Check();
- }
- ON_TEXT_CHANGED(t9) {
- movs[8] = t9.text;
- Check();
- }
- // Instrucciones
- ON_COMMAND_BY( b1) {
- form1.infoBox("Use las letras X y O en mayusculas\nsolamente.\nDe lo contrario el programa no funcionara","Info");
- }
- return 0;
- }
- //Programa principal
- rad_main()
- //Agregamos valores nulos a la matriz de cadena creada anteriormente
- movs["0"] = "";
- movs["1"] = "";
- movs["2"] = "";
- movs["3"] = "";
- movs["4"] = "";
- movs["5"] = "";
- movs["6"] = "";
- movs["7"] = "";
- movs["8"] = "";
- movs["9"] = "";
- t1.focus(); //Ponemos el cursor en la primera caja
- form1.procedure = proc1;
- rad_end()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement