{"id":20764571,"url":"https://github.com/chamini2/wordsearch","last_synced_at":"2026-02-07T23:02:31.023Z","repository":{"id":7510116,"uuid":"8860292","full_name":"chamini2/wordsearch","owner":"chamini2","description":"Proyecto 2 de Laboratorio de Lenguajes de Programación de sopas de letras en prolog","archived":false,"fork":false,"pushed_at":"2013-08-06T23:04:36.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-25T04:42:34.098Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Prolog","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chamini2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-18T17:49:38.000Z","updated_at":"2014-02-24T00:08:46.000Z","dependencies_parsed_at":"2022-09-05T13:31:48.596Z","dependency_job_id":null,"html_url":"https://github.com/chamini2/wordsearch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chamini2/wordsearch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamini2%2Fwordsearch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamini2%2Fwordsearch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamini2%2Fwordsearch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamini2%2Fwordsearch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chamini2","download_url":"https://codeload.github.com/chamini2/wordsearch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamini2%2Fwordsearch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29211576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T22:58:45.823Z","status":"ssl_error","status_checked_at":"2026-02-07T22:58:45.272Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T10:52:45.791Z","updated_at":"2026-02-07T23:02:31.008Z","avatar_url":"https://github.com/chamini2.png","language":"Prolog","funding_links":[],"categories":[],"sub_categories":[],"readme":"Proyecto II: Prolog\n===================\n\nEl proyecto se encuentra en perfecto funcionamiento, pudiendo generar todas las\nposibles sopas de letras a partir del Tamano, Alfabeto, y listas de la palabras\naceptadas y rechazadas indicadas.\n\nLas sopas de letras las genera mediante el uso de backtracking de forma sistema-\ntica, es decir, generara siempre de forma \"ordenada\" las sopas de letras (toman-\ndo en cuenta las palabras que deben aparecer). Para esto genera va generando to-\ndas las filas posibles y todas las posibles combinaciones de las mismas para ge-\nnerar la Sopa; posteriormente verifica que la Sopa obtenida cumpla las condicio-\nnes de que aparezcan todas las  palabras Aceptadas pero que no aparezcan las Re-\nchazadas.\n\nPara obtener todas las posibles palabras de  la sopa de  letra  (a las que luego\nse verificara si las palabras ac eptadas pertenecen), se van almacenando una por\nuna en una lista. Para obtener cada palabra de cada  direccion (horizontal, ver-\ntical,  diagonal principal  y diagonal secundaria),  se  realizan los siguientes\n\"calculos\":\n\n* Las palabras horizontales son iguales a las filas de la matriz.\n\n* Las palabras verticales se obtienen mediante recursion:\n    + Para obtener una fila:\n        - Se obtiene el primer atomo de la fila y se agrega a la columna.\n        - Se pasa a la siguiente fila y se hace repite el paso anterior.\n        - Al finalizar, el predicado devuelve la columna obtenida y una sopa \"nueva\" sin esta columna.\n    + Para obtenerlas todas:\n        - Se llama al predicado anterior y se agrega la columna resultante en una lista.\n        - Se llama recursivamente pero esta vez con la sopa \"nueva\" devuelta en el predicado anterior.\n        - Se repite hasta que la sopa \"nueva\" esta vacia.\n* Las palabras en diagonal (en ambas direcciones) también se  obtienen mediante recursion:\n    La  mejor forma de explicarlo  es mediante un ejemplo visual para obtener las diagonales NorOeste -\u003e SurEste:\n\n        Supongamos que tenemos la matriz A:\n                         a b c\n                         d e f\n                         g h i\n                         \n        Queremos obtener una lista D con las diagonales, que quedaría así:\n  \t        D=[[g], [d, h], [a, e, i], [b, f], [c]]\n            \n            Siendo Tam el numero de Filas.\n            Asumiendo Tam' = Tam - 1 y n = 0.\n\n                1) Desfasamos fila  por fila (agregando espacios \"vacíos\" que  en\n            el programa se interpretan  con un $), agregando Tam' $'s a la iz-\n            quierda de la primera fila y n $'s a la derecha de la misma, gráfi-\n            camente quedaría así (Recordemos que la matriz está expresada como\n            una lista de listas, por lo que al \"agregar\" los $ lo que se hace es\n            concatenarlos del lado indicado de la lista):\n                        $ $ $ a b c\n                        d e f\n                        g h i\n\n                2) Tam'-- , n++\n                3) pasamos a la siguiente fila (lista), y agregamos Tam' $'s a la\n            izquierda de dicha fila y n $'s a la derecha de la misma, quedaría así:\n                        $ $ a b c\n                        $ d e f $\n                        g h i\n\n                4) Se repite desde el paso 2) hasta que Tam' == 0.\n                        $ $ a b c\n                        $ d e f $\n                        g h i $ $\n\n                5) Aplicamos el predicado para obtener las columnas (palabras ver-\n             ticales) sobre la \"nueva\" sopa, y se obtendría:\n\t\t        D'=[[$, $, g], [$, d, h], [a, e, i], [b, f, $, $], [c, $, $]]\n\n                6) Se eliminan los $'s de cada una de las sublistas.\n\n                7) D = D' =\u003e se obtuvieron todas las diagonales NorOeste-\u003e SurEste\n             de la sopa.\n\n* Para el  caso de  las diagonales NorEste -\u003e SurOeste, se aplica  el mismo algoritmos  pero se inicia agregando al lado izquierdo 0 $'s y del lado  derecho Tam-1 $'s. Luego  se van agregando a las filas de abajo incrementando en 1 el  numero de $'s  de lado izquierdo y decrementando en  1  el  numero de  $'s del lado derecho por cada vuelta.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamini2%2Fwordsearch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchamini2%2Fwordsearch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamini2%2Fwordsearch/lists"}