BlackFullMoon 1
BlackFullMoon
Mt2Hizmet 1
Mt2Hizmet
mavzermete 1
mavzermete
Vahsi Uzman 1
Vahsi Uzman
kralhakan2009 1
kralhakan2009
Hikaye Ekle

Metin2 Maç Skor Tahmin Sistemi

  • Konuyu başlatan Konuyu başlatan lTJA
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 8
  • Görüntüleme Görüntüleme 500
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

Python (Metin2 Sunucusu ile Etkileşim)

Python:
import socket

# Oyun sunucusuna bağlanmak için socket kullanma
class Metin2BahisSistemi:
    def __init__(self, server_ip, server_port):
        self.server_ip = server_ip
        self.server_port = server_port
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        
    def connect_to_server(self):
        try:
            self.sock.connect((self.server_ip, self.server_port))
            print("Sunucuya başarıyla bağlanıldı.")
        except Exception as e:
            print(f"Bağlantı hatası: {e}")
    
    def send_bet(self, player_id, bet_amount, bet_prediction):
        # Oyuncunun bahis miktarını ve tahminini sunucuya gönder
        message = f"BET {player_id} {bet_amount} {bet_prediction}"
        self.sock.sendall(message.encode('utf-8'))
        
    def receive_result(self):
        # Sunucudan sonuçları al
        data = self.sock.recv(1024)
        print(f"Sunucudan gelen veri: {data.decode('utf-8')}")
    
    def close_connection(self):
        self.sock.close()

# Kullanım
metin2_bahis = Metin2BahisSistemi("127.0.0.1", 5000)
metin2_bahis.connect_to_server()
metin2_bahis.send_bet(player_id=1, bet_amount=100, bet_prediction="2-1")
metin2_bahis.receive_result()
metin2_bahis.close_connection()


C++ (Metin2 Sunucusunda Bahis Sistemi)

Python:
import socket

# Oyun sunucusuna bağlanmak için socket kullanma
class Metin2BahisSistemi:
    def __init__(self, server_ip, server_port):
        self.server_ip = server_ip
        self.server_port = server_port
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        
    def connect_to_server(self):
        try:
            self.sock.connect((self.server_ip, self.server_port))
            print("Sunucuya başarıyla bağlanıldı.")
        except Exception as e:
            print(f"Bağlantı hatası: {e}")
    
    def send_bet(self, player_id, bet_amount, bet_prediction):
        # Oyuncunun bahis miktarını ve tahminini sunucuya gönder
        message = f"BET {player_id} {bet_amount} {bet_prediction}"
        self.sock.sendall(message.encode('utf-8'))
        
    def receive_result(self):
        # Sunucudan sonuçları al
        data = self.sock.recv(1024)
        print(f"Sunucudan gelen veri: {data.decode('utf-8')}")
    
    def close_connection(self):
        self.sock.close()

# Kullanım
metin2_bahis = Metin2BahisSistemi("127.0.0.1", 5000)
metin2_bahis.connect_to_server()
metin2_bahis.send_bet(player_id=1, bet_amount=100, bet_prediction="2-1")
metin2_bahis.receive_result()
metin2_bahis.close_connection()

Bu C++ kodu oyuncunun bahis yapmasını bir maçın sonuçlarını simüle etmesini ve oyuncunun kazanıp kaybettiğini kontrol etmesini sağlar.


3. C# (Metin2 Sunucusu ile Etkileşim)






Veritabanı Yapısı (MySQL)

SQL:
CREATE DATABASE metin2_bahis;
USE metin2_bahis;

CREATE TABLE oyuncular (
    id INT PRIMARY KEY AUTO_INCREMENT,
    isim VARCHAR(50) NOT NULL,
    yang INT NOT NULL
);

CREATE TABLE bahisler (
    id INT PRIMARY KEY AUTO_INCREMENT,
    oyuncu_id INT,
    bahis_miktari INT,
    tahmin VARCHAR(10),
    sonuclar VARCHAR(10),
    kazanc INT,
    FOREIGN KEY (oyuncu_id) REFERENCES oyuncular(id)
);

2. Python ile Veritabanı Bağlantısı ve Yang Yönetimi


Python'da MySQL veritabanına bağlanmak için mysql-connector modülünü kullanabiliriz. Bu modül, veritabanı işlemleri yapmamızı sağlar. Aşağıdaki Python kodu, bir oyuncunun bahis yapmasını, sonucu almasını ve veritabanında yang miktarını güncellemesini sağlar.


Python - Veritabanı Bağlantısı ve Yang Yönetimi

Öncelikle mysql-connector modülünü yüklememiz gerekebilir:


Bash:
pip install mysql-connector

Python Kod

Python:
import mysql.connector
import random

# Veritabanı bağlantısını kur
def connect_to_db():
    return mysql.connector.connect(
        host="localhost",
        user="root",          # MySQL kullanıcı adı
        password="your_password", # MySQL şifresi
        database="metin2_bahis"   # Kullanacağımız veritabanı
    )

# Oyuncu bilgilerini almak
def get_player_info(player_id):
    db = connect_to_db()
    cursor = db.cursor(dictionary=True)
    cursor.execute("SELECT * FROM oyuncular WHERE id = %s", (player_id,))
    player = cursor.fetchone()
    db.close()
    return player

# Yang miktarını güncellemek
def update_player_yang(player_id, new_yang):
    db = connect_to_db()
    cursor = db.cursor()
    cursor.execute("UPDATE oyuncular SET yang = %s WHERE id = %s", (new_yang, player_id))
    db.commit()
    db.close()

# Bahis işlemi
def place_bet(player_id, bet_amount, prediction):
    player = get_player_info(player_id)
   
    if player["yang"] < bet_amount:
        print("Yetersiz Yang!")
        return False  # Yetersiz yang durumu

    # Bahis miktarını veritabanına kaydet
    db = connect_to_db()
    cursor = db.cursor()
    cursor.execute("INSERT INTO bahisler (oyuncu_id, bahis_miktari, tahmin) VALUES (%s, %s, %s)",
                   (player_id, bet_amount, prediction))
    db.commit()

    # Yang miktarını düşür
    new_yang = player["yang"] - bet_amount
    update_player_yang(player_id, new_yang)
   
    db.close()
    return True

# Maç simülasyonu ve sonucu kontrol etme
def simulate_match():
    home_score = random.randint(0, 3)
    guest_score = random.randint(0, 3)
    return f"{home_score}-{guest_score}"

# Kazanç ve kayıp hesaplama
def handle_bet_result(player_id, prediction, bet_amount):
    match_result = simulate_match()
    print(f"Maç Sonucu: {match_result}")

    # Veritabanındaki son bahis
    db = connect_to_db()
    cursor = db.cursor(dictionary=True)
    cursor.execute("SELECT * FROM bahisler WHERE oyuncu_id = %s ORDER BY id DESC LIMIT 1", (player_id,))
    last_bet = cursor.fetchone()

    # Sonuçları güncelle
    if prediction == match_result:
        kazanilan_yang = bet_amount * 2  # Kazanma oranı 2x
        new_yang = get_player_info(player_id)["yang"] + kazanilan_yang
        update_player_yang(player_id, new_yang)
        cursor.execute("UPDATE bahisler SET sonuclar = %s, kazanc = %s WHERE id = %s",
                       (match_result, kazanilan_yang, last_bet["id"]))
        print(f"Tahmin doğru! Kazandığınız Yang: {kazanilan_yang}")
    else:
        cursor.execute("UPDATE bahisler SET sonuclar = %s, kazanc = %s WHERE id = %s",
                       (match_result, 0, last_bet["id"]))
        print("Tahmin yanlış. Bahis kaybedildi.")

    db.commit()
    db.close()

# Kullanıcıdan giriş al
def main():
    player_id = 1  # Örnek oyuncu id
    bet_amount = int(input("Bahis miktarını girin: "))
    prediction = input("Tahmin yapın (örneğin: 2-1): ")

    if place_bet(player_id, bet_amount, prediction):
        handle_bet_result(player_id, prediction, bet_amount)

if __name__ == "__main__":
    main()

Python Kodunun Açıklamaları:


  1. Veritabanı Bağlantısı (connect_to_db): Bu fonksiyon, MySQL veritabanına bağlanır ve işlem yapmamıza olanak tanır.
  2. Oyuncu Bilgisi ve Yang Yönetimi: get_player_info fonksiyonu, oyuncunun bilgilerini veritabanından alır. Bahis yapıldığında, place_bet fonksiyonu bahis miktarını kontrol eder ve yang miktarını günceller.
  3. Bahis Sonucu: simulate_match, maç sonuçlarını simüle eder ve handle_bet_result, doğru tahmin yapıldığında yang miktarını günceller.
  4. Veritabanı Güncellemeleri: UPDATE komutları, bahislerin ve oyuncu yang miktarlarının veritabanında güncellenmesini sağlar.

3. C++ ile Veritabanı Bağlantısı ve Yang Yönetimi


C++'ta veritabanı bağlantısı için MySQL veritabanı bağlantısı sağlamak amacıyla MySQL Connector/C++ kullanılabilir. Bu, doğrudan C++ kodunda veritabanı işlemleri yapmamıza olanak tanır. Aşağıda temel bir örnek gösteriyorum.


C++ - MySQL Bağlantısı:


Öncelikle MySQL Connector/C++ kütüphanesini indirmeniz ve kurmanız gerekmektedir.


C++ Kod


C++:
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <iostream>
#include <string>

using namespace std;

class Metin2Player {
public:
    int id;
    int yang;
   
    Metin2Player(int player_id) : id(player_id) {
        // Veritabanından oyuncu bilgilerini almak
        mysql::MySQL_Driver *driver;
        mysql::MySQL_Connection *con;
        driver = mysql::get_mysql_driver_instance();
        con = driver->connect("tcp://127.0.0.1:3306", "root", "your_password");

        con->setSchema("metin2_bahis");
        mysql::MySQL_Query *query = con->createQuery();
        query->execute("SELECT yang FROM oyuncular WHERE id = " + to_string(id));

        if (query->next()) {
            yang = query->getInt(0);
        }

        delete
 
3. C# (Metin2 Sunucusu ile Etkileşim)

C++:
using System;
using System.Net.Sockets;
using System.Text;

class Metin2BettingSystem
{
    private static TcpClient client;
    private static NetworkStream stream;

    static void Main(string[] args)
    {
        client = new TcpClient("127.0.0.1", 5000); // Sunucuya bağlan
        stream = client.GetStream();

        Console.WriteLine("Bağlantı sağlandı. Bahis yapmaya başlayabilirsiniz.");
        
        Console.Write("Bahis miktarını girin: ");
        int betAmount = int.Parse(Console.ReadLine());

        Console.Write("Tahmin yapın (örneğin: 2-1): ");
        string prediction = Console.ReadLine();

        string message = $"BET 1 {betAmount} {prediction}"; // Oyuncu id 1
        byte[] data = Encoding.UTF8.GetBytes(message);
        stream.Write(data, 0, data.Length);  // Sunucuya veri gönder

        byte[] response = new byte[256];
        int bytesRead = stream.Read(response, 0, response.Length);
        string responseData = Encoding.UTF8.GetString(response, 0, bytesRead);
        
        Console.WriteLine("Sunucudan gelen cevap: " + responseData);
        
        stream.Close();
        client.Close();
    }
}
 
Python tarafından ui sini oluşturmak tasarımını hazırlamak size kalmışç iyi kullanımlar.
 
Kodlar pek anlamlı durmuyor, kanıt ekleyebilir misiniz?

Sanki ChatGPT’ye şöyle bir sistem yaz denip çıktısı buraya yapıştırılmış gibi. Python’da neden mysql connector var? Server tarafı nerede? Bu c++ kodu diye verilen python kodu? C# ne alaka? Sadece göz atınca kafamda bu sorular oluştu.
 
Kodlar pek anlamlı durmuyor, kanıt ekleyebilir misiniz?

Sanki ChatGPT’ye şöyle bir sistem yaz denip çıktısı buraya yapıştırılmış gibi. Python’da neden mysql connector var? Server tarafı nerede? Bu c++ kodu diye verilen python kodu? C# ne alaka? Sadece göz atınca kafamda bu sorular oluştu.
zaten bu paylaştığım kodlar mantığı kardeşim aç kur değil biraz kod yapısından anlayan adam senin gibi düşünür. sorar mesela mantıklı bir soru chatgpt değil arşivden önceden yazdırılan birşey. sazan bekliyorum akıllı biri çıktı güzel güzel
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst