OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
Siberpunk temalı Pis Yedili: botlara karşı ya da arkadaşlarınla aynı cihazda oyna. Ücretsiz, üyeliksiz.
Translation pending
GamesTypeScript · CSSGitHub @dizzycrayOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Siberpunk temalı Pis Yedili kart oyunu (React + TypeScript + Vite)
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗React, TypeScript ve Vite ile yazılmış, siberpunk temalı, tamamen oynanabilir Pis Yedili kart oyunu. Arayüz tamamen Türkçedir; masaüstü ve mobilde çalışır.
Oyna: https://dizzycray.github.io/pis-yedili-neon/
(Aynı oyun https://pis-yedili-neon.vercel.app adresinde de yayında; ancak bazı internet
sağlayıcıları ve cihazlar *.vercel.app adreslerine erişemediği için asıl adres GitHub Pages.)
Gereksinim: Node.js 20 veya üstü (npm ile birlikte).
npm install
npm run dev
Tarayıcıda http://localhost:5173 adresini aç.
| Komut | Açıklama |
|---|---|
npm run dev | Geliştirme sunucusu |
npm test | Vitest testlerini çalıştırır |
npm run build | Tür denetimi (tsc -b) + üretim derlemesi (dist/) |
npm run preview | Derlenmiş sürümü yerelde sunar |
.github/workflows/deploy.yml, main dalına her push'ta testleri çalıştırır, derler ve GitHub Pages'e yayınlar.
pis-yedili).git init
git add .
git commit -m "Pis Yedili"
git branch -M main
git remote add origin https://github.com/<kullanıcı>/<repo>.git
git push -u origin main
https://<kullanıcı>.github.io/<repo>/Vite base yolu: vite.config.ts, base değerini VITE_BASE_PATH ortam değişkeninden alır.
İş akışı bunu otomatik olarak /<repo-adı>/ yapar; depo adını değiştirsen bile ayar gerekmez.
Yerel npm run build varsayılan olarak /pis-yedili/ kullanır; kökte sunmak için:
VITE_BASE_PATH=/ npm run build
Depo <kullanıcı>.github.io adlı bir kullanıcı sitesiyse iş akışındaki VITE_BASE_PATH değerini / yap.
resolveDeckCut() — src/game/deckCut.ts)Her turun başında deste karılır ve kapalı tutulur. Kesen oyuncu turdan tura döner (1. tur 1. oyuncu, 2. tur 2. oyuncu…).
Özel kural metni bazı noktaları açık bırakıyor. Kural sessizce değiştirilmedi; şu yorumlar seçildi:
| Belirsizlik | Seçilen yorum |
|---|---|
| "Elde kalan yarı" hangisi? | Kesmede kaldırılan üst yarı (deste dizisinde index 0..c-1). |
| "İlgili dizi" ne kadar uzun? | Alt karttan yukarı en fazla 7 kart (alınabilecek en büyük blok). |
| Hak koşulu | Bu 7 kartlık dizide en az bir J, A veya 7 olması. Yalnızca alt kartın özel olması şart değil. |
| Hangi kartlar alınır? | Alt karttan başlayıp yukarı giden ardışık k kart (4 ≤ k ≤ 7). Elde k'dan az kart varsa o sayı sunulmaz. |
| Diziyi kim görür? | Yalnızca kesen oyuncu (yerel modda "cihazı devret" ekranıyla korunur). AI kesimini diğerleri görmez. |
| Deste nasıl birleşir? | Normal kesme gibi: yeniDeste = alt yarı + elde kalan üst yarı. |
| 2–3 oyunculu oyunda rotasyon | 4 tur olduğundan kesme hakkı sırayla tekrar eder (2 kişide herkes 2 kez kesiyor). |
| Turu kim başlatır? | Kesen oyuncunun bir sonrakisi. |
Diğer kural boşlukları için yapılan seçimler:
Tüm süreler src/config/timing.ts içindeki TIMING nesnesinden değiştirilir:
| Ayar | Varsayılan | Anlamı |
|---|---|---|
botThinkMinMs / botThinkMaxMs | 2000 / 4000 | Bot hamlesinden önceki rastgele bekleme |
cardMoveMs | 420 | Kart oynama/çekme hareketi |
panelNoticeMs | 2200 | Oyuncu paneli bildirimi süresi |
roundEndDelayMs | 2000 | Tur sonunda sonuç ekranından önceki bekleme |
turnMs | 20000 | Hamle süresi |
oneCardWindowMs | 5000 | "TEK KART" deme süresi |
botOneCardDelayMs | 700 | Botun tek kart bildirimi gecikmesi |
Bot zamanlayıcısı her durum sürümü için tek bir hamle planlar; zamanlayıcı tetiklendiğinde durum değişmişse hamle yapılmaz, böylece aynı bot iki kez oynayamaz.
src/
game/ # Saf TypeScript, React'ten bağımsız
types.ts # Veri tipleri
deck.ts # Deste oluşturma, karıştırma, güvenli kart çekme
rules.ts # Hamle yasallığı, sıra, kesen/başlayan rotasyonu
scoring.ts # Kart/el değeri, tur puanları, kazanan
deckCut.ts # previewDeckCut() ve resolveDeckCut()
engine.ts # Durum makinesi: applyAction(state, action)
ai.ts # Yapay zekâ (yalnızca kendi eli + açık bilgi)
config/timing.ts # Merkezi süre ayarları
ui/seating.ts # Koltuk yerleşimi (alt/sol/üst/sağ) ve alt koltukta kimin eli görünür
hooks/useGame.ts # React durumu, bot zamanlayıcısı, 20 sn sayaç, tek kart süresi, duraklatma
hooks/usePanelNotices.ts # Motor olaylarından oyuncu paneli bildirimleri
components/ # Arayüz bileşenleri
styles.css # Siberpunk tema, animasyonlar, mobil düzen
tests/ # Vitest testleri
Motor değiştirilemez (immutable) durum döndürür; yasadışı her eylem IllegalActionError fırlatır.
Yapay zekâ buildAiView() ile yalnızca kendi elini, üst kartı, bekleyen cezayı ve rakiplerin kart sayılarını görür.
npm test şu alanları kapsar: Vale ile sembol seçimi, tek kart bildirimi ve +2 cezası, panel bildirim hedefleri,
koltuk düzeni, bot bekleme aralığı, deste bütünlüğü, geçerli hamleler, kart çekme, 7 cezası birikimi, As atlatma,
Vale bitişi, puanlama, deste kesme (yeniden kurma dahil), AI yasallığı (40 tam oyun simülasyonu, her adımda 52 kart denetimi),
tur tamamlama ve kilitlenme, biten deste.