Hafıza Kartı Oyunu Oyna | Ücretsiz Online Memory Match Oyunu

TAKİP ET

Ücretsiz Hafıza Kartı oyununu hemen oyna. Aynı kartları eşleştir, hafızanı geliştir, en kısa sürede tüm kartları aç ve rekorunu kır.

Hafıza Kartı (Memory Match), dikkat, görsel hafıza ve odaklanma becerilerini geliştiren eğlenceli bir zeka oyunudur. Oyundaki amacın, kapalı kartları ikişer ikişer açarak aynı sembollere sahip kartları eşleştirmek ve tüm kartları en kısa sürede tamamlamaktır. Kolay, orta ve zor seviyeler sayesinde hem çocuklar hem de yetişkinler için keyifli bir deneyim sunar. Bilgisayarda fareyle, mobil cihazlarda ise dokunmatik ekran sayesinde rahatlıkla oynanabilir. Hamle sayını azaltarak ve süreni kısaltarak yeni rekorlar kırabilir, dikkatini güçlendirebilir ve hafızanı eğlenceli bir şekilde geliştirebilirsin. Her yeni oyunda kartların yeri değiştiği için her bölüm farklı bir meydan okuma sunar.

 

Hafıza Oyunu

Hafıza Kartı

Aynı sembolleri eşleştir, en az hamleyle tüm kartları aç ve en iyi süreni geliştir.

SÜRE00:00 HAMLE0 EN İYİ--:-- Kolay 4×3Orta 4×4Zor 6×4Yeni OyunDuraklat İki kart seç ve eşlerini bul.  

Tebrikler!

Tüm kartları eşleştirdin.

Yeni Oyun Kartlara dokunarak veya tıklayarak aç. Aynı iki sembolü art arda bulduğunda kartlar açık kalır. .gulum-memory,.gulum-memory *{box-sizing:border-box}.gulum-memory{--p:#7c3aed;--p2:#ec4899;--d:#100c25;--d2:#251943;--m:#d4cee2;width:100%;padding:34px 12px;color:#fff;font-family:Arial,Helvetica,sans-serif}.gulum-memory__box{width:min(100%,680px);margin:auto;padding:25px 22px;text-align:center;background:radial-gradient(circle at 90% 5%,rgba(236,72,153,.2),transparent 30%),linear-gradient(145deg,var(--d),var(--d2));border:1px solid rgba(255,255,255,.12);border-radius:25px;box-shadow:0 24px 60px rgba(20,10,55,.35)}.gulum-memory header{margin-bottom:15px}.gulum-memory__tag{display:inline-flex;padding:6px 14px;margin-bottom:9px;border-radius:999px;background:linear-gradient(135deg,var(--p),var(--p2));font-size:12px;font-weight:800;text-transform:uppercase}.gulum-memory h1{margin:0 0 7px;font-size:clamp(32px,8vw,46px);line-height:1}.gulum-memory p{margin:0;color:var(--m);font-size:14px;line-height:1.55}.gulum-memory__top{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:15px 0 10px}.gulum-memory__top>div{padding:11px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}.gulum-memory__top span{display:block;color:#c9c3d9;font-size:10px;font-weight:800}.gulum-memory__top strong{display:block;margin-top:4px;font-size:22px;color:#fde047}.gulum-memory__actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px;margin-bottom:10px}.gulum-memory button,.gulum-memory select{min-height:43px;border:0;border-radius:10px;font-weight:800;cursor:pointer}.gulum-memory select{padding:0 10px;color:#fff;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.12)}.gulum-memory select option{color:#111}.gulum-memory__actions button,.gulum-memory__overlay button{color:#fff;background:linear-gradient(135deg,var(--p),var(--p2))}.gulum-memory__actions button:last-child{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12)}.gulum-memory__status{display:flex;align-items:center;justify-content:center;min-height:42px;margin-bottom:12px;padding:9px;border-radius:11px;background:rgba(255,255,255,.06);font-size:13px;font-weight:700}.gulum-memory__board-wrap{position:relative}.gulum-memory__board{display:grid;gap:10px;padding:10px;border-radius:18px;background:#45345f;border:1px solid rgba(255,255,255,.1);touch-action:manipulation;user-select:none}.gulum-memory__card{position:relative;aspect-ratio:1/1;padding:0;background:transparent!important;perspective:800px}.gulum-memory__card-inner{position:absolute;inset:0;transition:transform .38s ease;transform-style:preserve-3d}.gulum-memory__card.is-open .gulum-memory__card-inner,.gulum-memory__card.is-done .gulum-memory__card-inner{transform:rotateY(180deg)}.gulum-memory__face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:13px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.gulum-memory__back{background:linear-gradient(145deg,#7c3aed,#ec4899);box-shadow:inset 0 0 0 2px rgba(255,255,255,.14),0 7px 16px rgba(0,0,0,.22)}.gulum-memory__back:before{content:"?";font-size:clamp(25px,6vw,42px);font-weight:900;color:rgba(255,255,255,.92)}.gulum-memory__front{transform:rotateY(180deg);background:linear-gradient(145deg,#fff,#ede9fe);color:#2e1065;font-size:clamp(24px,6vw,42px);box-shadow:inset 0 0 0 2px rgba(124,58,237,.18)}.gulum-memory__card.is-done .gulum-memory__front{background:linear-gradient(145deg,#dcfce7,#86efac);animation:gulumMemoryMatch .35s ease}.gulum-memory__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;border-radius:18px;background:rgba(8,5,20,.84);backdrop-filter:blur(5px)}.gulum-memory__overlay[hidden]{display:none}.gulum-memory__overlay>div{width:min(100%,360px);padding:24px;border-radius:17px;background:#21173c;border:1px solid rgba(255,255,255,.12)}.gulum-memory__overlay h2{margin:0 0 8px;font-size:31px}.gulum-memory__overlay p{margin-bottom:14px}.gulum-memory__overlay button{width:100%}.gulum-memory__help{margin-top:13px;padding:11px;border-radius:10px;background:rgba(255,255,255,.05);color:#c9c3d8;font-size:11px;line-height:1.55}@keyframes gulumMemoryMatch{50%{transform:rotateY(180deg) scale(1.08)}}@media(max-width:600px){.gulum-memory{padding:20px 7px}.gulum-memory__box{padding:19px 9px;border-radius:19px}.gulum-memory__actions{grid-template-columns:1fr 1fr}.gulum-memory__actions select{grid-column:1/-1}.gulum-memory__board{gap:7px;padding:7px}.gulum-memory__face{border-radius:10px}}@media(max-width:360px){.gulum-memory__top{gap:5px}.gulum-memory__top strong{font-size:18px}} (()=>{"use strict";const root=document.querySelector(".gulum-memory");if(!root)return;const board=root.querySelector("#gulumMemoryBoard"),timeEl=root.querySelector("#gulumMemoryTime"),movesEl=root.querySelector("#gulumMemoryMoves"),bestEl=root.querySelector("#gulumMemoryBest"),status=root.querySelector("#gulumMemoryStatus"),levelEl=root.querySelector("#gulumMemoryLevel"),newBtn=root.querySelector("#gulumMemoryNew"),pauseBtn=root.querySelector("#gulumMemoryPause"),overlay=root.querySelector("#gulumMemoryOverlay"),overlayTitle=root.querySelector("#gulumMemoryOverlayTitle"),overlayText=root.querySelector("#gulumMemoryOverlayText"),againBtn=root.querySelector("#gulumMemoryAgain"),SAVE="gulumMemorySave",BEST="gulumMemoryBest";let cards=[],first=-1,second=-1,lock=false,moves=0,seconds=0,timer=0,running=false,paused=false,matched=0;const icons=["★","♥","♦","☀","☺","♫","⚡","❤","☂","✈","❄","☎"],cfg={easy:{pairs:6,cols:4},medium:{pairs:8,cols:4},hard:{pairs:12,cols:6}},fmt=s=>String(Math.floor(s/60)).padStart(2,"0")+":"+String(s%60).padStart(2,"0"),shuffle=a=>{for(let i=a.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[a[i],a[j]]=[a[j],a[i]]}return a}; function startGame(){clearInterval(timer);const set=cfg[levelEl.value],vals=shuffle([...icons.slice(0,set.pairs),...icons.slice(0,set.pairs)]);cards=vals.map((v,i)=>({v,open:false,done:false,id:i}));first=second=-1;lock=false;moves=seconds=matched=0;running=true;paused=false;overlay.hidden=true;pauseBtn.textContent="Duraklat";status.textContent="İki kart seç ve eşlerini bul.";board.style.gridTemplateColumns=`repeat(${set.cols},1fr)`;timer=setInterval(()=>{if(running&&!paused){seconds++;timeEl.textContent=fmt(seconds);save()}},1000);render();save()} function render(){board.innerHTML="";cards.forEach((c,i)=>{const b=document.createElement("button");b.type="button";b.className="gulum-memory__card"+(c.open?" is-open":"")+(c.done?" is-done":"");b.setAttribute("aria-label",c.done?"Eşleşmiş kart":c.open?"Açık kart":"Kapalı kart");b.innerHTML=`${c.v}`;b.addEventListener("click",()=>flip(i));board.appendChild(b)});movesEl.textContent=moves;timeEl.textContent=fmt(seconds);const best=+(localStorage.getItem(BEST+levelEl.value)||0);bestEl.textContent=best?fmt(best):"--:--"} function flip(i){if(!running||paused||lock||cards[i].open||cards[i].done)return;cards[i].open=true;if(first{cards[first].open=cards[second].open=false;first=second=-1;lock=false;render();save()},800)}} function finish(){running=false;clearInterval(timer);const key=BEST+levelEl.value,old=+(localStorage.getItem(key)||0);if(!old||seconds{if(running&&!paused){seconds++;timeEl.textContent=fmt(seconds);save()}},1000);render();return true}catch(e){return false}} newBtn.addEventListener("click",startGame);againBtn.addEventListener("click",startGame);pauseBtn.addEventListener("click",togglePause);levelEl.addEventListener("change",startGame);document.addEventListener("keydown",e=>{if(e.key==="p"||e.key==="Escape"){e.preventDefault();togglePause()}});if(!load())startGame()})();