Poemas y algo mas

poezija i digitalnih fotografija









<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Juego de Eliminación de Dados</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Arial', sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            color: white;
            padding: 20px;
        }

        .container {
            max-width: 800px;
            margin: 0 auto;
        }

        header {
            text-align: center;
            margin-bottom: 30px;
        }

        h1 {
            font-size: 2.2em;
            margin-bottom: 10px;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
        }

        .game-status {
            background: rgba(255,255,255,0.15);
            backdrop-filter: blur(10px);
            border-radius: 15px;
            padding: 20px;
            margin-bottom: 20px;
            text-align: center;
        }

        .round-info {
            font-size: 1.3em;
            margin-bottom: 10px;
            color: #ffd700;
        }

        .players-area {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
            margin-bottom: 30px;
        }

        .player-card {
            background: rgba(255,255,255,0.15);
            border-radius: 15px;
            padding: 20px;
            backdrop-filter: blur(10px);
            border: 2px solid transparent;
            transition: all 0.3s ease;
        }

        .player-card.active {
            border-color: #ffd700;
            box-shadow: 0 0 20px rgba(255,215,0,0.3);
        }

        .player-card.ai {
            opacity: 0.8;
        }

        .player-name {
            font-size: 1.4em;
            font-weight: bold;
            margin-bottom: 15px;
            text-align: center;
        }

        .dice-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 15px;
            margin: 20px 0;
        }

        .dice {
            aspect-ratio: 1;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1em;
            font-weight: bold;
            cursor: pointer;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
            min-height: 80px;
        }

        .dice:before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(45deg, transparent 30%, rgba(255,255,255,0.2) 50%, transparent 70%);
            transform: translateX(-100%);
            transition: transform 0.3s ease;
        }

        .dice:hover:before {
            transform: translateX(100%);
        }

        .dice.d6 {
            background: linear-gradient(135deg, #ff6b6b, #ee5a52);
        }

        .dice.d10 {
            background: linear-gradient(135deg, #4ecdc4, #44b3aa);
        }

        .dice.d16 {
            background: linear-gradient(135deg, #45b7d1, #3a9bc1);
        }

        .dice.d20 {
            background: linear-gradient(135deg, #96ceb4, #7fb89a);
        }

        .dice.available:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(0,0,0,0.3);
        }

        .dice.selected {
            transform: scale(1.05);
            box-shadow: 0 0 15px rgba(255,215,0,0.6);
            border: 3px solid #ffd700;
        }

        .dice.eliminated {
            opacity: 0.2;
            cursor: not-allowed;
            filter: grayscale(100%);
        }

        .dice.last-used {
            opacity: 0.5;
            cursor: not-allowed;
            border: 2px dashed rgba(255,255,255,0.5);
        }

        .dice.ai-selection {
            background: rgba(255,255,255,0.3) !important;
            border: 2px solid #ccc;
        }

        .battle-area {
            background: rgba(255,255,255,0.2);
            border-radius: 15px;
            padding: 25px;
            text-align: center;
            margin: 20px 0;
            min-height: 120px;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        .vs-display {
            display: flex;
            justify-content: space-around;
            align-items: center;
            margin: 20px 0;
            flex-wrap: wrap;
        }

        .player-battle {
            background: rgba(255,255,255,0.3);
            border-radius: 12px;
            padding: 20px;
            min-width: 150px;
            margin: 10px;
        }

        .player-battle.winner {
            background: rgba(255,215,0,0.4);
            border: 3px solid #ffd700;
            transform: scale(1.05);
        }

        .battle-dice {
            font-size: 2em;
            margin: 10px 0;
        }

        .battle-result {
            font-size: 1.3em;
            font-weight: bold;
        }

        button {
            background: linear-gradient(135deg, #667eea, #764ba2);
            color: white;
            border: none;
            padding: 15px 30px;
            border-radius: 25px;
            font-size: 1.1em;
            cursor: pointer;
            transition: all 0.3s ease;
            margin: 10px;
            min-width: 150px;
        }

        button:hover:not(:disabled) {
            transform: translateY(-2px);
            box-shadow: 0 8px 20px rgba(0,0,0,0.3);
        }

        button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }

        .controls {
            text-align: center;
            margin: 30px 0;
        }

        .game-over {
            background: linear-gradient(45deg, #ffd700, #ffed4e);
            color: #333;
            text-align: center;
            padding: 40px;
            border-radius: 20px;
            margin: 30px 0;
            animation: celebration 3s ease-in-out;
        }

        @keyframes celebration {
            0%, 100% { transform: scale(1); }
            25% { transform: scale(1.02) rotate(-1deg); }
            75% { transform: scale(1.02) rotate(1deg); }
        }

        .game-log {
            background: rgba(0,0,0,0.4);
            border-radius: 12px;
            padding: 20px;
            max-height: 150px;
            overflow-y: auto;
            margin-top: 20px;
            font-family: monospace;
        }

        .log-entry {
            padding: 5px 0;
            border-bottom: 1px solid rgba(255,255,255,0.1);
        }

        .status-indicator {
            display: inline-block;
            width: 12px;
            height: 12px;
            border-radius: 50%;
            margin-right: 8px;
        }

        .status-ready { background: #4caf50; }
        .status-thinking { background: #ff9800; animation: pulse 1s infinite; }
        .status-waiting { background: #2196f3; }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }

        @media (max-width: 600px) {
            .players-area {
                grid-template-columns: 1fr;
            }
           
            .dice-grid {
                grid-template-columns: 1fr 1fr;
                gap: 10px;
            }
           
            .dice {
                min-height: 60px;
                font-size: 0.9em;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>🎲 Juego de Eliminación de Dados 🎲</h1>
            <p>¡Desafía a la computadora!</p>
        </header>

        <div class="game-status" id="gameStatus">
            <div class="round-info" id="roundInfo">Haz clic en "Nuevo Juego" para empezar</div>
            <div id="statusMessage">¡Prepárate para el desafío!</div>
        </div>

        <div class="players-area">
            <!-- Player 1 (Human) -->
            <div class="player-card" id="player1Card">
                <div class="player-name">
                    <span class="status-indicator status-waiting" id="player1Status"></span>
                    🧑 Tú
                </div>
                <div class="dice-grid" id="player1Dice">
                    <div class="dice d6 available" onclick="selectDice('d6')" id="p1-d6">D6</div>
                    <div class="dice d10 available" onclick="selectDice('d10')" id="p1-d10">D10</div>
                    <div class="dice d16 available" onclick="selectDice('d16')" id="p1-d16">D16</div>
                    <div class="dice d20 available" onclick="selectDice('d20')" id="p1-d20">D20</div>
                </div>
            </div>

            <!-- Player 2 (AI) -->
            <div class="player-card ai" id="player2Card">
                <div class="player-name">
                    <span class="status-indicator status-waiting" id="player2Status"></span>
                    🤖 Computadora
                </div>
                <div class="dice-grid" id="player2Dice">
                    <div class="dice d6 available" id="p2-d6">D6</div>
                    <div class="dice d10 available" id="p2-d10">D10</div>
                    <div class="dice d16 available" id="p2-d16">D16</div>
                    <div class="dice d20 available" id="p2-d20">D20</div>
                </div>
            </div>
        </div>

        <div class="battle-area" id="battleArea">
            <div id="selectionPhase">
                <h3>🎯 Fase de Selección</h3>
                <p>Elige tu dado para esta ronda</p>
            </div>
            <div id="battlePhase" style="display: none;">
                <h3>⚔️ ¡Batalla!</h3>
                <div class="vs-display" id="battleDisplay"></div>
            </div>
        </div>

        <div class="controls">
            <button onclick="newGame()">🎮 Nuevo Juego</button>
            <button id="rollButton" onclick="rollDice()" disabled>🎲 ¡Batalla!</button>
            <button id="nextRoundButton" onclick="nextRound()" style="display: none;">➡️ Siguiente Ronda</button>
        </div>

        <div class="game-log" id="gameLog"></div>
    </div>

    <script>
        class DiceEliminationGame {
            constructor() {
                this.reset();
            }

            reset() {
                this.gameActive = false;
                this.currentRound = 1;
                this.player1 = {
                    dice: { d6: true, d10: true, d16: true, d20: true },
                    lastUsed: null,
                    selection: null
                };
                this.player2 = {
                    dice: { d6: true, d10: true, d16: true, d20: true },
                    lastUsed: null,
                    selection: null
                };
                this.gameLog = [];
                this.updateDisplay();
            }

            newGame() {
                this.reset();
                this.gameActive = true;
                this.addLog("🎮 ¡Nueva partida iniciada! Ronda 1");
                this.addLog("📋 Recuerda: no puedes usar el mismo dado dos rondas seguidas");
                this.updateDisplay();
                this.updateStatus("Tu turno - Elige tu dado", "thinking");
            }

            getAvailableDice(player) {
                return Object.keys(player.dice).filter(dice => 
                    player.dice[dice] && dice !== player.lastUsed
                );
            }

            selectDice(diceType) {
                if (!this.gameActive || this.player1.selection) return;
                
                if (!this.player1.dice[diceType] || diceType === this.player1.lastUsed) {
                    return;
                }

                this.player1.selection = diceType;
                this.makeAISelection();
                this.updateDisplay();
                this.updateStatus("Ambos listos - ¡Presiona Batalla!", "ready");
            }

            makeAISelection() {
                const available = this.getAvailableDice(this.player2);
                if (available.length === 0) return;

                const weights = { d6: 1, d10: 2, d16: 3, d20: 4 };
                const weightedChoices = available.flatMap(dice => 
                    Array(weights[dice] || 1).fill(dice)
                );
                
                this.player2.selection = weightedChoices[
                    Math.floor(Math.random() * weightedChoices.length)
                ];
            }

            rollDice() {
                if (!this.player1.selection || !this.player2.selection) return;

                const p1Roll = this.rollDie(this.player1.selection);
                const p2Roll = this.rollDie(this.player2.selection);

                this.showBattle(p1Roll, p2Roll);
                
                setTimeout(() => {
                    this.processResults(p1Roll, p2Roll);
                }, 2000);
            }

            rollDie(diceType) {
                const sides = parseInt(diceType.substring(1));
                return Math.floor(Math.random() * sides) + 1;
            }

            showBattle(p1Roll, p2Roll) {
                document.getElementById('selectionPhase').style.display = 'none';
                document.getElementById('battlePhase').style.display = 'block';

                const winner = p1Roll > p2Roll ? 'player1' : p2Roll > p1Roll ? 'player2' : 'tie';
                
                document.getElementById('battleDisplay').innerHTML = `
                    <div class="player-battle ${winner === 'player1' ? 'winner' : ''}">
                        <div>🧑 Tú</div>
                        <div class="battle-dice">${this.player1.selection.toUpperCase()}</div>
                        <div class="battle-result">${p1Roll}</div>
                    </div>
                    <div style="font-size: 2em; margin: 0 20px;">⚔️</div>
                    <div class="player-battle ${winner === 'player2' ? 'winner' : ''}">
                        <div>🤖 PC</div>
                        <div class="battle-dice">${this.player2.selection.toUpperCase()}</div>
                        <div class="battle-result">${p2Roll}</div>
                    </div>
                `;

                document.getElementById('rollButton').disabled = true;
            }

            processResults(p1Roll, p2Roll) {
                let logMessage = `🎲 R${this.currentRound}: Tú (${this.player1.selection.toUpperCase()}:${p1Roll}) vs PC (${this.player2.selection.toUpperCase()}:${p2Roll}) - `;

                if (p1Roll > p2Roll) {
                    this.player2.dice[this.player2.selection] = false;
                    logMessage += "🎉 ¡Ganaste! PC pierde su " + this.player2.selection.toUpperCase();
                } else if (p2Roll > p1Roll) {
                    this.player1.dice[this.player1.selection] = false;
                    logMessage += "💥 PC gana. Pierdes tu " + this.player1.selection.toUpperCase();
                } else {
                    this.player1.dice[this.player1.selection] = false;
                    this.player2.dice[this.player2.selection] = false;
                    logMessage += "🤝 ¡Empate! Ambos pierden sus dados";
                }

                this.addLog(logMessage);

                this.player1.lastUsed = this.player1.selection;
                this.player2.lastUsed = this.player2.selection;

                this.player1.selection = null;
                this.player2.selection = null;

                const p1Available = this.getAvailableDice(this.player1);
                const p2Available = this.getAvailableDice(this.player2);

                if (p1Available.length === 0 && p2Available.length === 0) {
                    this.endGame('tie');
                } else if (p1Available.length === 0) {
                    this.endGame('computer');
                } else if (p2Available.length === 0) {
                    this.endGame('player');
                } else {
                    document.getElementById('nextRoundButton').style.display = 'inline-block';
                }

                this.updateDisplay();
            }

            nextRound() {
                this.currentRound++;
                document.getElementById('selectionPhase').style.display = 'block';
                document.getElementById('battlePhase').style.display = 'none';
                document.getElementById('nextRoundButton').style.display = 'none';
                document.getElementById('rollButton').disabled = true;
                
                this.addLog(`🔄 Ronda ${this.currentRound} - ¡Tu turno!`);
                this.updateStatus(`Ronda ${this.currentRound} - Elige tu dado`, "thinking");
                this.updateDisplay();
            }

            endGame(winner) {
                this.gameActive = false;
                const battleArea = document.getElementById('battleArea');
                
                let message, bgColor;
                if (winner === 'player') {
                    message = "🎉 ¡FELICITACIONES! 🎉<br>¡Derrotaste a la computadora!";
                    bgColor = "linear-gradient(45deg, #4caf50, #66bb6a)";
                    this.addLog("🏆 ¡VICTORIA! Ganaste el juego");
                } else if (winner === 'computer') {
                    message = "🤖 La Computadora Gana 🏆<br>¡Bien jugado! Mejor suerte la próxima";
                    bgColor = "linear-gradient(45deg, #2196f3, #42a5f5)";
                    this.addLog("💻 La computadora gana el juego");
                } else {
                    message = "🤝 ¡EMPATE! 🤝<br>Ambos quedaron sin dados";
                    bgColor = "linear-gradient(45deg, #ff9800, #ffb74d)";
                    this.addLog("🤝 Empate - Excelente partida");
                }

                battleArea.innerHTML = `
                    <div class="game-over" style="background: ${bgColor};">
                        <h2>${message}</h2>
                        <p style="margin-top: 15px;">¿Otra partida?</p>
                    </div>
                `;

                document.getElementById('rollButton').style.display = 'none';
                this.updateStatus("Juego terminado", "waiting");
            }

            updateDisplay() {
                ['d6', 'd10', 'd16', 'd20'].forEach(dice => {
                    const element = document.getElementById(`p1-${dice}`);
                    element.className = `dice ${dice}`;
                    
                    if (!this.player1.dice[dice]) {
                        element.classList.add('eliminated');
                    } else if (dice === this.player1.lastUsed) {
                        element.classList.add('last-used');
                    } else {
                        element.classList.add('available');
                    }

                    if (this.player1.selection === dice) {
                        element.classList.add('selected');
                    }
                });

                ['d6', 'd10', 'd16', 'd20'].forEach(dice => {
                    const element = document.getElementById(`p2-${dice}`);
                    element.className = `dice ${dice}`;
                    
                    if (!this.player2.dice[dice]) {
                        element.classList.add('eliminated');
                    } else if (dice === this.player2.lastUsed) {
                        element.classList.add('last-used');
                    } else {
                        element.classList.add('available');
                    }

                    if (this.player2.selection === dice) {
                        element.classList.add('ai-selection');
                    }
                });

                const rollButton = document.getElementById('rollButton');
                rollButton.disabled = !this.gameActive || !this.player1.selection || !this.player2.selection;

                document.getElementById('player1Card').classList.toggle('active', 
                    this.gameActive && !this.player1.selection);
                document.getElementById('player2Card').classList.toggle('active', 
                    this.gameActive && this.player2.selection);

                this.updateRoundInfo();
            }

            updateRoundInfo() {
                const roundInfo = document.getElementById('roundInfo');
                if (!this.gameActive) {
                    roundInfo.textContent = "Haz clic en 'Nuevo Juego' para empezar";
                } else {
                    roundInfo.textContent = `🎯 Ronda ${this.currentRound}`;
                }
            }

            updateStatus(message, status) {
                document.getElementById('statusMessage').textContent = message;
                const statusEl = document.getElementById('player1Status');
                statusEl.className = `status-indicator status-${status}`;
            }

            addLog(message) {
                this.gameLog.push(`[${new Date().toLocaleTimeString()}] ${message}`);
                const logElement = document.getElementById('gameLog');
                logElement.innerHTML = this.gameLog.map(entry => 
                    `<div class="log-entry">${entry}</div>`
                ).join('');
                logElement.scrollTop = logElement.scrollHeight;
            }
        }

        const game = new DiceEliminationGame();

        function newGame() {
            game.newGame();
        }

        function selectDice(diceType) {
            game.selectDice(diceType);
        }

        function rollDice() {
            game.rollDice();
        }

        function nextRound() {
            game.nextRound();
        }

        game.updateDisplay();
    </script>
</body>
</html> 

 Distancia

Soy un poco anticuado

y aprecio lo bueno 

me encanta la comodidad de la chimenea

manta suave, té de frutas,

Llévate en algún lugar en la distancia

Te llevare a través del charco

y conocer el amanecer, el atardecer

¡Un libro y el río es genial para leer!

y mirar al sol es genial

Soy un poco anticuado

a veces me quedo en silencio entre la multitud ...

pero nadie lo sabe

¡silenciosamente puedes escuchar lo que hay en mi alma!

Carlos Ma


En mi poema mas triste
no cabe la tristeza
en mis momentos de dolor
no hay sufrimiento
porque en los caminos recorridos
no me detengo a lamentarme
pues antes de enfermarme
 estuve sano
antes los que hoy no estan, estubieron
y disfrute con ellos
sin saber que un dia partirianunos
 juraron amarme hasta la muerte
otros murieron sin tener tiempo de amarme
pero gracias a eso he aprendido
que te pueden matar estando vivo
y que puedes vivir estando muerto para algunos.
soy tan feliz,
 de que en mi poema mas triste
no cabe la tristeza 
en mis momentos de dolor
no hay sufrimiento
pues encuentro absurdo
el vivir triste
 el poco o mucho tiempoque viva en esta tierra
y mientras otros se dedican a sufrir
a vivir en un pasado que dedican a convertir, en su presente
yo seguire gozando plenament
econ mi poema mas triste.
 Carlos Matias 1/12/12

 


 PALABRAS
Las palabras no se arrugan,
vivir el hoy, el presente,no el futuro
 y no el pasad osin olvidar
 escribirlíneas de inspiración
las cosas claras
lo que es ahora importante
con una sonrisa saludar otoño
contando las estrellas
 en la noche
despierta pensando
 con alguien que te ama
despierta pensando con alguien que cree en ti,
entrelazado con el destino de viento
el amor no es simplemente un impulso,
una emoción transitoria
amor de origen celestial
es un principio
que mora en el corazón
las palabras no se arrugan,
vivir el hoy,
el presente,no el futuro y no el pasado
.Carlos Matias
IDENTIDAD
Caer sobre mis palmas
con amapolas en las manos
mayo como el viento
y la tranquilidadc
omo un bolígrafo y un papel
trazos nuevos a una identidad
no faltan ángulos
a las experiencias
que nacen de la observación
mi poema tiende la mano
mes a mes un ríoitinerario de experiencias
confieso mi adicción
para explicarme uso el silencio
caer sobre mis palmas con amapolas
en mayo como un bolígrafo y un pape
lconspiran para que yo no sea yo
. Carlos Matias 



Hoy quiero sumar a mi vida
 quiero lograrlo restando
 quitando ansiedades restando tristezas 
restando quedrantos
 hoy quiero añadir restando
 quito el mal pensamiento 
la palabra aspera
 quito la mirada altiva
 un rostro airado
 hoy quiero aumentar disminuyendo
 disminuyo mis quejas
 disminuyo mis temores
 disminuyo mis olvidos
 he de aumentar mis sonrisas 
he de aumentar mis elogios mis detalles
 hoy quiero aumentar viviendo. 
Carlos Matias 




EL YO
El yo es un edificio de renta antigua                                                                                             
sentimiento crónico de irrealidad
un ego proteico, capaz de acometer
nunca cesa de anunciarse a sí mismo
como si velase claves y optara por desaprender
Las palabras se borran en la incertidumbre
fisuras para alojar vacíos
Así que sufre un terrible efecto erosivo
 cuando descubre que la raíz es solo un hilo suelto
 el mínimo temblor de una telaraña
el yo es un edificio de renta antigua
sentimiento crónico de irrealidad
no conoce esa luz del cielo que oculta la niebla,
 esas gotas frescas del evangelio
que alejan la sed.
Carlos Matias
 


Get to know me


Cuando
Cuando incluimos a Dios en el corazón,
la vida se expande
y es justo lo El que desea
minuto, hora
sólo un poco, 
otro pequeño paso 
¡te quiero! Oh, Dios mío!
tales profundidades
quizás poemas
la ternura en el cielo
el amor no es difícil
no, todos nosotros
desea encontralo
rayo del alma en la distancia
desde su santuario viene la primera luz
mientras oraba a Ti, nuestro Padre!
Cuando incluimos a Dios en el corazón,
la vida se expande.
Carlos Matias



Lineas
En silencio nacen primero
las líneas del poema
que en secreto me llevaron,
al mundo, donde viven sin tristeza
la hierba, el viento, el álamo
Qué he hecho yo ?
el silencio me dijo en respuesta:
solo extraer la miel de las abejas silvestres
desde el amanecer a la oscuridad.
La hierba y las flores tambien saben
las líneas del poema
y el camino de los arroyos
que en secreto me lleva,
al mundo, donde viven sin tristeza
la hierba, el viento, el álamo.
Las nubes se juntaron,
 y la noche se convirtió en día.
desde la ventana se podía ver
La hierba, el viento, el álamo
las líneas del poema.
Carlos Matias


My Values

My business is more than just a job. Each time I take on a new project, I make sure it aligns with my core set of values so I know I can deliver great results.

About Me

I’m an expert in my field but I wouldn’t be where I am without those who've helped me along the way. That’s why I love connecting with like-minded people and using my passion and skills to make a difference.

enpoesiacarlosmatias

I'm committed to helping more people like you to get the results they want, every day. To make it easy, there are lots of ways you can work with me! The range of services I offer can be tweaked to suit your goals, your business, or your project. And it's worth saying that I specialize in working outside-the-box, so if you're looking for new ways to bring your latest project to life then I'll develop a solution that's truly unique.