搭建自己的斗地主服务器,和朋友一起消磨时间吧~

搭建自己的斗地主服务器,和朋友一起消磨时间吧~

关键词:斗地主 ,(简单AI出牌),服务器,MYSQL,HTML

正文:

在过年的时候,偶尔接触到腾讯的欢乐斗地主,可以好友开房,一起组队玩。但后来就没有这个功能了,于是就想能不能自己开发一个,不求多么好,只要能一起玩就行。但很显然,这是一个大工程,从前端设计到后端开发,我这一个半吊子水平也搞不来。于是就参考了GitHub上一个292星的项目:**link**https://github.com/mailgyc/doudizhu
代码很好,但是在复现的时候出现了一些问题,耽搁了一些时间。在这里我把自己的经历分享给大家,希望能帮到对此感兴趣的朋友。

一、环境需求(Dependencies)

以Ubuntu Server 16.04.1 LTS 64位为例:
	Python3.6+(这里建议3.7以上,因为有一个feature库对与3.6不支持)
	Mysql5.7+

二、配置过程

1、python3.7:

以Ubuntu Server 16.04.1 LTS 64位为例:
# 官网下载安装包
	1. wget http://www.python.org/ftp/python/3.6.4/Python-3.7.1.tgz
# 解压 
	2. tar -xvzf Python-3.7.1.tgz# 安装
	3. cd Python-3.7.1
	4. ./configure --with-ssl
# 编译
	5. sudo make
	6. sudo make install
# 创建软连接,先查看python3.7.1的安装路径(这一步有些问题,具体的读者们可以再搜索一下。)
	7. which python3    # /usr/local/bin/python3
	8. sudo  ln -s /usr/local/bin/python3 python

2、MySQL

参考https://blog.csdn.net/kylinxjd/article/details/90722062。密码建议设成123456,这样以后可以少改一项。
3、开放3306端口:

参考这两篇文章:

https://www.cnblogs.com/austinspark-jessylu/p/6899279.html
https://blog.csdn.net/qq_33210743/article/details/107541566

三、实现操作

具体
git clone https://github.com/mailgyc/doudizhu
(或者:git clone https://gitee.com/see_one/doudizhu,码云链接,更快一点)

cd doudizhu

mysql --user=root -p
(enter password:)
 
mysql>CREATE DATABASE IF NOT EXISTS `ddz` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

mysql>use ddz;

mysql>CREATE TABLE IF NOT EXISTS `account` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `openid` VARCHAR(50) NOT NULL UNIQUE,
    `username` VARCHAR(50) NOT NULL,
    `sex` TINYINT(1) NOT NULL,
    `avatar` VARCHAR(256),
    `date_joined` DATETIME DEFAULT CURRENT_TIMESTAMP,
    `last_modified` DATETIME ON UPDATE CURRENT_TIMESTAMP
);

mysql>CREATE TABLE IF NOT EXISTS `record` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `round` TEXT NOT NULL,
    `robot` TINYINT(1) NOT NULL,
    `last_modified` DATETIME ON UPDATE CURRENT_TIMESTAMP
);

之后输入exit;退出
pip3 install -r requirements.txt(之后若是报错缺少什么库就再安装什么库)

cd doudizhu

python3 app.py --password=your_database_password(在运行之前,要把源代码里面的“127.0.0.1”改成你自己的服务器地址。如:
xhr.open('POST', 'http://127.0.0.1:8080' + url, true);
"proxy": "http://127.0.0.1:8080",
f'server on http://127.0.0.1:{PORT}'
DATABASE = database_url(os.getenv('DATABASE_URL', 'mysql://root:[email protected]:3306/ddz'))
如果你改了密码的话,这里的“root:123456@”的“123456”要改成你自己的密码。)

Now visit http://你的服务器地址:8080
3、对于2003报错:
参考:https://blog.csdn.net/qq_34419607/article/details/88685558(或https://blog.csdn.net/qq_33210743/article/details/107541566)
mysql -u root –p
mysql>use mysql;
mysql>select host, user from user;
mysql>update user set host='%' where user='root';
 mysql>flush privileges;
mysql>select host, user from user;

查看3306端口是否开放:
netstat -an|grep 3306

备注(读者不用管):
*ubuntu@VM-0-14-ubuntu:~$ cd doudizhu
ubuntu@VM-0-14-ubuntu:~/doudizhu$ cd doudizhu
ubuntu@VM-0-14-ubuntu:~/doudizhu/doudizhu$ mysql -u root -p
Enter password: 123456
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> exit
Bye
ubuntu@VM-0-14-ubuntu:~/doudizhu/doudizhu$ python3 app.py --password=123456
2021-02-06 23:47:26,901 INFO app 50 server on http://49.xxx.109.xxx:8080

DATABASE = database_url(os.getenv(‘DATABASE_URL’, ‘mysql://root:[email protected]:3306/ddz’))
*

写在最后

这篇文章写出来,也算是了了一个心愿了,中间也请教了两位大佬,在这里感谢他们!同时如果有朋友感兴趣或者有疑惑的话可以来联系我(邮箱在我主页),希望能帮大家少走一些坑。如果有朋友有兴趣继续深入,比如给网页加个自适应什么的,希望也能告知我一下,拜谢!

你可能感兴趣的:(mysql,python,游戏)