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)
C++ (Metin2 Sunucusunda Bahis Sistemi)
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)
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:
Python Kod
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.
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ı:
- Veritabanı Bağlantısı (connect_to_db): Bu fonksiyon, MySQL veritabanına bağlanır ve işlem yapmamıza olanak tanır.
- 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.
- 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.
- 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.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanı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.
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üzelKodlar 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.
- 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)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 368
- Cevaplar
- 2
- Görüntüleme
- 275
- Cevaplar
- 1
- Görüntüleme
- 93
- Cevaplar
- 4
- Görüntüleme
- 1K