From: Flaab Mrlinux Date: 2006-11-15T22:11:22+09:00 Subject: Re: Var types as parameters Farrel Lifson wrote: >> Posted via http://www.ruby-forum.com/. > > Could you show us the code which is doing this? > > Farrel Yes. Here it is... The objetive of the program is the following: - The user inserts a string of 15 signs. - The program loads a .txt file with a bunch of strings of 15 signs - The program compares each string of the file with the one the user wrote, and returns the number of signs matching between ALL the strings in the file with the one the user wrote, but only beggining at a minimum amount of 10. Here it goes ------------------------------------------------------------------- #################################### # # CLASES # #################################### # Definimos combinacion, subclase de array class Combinacion < Array @@quince = 0 @@catorce = 0 @@trece = 0 @@doce = 0 @@once = 0 @@diez = 0 def initialize(num) @combi = Array.new(num) end # Devolver valores def dame_resultados print("De Quince: ", @@quince,"\n") print("De Catorce: ", @@catorce,"\n") print("De Trece: ", @@trece,"\n") print("De Doce: ", @@doce,"\n") print("De Once: ", @@once,"\n") print("De Diez: ", @@diez,"\n") end # Comprobar los premios. def comprobacion(combinacionTemp) #Valor auxiliar de acumulador @acum = 0 # Empezamos a comprobar. 15 Comprobaciones 0.upto(14) do |x| if self[x] == combinacionTemp[x] @acum = @acum + 1 elsif self[x] == nil @acum = @acum + 1 end # Comprobamos premios e incrementamos variables de clase if @acum == 10 @@diez = @@diez + 1 elsif @acum == 11 @@once = @@once +1 elsif @acum == 12 @@doce = @@doce +1 elsif @acum == 13 @@trece = @@trece +1 elsif @acum == 14 @@catorce = @@catorce+1 elsif @acum == 15 @@quince = @@quince+1 end # Fin de comprobacion end return self end # Fin de comprobacion end # Definimos combi, sub clase de String class Combi < String # Metodo de pasar una cadena a un array. def to_a(cadena) # Definimos @arrayc = Combinacion.new(15) # Para cada elemento de la cadena cadena.each_byte { |c| # Construyo C @arrayc.push(c.chr) # Lo convierto en char y almaceno en un elemento de un array } return @arrayc end ##################################### # # INICIO # ##################################### # Inicializamos nueva combinacionc cganadora = Combinacion.new(15) # Pedimos combinacion al usuario.15 Signos 0.upto(14) do |x| # Recibimos X como parametro contador print("Partido ", x+1,": ") char = gets char.upcase! # Insertamos en el array cganadora[x] = char end # Fin de pedir combinaciones # Definimos archivo $CFILE = "combi.txt" # Vamos a abrir archivo File.open($CFILE) do |combi_file| # Para cada linea combi_file.each do |line| combi = line combinacionTemp = combi.to_a #Devuelve combinacionTemp y genera un array cganadora.comprobacion(combinacionTemp) end end cganadora.dame_resultados end ---------END -------------------------------------------------- -- Posted via http://www.ruby-forum.com/.