电子游戏销售数据分析 代码实现过程

一、导入库

1.1导入数据处理包

import numpy as np
import pandas as pd

1.2导入数据可视化包

import matplotlib.pyplot as plt
import missingno as msno
import seaborn as sns
sns.set()
sns.set_style('whitegrid', {'font.sans-serif':['simhei', 'Arial']})
#解决seaborn中文乱码问题
%matplotlib inline   
%config InlineBackend.figure_format="retina" #提高图片分辨率

二、读取数据

data = pd.read_csv(r"D:\work\database\game\vgsales.csv")  #读取数据

三、数据集探索

3.1查看数据集的大小

#1.查看数据集的大小
data.shape
1.png

共有16598行数据,11个字段

3.2查看前几行,随便几行

data.head(5)
数据探索前5行1.jpg
data.sample(5) #随便几行
数据探索随便几行2.png

可以看到数据大体上是完善的,但也存在一些空值,一会儿需要进行数据清洗

3.3查看数据类型

data.dtypes
3数据格式.png

可以看到Year(年份)字段的数据类型是float,但我们需要int类型,一会需要进行数据类型转换

3.4数据集描述

data.describe()
4数据探索—数据描述.png

可以观察到年份的最大值为2020,但我们数据集的年份范围是1980-2017年的数据,所以存在数据谬误。

3.5数据集的基础信息

data.info()
5数据探索info.png

可以看到存在一些数据缺失

四、数据清洗

4.1数据重复值处理

data.duplicated()
6重复值清洗.png
data.duplicated().sum()
7重复值累加.png

可以看到没有重复值

4.2数据异常值处理

#刚看到数据年份字段存在异常值,进一步查看
data['Year'].unique()
8数据异常值处理.png
可以看出存在超出2017的年份,对其进行删除处理
data.drop(data[data.Year>2017].index,inplace=True) 
#删除大于2017年的数据
data_year = data.groupby(['Year'])['Global_Sales'].sum() 
#先按年份分组,选择全球销售额这一列,然后分组加总,即可得出年份与全球销售额的关系
data_year = data_year.reset_index()   #重置索引
print(data_year)
9--2017年数据存在异常.png

观察数值,可发现2017年全球销售额异常,经过分析,发现2017年数据有大量遗漏,决定去除2017年数据。

data.drop(data[data.Year>2016].index,inplace=True)  #删除2016年以上的数据

4.3数据缺失值处理

msno.bar(data,figsize=(12,5)) #用missingno库查看是否存在缺失值
10遗失值.png

可见Year(年份)和Publisher(发行公司)存在缺失值

data.isnull().sum().sort_values(ascending=False) 
#进一步查看缺失值情况,并降序排列
10—缺失值加总.png
#把缺失值全部剔除掉
data.dropna(how='any',inplace=True)
data.info()  #查看剔除缺失值后的情况
10剔除缺失值.png

剔除缺失值后,还有16287行数据,不影响数据分析

3.4数据类型转换

#把年份的float类型转换为int类型
data.Year = data.Year.astype(int)

四、数据分析和可视化

4.1玩家角度分析

4.1.1玩家最喜爱的5款游戏

#数据集中共有多少游戏
data['Name'].unique
12数据集中共有多少款游戏.png

共有16287款游戏

#最火热的5款游戏(销售额最大)
top_game_sale = data.head(5)
top_game_sale=top_game_sale[['Name','Year','Genre','Global_Sales']]
#选择游戏名、年份、游戏类型、全球销售额
top_game_sale=top_game_sale.sort_values(by=['Global_Sales'],ascending=False)
#按全球销售额进行倒序排列
top_game_sale
13销售额最大的5款游戏.png

将数据复制到excel表中加工,并求出该游戏占发行年总销售额的比重。
市场上共有16287款主机游戏,其中,最受玩家欢迎的5款游戏是Wii运动、超级马里奥、马里奥赛车、Wii运动度假胜地、精灵宝可梦。这5款游戏销售总额为223.17百万美元;WII运动这款游戏的销售额几乎占到它的发行年(2006年)总销售额的1/5,而第二款游戏超级马里奥兄弟更是占到发行年的74.52%,可见开发高品质爆款游戏的重要性。

4.1.2 玩家喜欢的游戏类型

data['Genre'].unique()
14有哪些游戏类型.png

共有12种游戏,分别是:Sports(运动)、Platform(平台)、Racing(竞技)、Role-Playing(角色扮演)、Puzzle(智力)、Misc(混杂)、Shooter(射击)、Simulation(模拟)、Action(动作)、Fighting(格斗)、Adventure(冒险)、Strategy(策略)。

#每种游戏类型的全球销售额
data_genre = data.groupby(by=['Genre'])['Global_Sales'].sum()
#按游戏类型分组,取全球销售额,全年加总
data_genre = data_genre.reset_index() #重新索引
data_genre = data_genre.sort_values(by=['Global_Sales'],
                                   ascending=False) #按全球销售量排序
data_genre
15各种游戏类型销售额.png
#画图表示
plt.figure(figsize=(15,10))
sns.barplot(x='Genre',y='Global_Sales',data=data_genre)
plt.xticks(rotation=90)
16游戏类型条形图.png

从各个主机游戏类型的销售额图表可以看出,最受玩家喜爱的游戏类型为:动作、运动、射击类,这类热血刺激的游戏更受到玩家欢迎,销售额是最高的,而益智类、冒险类、策略类游戏则销量不佳。推测主机游戏玩家中,男性玩家占比较高。

4.1.3 最流行的三种主机游戏类型词云

from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator #导入词云
from PIL import Image #导入图片库
stopwords = set(STOPWORDS)
for x in data.Genre.unique():
    wc = WordCloud(background_color="white",max_words=1500,
                  stopwords=stopwords,max_font_size=40,
                  random_state=42)
    wc.generate(data.Name[data.Genre == x].to_string())
    plt.imshow(wc)
    plt.title(x)
    plt.axis('off')
plt.show()
17运动类词云.png
18动作类词云.png
19射击词云.png
20角色扮演词云.png

我们选取了动作、运动、射击这三种最受玩家喜爱的主机游戏类型,作出这三种游戏类型的词频词云。
从动作类游戏词云可以看到,Resident Evil(生化危机)、Harry Potter(哈利波特)、Spider Man(蜘蛛侠)、Star Wars(星球大战)最受欢迎,这些游戏都是依托广为人知的电影、小说IP,进行再创作,既有故事情节,也有刺激的动作场面,所以受到玩家喜爱。
从运动类游戏词云可以看到,Madden NFL/NHL(疯狂橄榄球/冰球)、Pro Yakyuu(职业棒球)、NBA最受欢迎,可知这类需要技巧的多人参与的球类游戏最受玩家偏好。
从射击类游戏词云可以看到,Call of Duty(使命召唤)、Medal Honor(荣耀勋章)、Star Wars(星际争霸)最受欢迎,这些都是军事类枪战类游戏;而Tom Clancy(汤姆·克兰西)也是高频词,他是反恐惊悚小说家,由他创作的大量畅销小说被改编为游戏大作。如果能够依据知名的IP改编成游戏,更容易受到玩家喜爱。

4.1.4 不同地区的玩家喜欢的游戏类型差异

comp_genre = data[['Genre','NA_Sales','EU_Sales','JP_Sales','Other_Sales']]
#comp_genre
#选取游戏类型和各地的销售额
comp_map = comp_genre.groupby(by=['Genre']).sum()
#按游戏类型分组,加总
comp_map
21不同区域对游戏类型偏好的差异.png
#画出游戏类型和地区销售额关系的热力图
plt.figure(figsize=(15,10))
sns.set(font_scale=1)
sns.heatmap(comp_map,annot=True,fmt = '.1f')
#annot默认是False,如果是True会在格子内传入数据,fmt把数字约为一位小数
plt.xticks(fontsize=14)
plt.yticks(fontsize=14)
plt.show()
22区域和游戏类型的热力图.png
#画各个游戏类型销售额的区域差异条形图
comp_table = comp_map.reset_index()
comp_table = pd.melt(comp_table,id_vars=['Genre'],
                    value_vars =['NA_Sales','EU_Sales','JP_Sales','Other_Sales'],
                    var_name='Sale_Area',value_name='Sale_Price')
#melt做透视表 列转行,id_vars不需要转换的列名,
#value_vars需要转换的列名,value_name自定义列名
plt.figure(figsize=(15,10))
sns.barplot(x='Genre',y='Sale_Price',hue='Sale_Area',
           data = comp_table)
#hue 按sale_Area不同颜色分条显示,图例
23不同区域不同游戏类型销售额条形图.png

从这两张图表可以看到,在欧美地区,玩家喜欢的前三种游戏类型是:动作、运动、射击类游戏,最没有吸引力的游戏是策略、冒险、益智类游戏,可见欧美玩家有相同的游戏偏好,普遍喜欢刺激、激情类游戏,而对烧脑类游戏缺乏兴趣。结合上面关于动作、运动、射击的词云,我们发现欧美玩家更偏好太空、高科技、英雄主义题材的游戏。
而在日本,最受玩家喜爱的游戏是角色扮演类,这种类型的游戏所占比重很大,是第二喜欢的游戏类型(动作类)的两倍有余。从角色扮演类游戏词云可以看到,Final Fantasy(最后幻想)、Dragon Quest(勇者斗恶龙系列)、Pokemon(宝可梦)、Shin Megami(真女神转生)是最受玩家欢迎的角色扮演类游戏,而且这几款游戏都是日本公司开发的;反而射击类游戏竟然在日本玩家中吸引力最弱,与欧美地区玩家的偏好正好相反。这可能与日本地区女性游戏玩家占比较高有关,女性对运动刺激类游戏偏好更低。另外,这几款角色扮演类游戏和动漫密切相关,它们的流行很明显契合了日本高度发达ACG文化和宅文化。
可见不同地区的游戏文化有一定区别,需对各个区域玩家的游戏类型偏好有一定了解后,再开发相应的游戏。

4.1.5 用户喜爱的游戏类型变化趋势

这一部分用SQL语言实现,在excel中完善。
从图表中可以看到,动作、射击这两类游戏这几十年来快速增长,动作类游戏从10.89%增长到26.72%,射击类游戏从5.39%增长到18.36%,这两类游戏现在几乎占到了整个游戏市场的半壁江山;而竞技、平台、格斗类游戏则所占比重急剧下降,失去了玩家的钟爱;冒险、策略、益智类游戏本来就占比不高,这些年更是进一步萎缩。可以看到游戏市场出现集聚效应和极化,热门游戏更热门,而冷门游戏更冷门。

4.1.6用户喜欢的游戏平台

data['Platform'].unique()
24市场上的游戏平台.png

目前市场上共有31种游戏设备

from collections import Counter
#前20个平台
platform_count = Counter(data.Platform) 
#counter函数,用来计数,计算每个游戏设备出现的次数
most_platform = platform_count.most_common(20)
platform_name,count = zip(*most_platform) #解压缩,把两列数拆开
platform_name,count = list(platform_name),list(count)
#把两列数 转换为列表格式
#可视化
plt.figure(figsize=(15,10))
ax = sns.barplot(x=platform_name,y=count,palette = 'rocket')
plt.xlabel('Platform',fontsize=20,fontweight='bold')
plt.ylabel('Frequency',fontsize=20,fontweight='bold')
plt.title('Most common 20 of Platform',fontsize=20,fontweight='bold')
plt.show()
25销售额前20个游戏平台.png

目前市场上共有31种游戏设备,从图中可以看出,前十大游戏平台中除DS、PS2两款游戏平台销售额很突出,其他8种差别不大; 其中DS、Wii、GBA是任天堂公司推出的游戏机,PS2、PS3、PSP、PS是索尼公司推出的,Xbox360、Xbox是微软公司推出的。总体来看,索尼,微软,任天堂三家日本/美国公司占据了主机市场绝大部分的份额,依据近些年实际情况来说也是如此。其中任天堂一直是最为优秀的第一方游戏开发公司,独有大量的优秀游戏资源,是三家公司中研发能力最强的,而微软稍显弱势,第一方独占大作质量市场接受度相对较低,同时数量和类型上也不够丰富。
不同于网络游戏和移动游戏,主机游戏是很依赖于游戏设备的,游戏设备本身利润不高,利润更依赖于游戏,游戏热卖也会带动游戏设备的销售,两者具有很大的相关性,所以很多公司会同时制造游戏设备和发行游戏(如任天堂和索尼)。

4.2发行商角度分析

4.2.1销售额前十的发行商

len(data['Publisher'].unique())
输出:576
市场中共有576家游戏发行商
#全世界哪个公司上的游戏销售额最高
sale_pbl = data[['Publisher','Global_Sales']]
#选取发行商、全球销售额两列
sale_pbl = sale_pbl.groupby('Publisher')['Global_Sales'].sum().sort_values(ascending=False).head(20)
#按发行商分组,选取全球销售额,加总,倒序排列,选取前20行
sale_pbl = pd.DataFrame(sale_pbl).reset_index() 
#放进表格里
sale_pbl
26游戏发行商排行榜.png
#用上面的数据,画条形图
plt.figure(figsize=(15,10))
sns.barplot(x='Publisher',y='Global_Sales',data=sale_pbl)
plt.xticks(rotation=90,fontsize=20,fontweight='bold')
27发行商的销售额.png

市场中共有576家主机游戏发行商,任天堂、艺电公司、动视公司是前三名,三家发行商总销售额为3600百万美元,占比43.9%;前10家游戏公司的销售额为6222百万美元,占比70.6%;前20家游戏公司的销售额为7553百万美元,占比75.7%,可以看到电子游戏市场是一个寡头垄断市场,集中度很高,有很大的进入壁垒。世界前十大发行商中,Nintendo(任天堂)、Sony Computer Entertainment(索尼)、Konami(科乐美)、Sega(世嘉)、Namco(南梦宫)是日本公司;Ubisoft(育碧)是欧洲公司;Take-Two、THQ是美国公司。可见主机游戏发行主要是日美欧三大发达国家公司垄断。

4.2.2每年发行游戏款数最多的公司

#每年最高发行商
top_publisher = data[['Year','Publisher']]
top_publisher_df=top_publisher.groupby(by=['Year','Publisher']).size().reset_index(name='Count')
#按年份,发行商分组,计算数
top_publisher_idx = top_publisher_df.groupby(by=['Year'])['Count'].transform(max) == top_publisher_df['Count']
#按年份分组,取Count列,取每年最大的发行商
top_publisher_count = top_publisher_df[top_publisher_idx].reset_index(drop=True)
top_publisher_count =top_publisher_count.drop_duplicates(subset=['Year','Count'],keep='last').reset_index(drop=True)
top_publisher_count
28每年销售额最高的发行商.png
publisher = top_publisher_count['Publisher']
plt.figure(figsize=(30,15))
g = sns.barplot(x='Year',y='Count',
               data=top_publisher_count)
index = 0 
for value in top_publisher_count['Count'].values:
    g.text(index,value+5,str(publisher[index]+'---'+str(value)),
   color='black',size=14,rotation=90,ha='center',fontsize=20,fontweight='bold')
    index +=1
plt.xticks(rotation=90,fontsize=20,fontweight='bold')
plt.yticks(fontsize=20,fontweight='bold')
plt.title('The largest number of games released each year ',fontsize=25,fontweight='bold')
plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
plt.show()
29每年发布游戏最高的发行商.png

从每年发行游戏款数最多的公司的数据来看,大致可分为6个阶段,1981、1982两年,雅达利公司是行业龙头,也是早期电子游戏的拓荒者,占据了发展先机。但随后受到家用电脑冲击和大量仓促开发的劣质游戏影响,1983年美国经历了雅达利大崩溃,游戏市场萧条,大量北美游戏公司破产。
1983-1993这11年,任天堂吸取了雅达利公司的教训,建立权利保证金制度,开发高质量游戏,成为发行游戏款数最大的公司,被称为任天堂的世代,游戏发行款数并不多,只有个数款,但质量精良,且成功地控制游戏内容,有效防止暴力,色情,赌博等信息出现在游戏中,赢得家长的欢迎,主机游戏生产中心由北美转移到日本。
1995-2000这6年,索尼公司开发以光盘为游戏载体的PS系列游戏机,大幅降低权利保证金,吸引游戏开发商为PS制作游戏,占据发行游戏款数的榜首,大约每年制作三十多款游戏。
2001-2008这8年,美国艺电公司是发行游戏款数最多的公司,这也是主机游戏发展的黄金时期,艺电公司每年大约发行80-120款游戏;
2009年、2010年动视暴雪公司,2011年育碧公司是发行游戏款数公司的王者,这时主机游戏热开始大幅退潮,只能发行大约80款游戏;
2012-2016这五年,占据榜首的是南梦宫,每年发行游戏款数回落到60款左右。

4.3市场角度分析

4.3.1游戏市场的总体发展趋势

data_year = data.groupby(['Year'])['Global_Sales'].sum() 
#先按年份分组,选择全球销售额这一列,然后分组加总,即可得出年份与全球销售额的关系
data_year = data_year.reset_index()   #重置索引
print(data_year)
30每年全球总销售额.png

在excel作图
从全球游戏销售额图可以看出,电子游戏从1980年开始到1995年前后,增长比较缓慢,1995年以后伴随着互联网和技术革命的浪潮,电子游戏开始蓬勃发展,在2009年前后达到顶峰,之后受经济危机影响开始大幅回落,到近些年来电子游戏的发展大幅下降一部分内因是因为本世代主机平台慢慢到了末期,市场热度在降温,还有一部分是因为受到外部因素的冲击,其他娱乐方式在挤占原本的电子游戏市场,如移动端游戏等。

4.3.2游戏市场的地区分布

top_sale_reg = data[['NA_Sales','EU_Sales','JP_Sales','Other_Sales']]
#取四个地区的营收列
#pd.DataFrame(top_sale_reg.sum(),columns=['a','b'])
top_sale_reg = top_sale_reg.sum().reset_index()
top_sale_reg = top_sale_reg.rename(columns={'index':'region',0:'sale'})
top_sale_reg
31不同区域销售额.png
#画图
plt.figure(figsize=(12,8))
sns.barplot(x='region',y='sale',data = top_sale_reg)
32各区域销售额.png
#各地区营收饼图
labels = top_sale_reg['region']
sizes = top_sale_reg['sale']
sizes
#画图
plt.figure(figsize=(19,8))
plt.pie(sizes,labels=labels,autopct='%1.1f%%',shadow=True,startangle=90)
#sizes各块比例,labels每一块饼图显示的文字,autopct百分比设置,
#shadow饼图下的阴影,startangle起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
33各个区域销售额饼图.png

可以看到,电子游戏的销售市场主要在北美、欧洲和日本这三大发达国家市场,特别是北美市场几乎占到电子游戏销售的半壁江山,应继续面向这三个市场,并可以尝试开发中国、韩国、印度、中东等新兴市场。

五、应用机器学习预测

5.1运用决策树回归算法预测

from sklearn.model_selection import train_test_split
#train_test_split是sklearn中用于划分数据集,即将原始数据集划分成测试集和训练集两部分的函数。
from sklearn.metrics import mean_absolute_error
#绝对差值(Mean absolute error):这个指标用于评判预测值与实际值之间的差异度。
from sklearn.tree import DecisionTreeRegressor #导入决策树回归算法库
features = ['NA_Sales','EU_Sales','JP_Sales','Other_Sales']
cop = data.copy()
X = cop[features]
y = cop.Global_Sales
train_X,val_X,train_y,val_y = train_test_split(X,y,test_size=0.25,random_state=1)
#test_size若为None时,test size自动设置成0.25
#random_state 为整数,则每次生成的数据都相同
model = DecisionTreeRegressor(random_state=1)
model.fit(train_X,train_y) 
#模型拟合

输出:DecisionTreeRegressor(random_state=1)

predictions = model.predict(val_X)
mae = mean_absolute_error(predictions,val_y)
#平均绝对值误差
print('Mean absolute error  '+str(mae))

输出:Mean absolute error 0.040702470622376793

df = pd.DataFrame({'Actual':val_y,'Predicted':predictions})
#将实际值和预测值放入DataFrame中
df
34机器学习算法—决策树.png
df1 = df.head(80)
df1.plot(kind='bar',figsize=(15,8))
plt.show()#画图看一下
35决策树预测销售额.png

5.2运用多元线性回归算法预测

#保留最有效的信息,我们发现决定全球销售额的最有用的特征是北美销售额、日本销售额、欧洲销售额、其他地区销售额。
x = data.iloc[:,6:-1].values  #取出这个数据集的
print(x[0])

输出:[41.49 29.02 3.77 8.46]

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,
                                                random_state=0)
#在训练集上训练多元线性回归
from sklearn.linear_model import LinearRegression
regressor_MultiLinear = LinearRegression()
regressor_MultiLinear.fit(x_train,y_train)

输出:LinearRegression()

#预测结果
y_pred = regressor_MultiLinear.predict(x_test)
#计算r2 值
from sklearn.metrics import r2_score
r2_MultiLinear = r2_score(y_test,y_pred) #测试值和预测值之间的拟合优度
print(r2_MultiLinear)

输出:0.99998698585513

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343