1. /* JUEGO DEL BINGO
* ESTE JUEGO FUE CREADO PARA JUGAR CON 4 TABLEROS
* Y LA CREACION DE 1 UNA FIGURA (L)
* CON LAS RESPECTIVAS VALIDACIONES
* Y LA GENERACION DE NUMEROS ALEATORIOS
*/
package menus;
import java.io.*;
import java.util.Random;
import java.util.Scanner;
/**
*
* @author edgar
*
*/
public class bingo {
// Definicion de Variables Globales
private static menu llamaMenu = new menu();
//private static int[] numerAlea = new int[25];
private static int[][] matAle = new int[5][5];
private static int[][] matAle1 = new int[5][5];
private static int[][] matAle2 = new int[5][5];
private static int[][] matAle3 = new int[5][5];
private static int[][] matAle4 = new int[5][5];
private static int[][] matMan = new int[5][5];
private static int[][] matMan1 = new int[5][5];
private static int[][] matMan2 = new int[5][5];
private static int[][] matMan3 = new int[5][5];
private static int[][] matMan4 = new int[5][5];
private static int[] figuraL1=new int[9];
private static int[] figuraL2=new int[9];
private static int[] figuraL3=new int[9];
private static int[] figuraL4=new int[9];
private static int[] figuraC1=new int[13];
private static int[] figuraC2=new int[13];
private static int[] figuraC3=new int[13];
private static int[] figuraC4=new int[13];
private static int
fichas=2000,con=0,x=0,i=0,j=0,hasta=0,desde=0,aleatorio=0,manual=0,aux=0,edad=0,tableros=0,z=0,
comp=0,aleMan=0,fig=0,manualAlea=0;
private static String nombre="",nick="";
private static Random rnd = new Random();
2. private static Scanner teclado = new Scanner(System.in);
public static void main(String[] args) throws IOException{
resMatr resetear = new resMatr();
resetear.resMatr();
llamaMenu.menu();
}
static class menu{
void menu(){
char letra=' ';
BufferedReader teclado1 = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("tttttt********************************");
System.out.println("tttttt********************************");
System.out.println("tttttt******* BINGO MILLONARIO *******");
System.out.println("tttttt******* MENU *******");
System.out.println("tttttt********************************");
System.out.println("tttttt********************************");
System.out.println("nttttta) Registrar Datos");
System.out.println("tttttb) Jugar Bingo");
System.out.println("tttttc) Digite 's-S' para salir");
System.out.print("nttttttElija una opcion : ");
letra = teclado1.readLine().charAt(0);
}catch (IOException e){
System.out.print("nError de captura en: "+e);
}
switch(letra){
case 'a': case 'A':
registrarDatos registrar = new registrarDatos();
registrar.registrarDatos();
llamaMenu.menu();
case 'b': case 'B':
// Comprueba si esta registrado
comprobarRegistro comReg1 = new comprobarRegistro();
con = comReg1.comprobarRegistro();
try{
if(con == 0){
// Creacion de Instancias y objetos
crearMatrizAle crearMatAle = new crearMatrizAle();
crearMatrizMan crearMatMan = new crearMatrizMan();
crearFigura figura = new crearFigura();
numerosAleatorios numAle = new numerosAleatorios();
System.out.println("nntttttRecuerde que puede jugar con 4 tableros");
System.out.println("tttttsimultanamente. Cada tablero tiene un valor");
3. System.out.println("tttttde 500 fichas.");
System.out.println("ntttttPuede generar los tableros aleatoriamente o");
System.out.println("tttttmanualmente");
System.out.println("ntttttSi desea generarlos aleatoriamente digite 1");
System.out.println("tttttSi desea generarlos manualmente digite 2");
do{
System.out.print("nttttttDigite su opción: ");
Scanner teclado4 = new Scanner(System.in);
aleMan = Integer.parseInt(teclado4.nextLine());
}while(aleMan <1 || aleMan >2);
if(aleMan==1){
System.out.println("ntttttTABLEROS GENERADOS ALEATORIAMENTE");
System.out.print("nttttt¿Con cuantos Tableros desea jugar?: ");
Scanner teclado3 = new Scanner(System.in);
tableros = Integer.parseInt(teclado3.nextLine());
// Validacion del ingreso de un numero entre 1 y 4
if(tableros >=1 && tableros <=4){
comp = 1;
}
if(tableros <1 || tableros >4){
while(tableros <1 || tableros >4){
System.out.print("ntttttIngresa un numero entre 1 y 4: ");
tableros = Integer.parseInt(teclado3.nextLine());
comp=1;
}
}
if(comp == 1){
crearMatAle.crearMatrizAle();
}
manualAlea=1;
}
if(aleMan==2){
System.out.println("ntttttTABLEROS GENERADOS MANUALMENTE");
System.out.println("nttttt¿Con cuantos Tableros desea jugar?: ");
Scanner teclado3 = new Scanner(System.in);
tableros = Integer.parseInt(teclado3.nextLine());
// Validacion del ingreso de un numero entre 1 y 4
if(tableros >=1 && tableros <=4){
comp = 1;
}
if(tableros <1 || tableros >4){
while(tableros <1 || tableros >4){
System.out.print("ntttttIngresa un numero entre 1 y 4: ");
tableros = Integer.parseInt(teclado3.nextLine());
4. comp=1;
}
}
if(comp == 1){
crearMatMan.crearMatrizMan();
}
manualAlea=2;
}
figura.crearFigura();
numAle.numerosAleatorios();
}
if(con == 1){
System.out.println("nntttttDebe registrar sus datos primerontttttantes de
poder jugar");
System.out.println("ttttt--------------------------------nn");
}
}catch(NumberFormatException ex){
System.out.println("Ocurrio algun error en: " + ex);
}
this.menu();
case 's': case 'S':
System.out.println("nntttttt*****************************");
System.out.println("tttttt* Gracias por Jugar BINGO *");
System.out.println("tttttt*****************************");
System.exit(0);
break;
default:
System.out.println("nnLo siento la opción digitada no existe");
System.out.println("--------------------------------------nn");
llamaMenu.menu();
}
}
}
static class comprobarRegistro{
int comprobarRegistro(){
if(nombre.equals("") && nick.equals("") && edad == 0){
return 1;
}
return 0;
}
}
static class registrarDatos{
5. void registrarDatos(){
try{
//teclado.useDelimiter(System.getProperty("line.separator"));
System.out.print("Ingrese el nombre: ");
nombre = teclado.next();
System.out.print("Ingrese el nick: ");
nick = teclado.next();
System.out.print("Ingrese edad: ");
edad = teclado.nextInt();
System.out.print("nttttt*** Usted '"+nick+"' posee "+fichas+" fichas para jugar
***nn");
}
catch(NumberFormatException ex){
System.out.println("Ocurrio algun error en: " + ex);
}
}
}
static class crearMatrizAle{
void crearMatrizAle() {
System.out.print("ntINGRESO DEL BINGO ALEATORIAMENTEnn");
for (z=0;z<tableros;z++){
for (i=0;i< 5;i++){
rangoMatr rangos = new rangoMatr();
rangos.rangoMatr(i);
for(j=0;j<5;j++) {
aleatorio = (rnd.nextInt(hasta-desde+1)+desde);
do{
if(aleatorio == matAle[x][i]){
aux = 1;
}
x++;
}while(x<j);
if(aux == 0){
matAle[j][i] = aleatorio;
}
else{
j--;
aux=0;
}
x=0;
}
}
crearMatrizAleManTableros enviarTableros = new crearMatrizAleManTableros();
6. enviarTableros.crearMatrizAleManTableros(1,z,matAle);
fichas=fichas-500;
}
imprMatr imprimir = new imprMatr();
imprimir.imprMatr(1);
}
}
static class crearMatrizMan{
void crearMatrizMan() {
System.out.println("ntINGRESO DEL BINGO MANUALMENTE");
for (z=0;z<tableros;z++){
System.out.println("ntIngrese los numeros del tablero N #"+z);
for (i=0;i< 5;i++){
rangoMatr rangos = new rangoMatr();
rangos.rangoMatr(i);
System.out.println("n-----------------------------------------------------");
System.out.println("- Ingrese un numero que se encuentre entre "+desde+" y "+hasta+"
-");
System.out.println("-----------------------------------------------------n");
for(j=0;j<5;j++) {
System.out.print("fila["+j+"] columna["+i+"]: ");
Scanner matrizMan = new Scanner(System.in);
manual = Integer.parseInt(matrizMan.nextLine());
if(manual >= desde && manual <= hasta){
do{
if(manual == matMan[x][i]){
aux = 1;
}
x++;
}while(x<j);
if(aux == 0){
matMan[j][i] = manual;
}
else{
j--;
aux=0;
System.out.println("n---------------------------------");
System.out.println("- Ingrese un numero diferente -");
System.out.println("---------------------------------n");
}
x=0;
}
else{
7. j--;
aux=0;
System.out.println("n-----------------------------------------------------");
System.out.println("- Ingrese un numero que se encuentre entre "+desde+" y
"+hasta+" -");
System.out.println("-----------------------------------------------------n");
}
}
System.out.println();
}
crearMatrizAleManTableros enviarTableros = new crearMatrizAleManTableros();
enviarTableros.crearMatrizAleManTableros(2,z,matMan);
fichas=fichas-500;
}
imprMatr imprimir = new imprMatr();
imprimir.imprMatr(2);
}
}
static class crearMatrizAleManTableros{
void crearMatrizAleManTableros(int aleaManu,int contador,int matriz [][]) {
if(aleaManu == 1){
for (i=0;i< 5;i++){
for (j=0;j< 5;j++){
if(contador == 0){ matAle1[j][i] = matriz[j][i]; }
if(contador == 1){ matAle2[j][i] = matriz[j][i]; }
if(contador == 2){ matAle3[j][i] = matriz[j][i]; }
if(contador == 3){ matAle4[j][i] = matriz[j][i]; }
}
}
}
if(aleaManu == 2){
for (i=0;i< 5;i++){
for (j=0;j< 5;j++){
if(contador == 0){ matMan1[j][i] = matriz[j][i]; }
if(contador == 1){ matMan2[j][i] = matriz[j][i]; }
if(contador == 2){ matMan3[j][i] = matriz[j][i]; }
if(contador == 3){ matMan4[j][i] = matriz[j][i]; }
}
}
}
}
}
static class imprMatr{
void imprMatr(int valor) {
imprMatrTableros imprimirAleMan = new imprMatrTableros();
9. crearFigEspec figuraEspec = new crearFigEspec();
imprimirFigura impFig = new imprimirFigura();
int[][] matFig = new int[5][5];
System.out.println("ntttttSi desea Crear la Figura L digite 1");
System.out.println("tttttSi desea Crear la Figura C digite 2");
//System.out.println("tttttSi desea Crear la Figura O digite 3");
do{
System.out.print("nttttttDigite su opción: ");
Scanner teclado5 = new Scanner(System.in);
fig = Integer.parseInt(teclado5.nextLine());
}while(fig <1 || fig >2);
System.out.println("ntttttttFigura 'L'");
System.out.println("ttttttt*********");
for (z=0;z<tableros;z++){
// "Uno(1)" Para saber si se ingreso los tableros aleatoriamente ó "Cero(0)" para tableros
manuales
if(manualAlea==1){
if(z == 0){ matFig=matAle1; }
if(z == 1){ matFig=matAle2; }
if(z == 2){ matFig=matAle3; }
if(z == 3){ matFig=matAle4; }
}else{
if(z == 0){ matFig=matMan1; }
if(z == 1){ matFig=matMan2; }
if(z == 2){ matFig=matMan3; }
if(z == 3){ matFig=matMan4; }
}
// Se envia la Figura correspondiente, el numero del tablero en el momento,
// y la matriz que contiene al tablero
// 1 si es la figura L
// 2 si es la figura C
// 3 si es la figura O
if(fig==1){ figuraEspec.crearFigEspec(1,z,matFig); }
if(fig==2){ figuraEspec.crearFigEspec(2,z,matFig); }
//if(fig==3){ figuraEspec.crearFigEspec(3,z,matFig); }
}
if(fig==1){ impFig.imprimirFigura(1); }
if(fig==2){ impFig.imprimirFigura(2); }
//if(fig==3){ impFig.imprimirFigura(3); }
}
}
// Se crea las figuras con los parametros que se envian de la funcion crearFigura
static class crearFigEspec{
void crearFigEspec(int figuraCons,int conta, int recFig[][]) {
int cn=0;
if(figuraCons==1){
// Figura L
11. if(conta == 2){ figuraC3[cn]=recFig[a][y]; }
if(conta == 3){ figuraC4[cn]=recFig[a][y]; }
cn++;
}
}
}
}
}
}
}
static class imprimirFigura{
void imprimirFigura(int figImp){
imprimirFiguraEsp impFigEsp = new imprimirFiguraEsp();
System.out.println("tImpresión Figuras");
for(z=0;z<tableros;z++){
// Imprimir Imagen L
if(figImp==1){
if(z==0){ impFigEsp.imprimirFiguraEsp(1,9,figuraL1); }
if(z==1){ impFigEsp.imprimirFiguraEsp(2,9,figuraL2); }
if(z==2){ impFigEsp.imprimirFiguraEsp(3,9,figuraL3); }
if(z==3){ impFigEsp.imprimirFiguraEsp(4,9,figuraL4); }
}
// Imprimir Imagen C
if(figImp==2){
if(z==0){ impFigEsp.imprimirFiguraEsp(1,13,figuraC1); }
if(z==1){ impFigEsp.imprimirFiguraEsp(2,13,figuraC2); }
if(z==2){ impFigEsp.imprimirFiguraEsp(3,13,figuraC3); }
if(z==3){ impFigEsp.imprimirFiguraEsp(4,13,figuraC4); }
}
}
}
}
static class imprimirFiguraEsp{
void imprimirFiguraEsp(int fig1,int tam,int vector[]){
System.out.print("ntVector Figura L #"+fig1+"n");
System.out.print("t----------------------------n");
System.out.print("t[-");
for (i=0;i<tam;i++){
System.out.print(vector[i]+"-");
}
System.out.print("]n");
System.out.print("t----------------------------nn");
}
}
// Genera numeros aleatorios desde el 1 hasta el 75
static class numerosAleatorios{
12. void numerosAleatorios(){
jugarBingo bingo = new jugarBingo();
imprMatrTableros im = new imprMatrTableros();
int aleat=0,t=0,aux1=0,cc=0;
int[] numerAlea = new int[25];
// Llena el vector numerAlert=[] con los numeros aleatorios sin repetir
for(cc=0;cc<25;cc++){
aleat = (rnd.nextInt(75-1+1)+1);
do{
if(aleat == numerAlea[t]){
aux1=1;
}
t++;
}while(t<cc);
if(aux1 == 0){
numerAlea[cc] = aleat;
}
else{
cc--;
aux1=0;
}
t=0;
}
// Imprime el numero con la letra de acuerdo al rango dado
// ademas de esto se envia el numero aleatorio que esta en ese momento
// para comprobar si este numero se encuentra en los tableros con los cuales
// esta jugando la persona.
for(cc=0;cc<25;cc++){
if(numerAlea[cc]>= 1 && numerAlea[cc]<=15){
System.out.print("B"+numerAlea[cc]+" ");
bingo.jugarBingo(numerAlea[cc]);
}
if(numerAlea[cc]>=16 && numerAlea[cc]<=30){
System.out.print("I"+numerAlea[cc]+" ");
bingo.jugarBingo(numerAlea[cc]);
}
if(numerAlea[cc]>=31 && numerAlea[cc]<=45){
System.out.print("N"+numerAlea[cc]+" ");
bingo.jugarBingo(numerAlea[cc]);
}
if(numerAlea[cc]>=46 && numerAlea[cc]<=60){
System.out.print("G"+numerAlea[cc]+" ");
bingo.jugarBingo(numerAlea[cc]);
}
if(numerAlea[cc]>=61 && numerAlea[cc]<=75){
System.out.print("O"+numerAlea[cc]+" ");
bingo.jugarBingo(numerAlea[cc]);
14. int con2=0,con3=0,digite=0,cp=0;
for(con2=0;con2<5;con2++){
for(con3=0;con3<5;con3++){
if(matrizTapar[con2][con3]==v){
System.out.print(" Si desea tacar el numero, digite 1.");
System.out.print(" Sino, digite 2");
do{
System.out.print("nnDigite su opción: ");
Scanner teclado6 = new Scanner(System.in);
digite = Integer.parseInt(teclado6.nextLine());
}while(digite <1 || digite >2);
if(digite==1){
matrizTapar[con2][con3]=0; // tapamos la posicion con 0 para saber que el numero
se encontro en el tablero en juego
for(int xy=0;xy<9;xy++){
if(numFig == 0){
if(figuraL1[xy]==v){ matrizTapar[con2][con3]=-1; } // tapamos la posicion
con -1 para saber que hace parte de la figura
}
if(numFig == 1){
if(figuraL2[xy]==v){ matrizTapar[con2][con3]=-1; } // tapamos la posicion
con -1 para saber que hace parte de la figura
}
if(numFig == 2){
if(figuraL3[xy]==v){ matrizTapar[con2][con3]=-1; } // tapamos la posicion
con -1 para saber que hace parte de la figura
}
if(numFig == 3){
if(figuraL4[xy]==v){ matrizTapar[con2][con3]=-1; } // tapamos la posicion
con -1 para saber que hace parte de la figura
}
}
}
cp=0;
}
else{
cp=1;
}
}
}
if(cp==1){
System.out.print(" El numero no se encuentra en su tableron");
cp=0;
}
15. }
}
static class resMatr{
void resMatr() {
for (i=0;i< 5;i++){
for (j=0;j< 5;j++){
matAle[i][j]=-1;
matAle1[i][j]=-1;
matAle2[i][j]=-1;
matAle3[i][j]=-1;
matAle4[i][j]=-1;
matMan[i][j]=-1;
matMan1[i][j]=-1;
matMan2[i][j]=-1;
matMan3[i][j]=-1;
matMan4[i][j]=-1;
}
}
}
}
}