网易首页 > 网易号 > 正文 申请入驻

使用Python编程打造一款游戏

0
分享至

  大家好,我是皮皮。

  一、前言

  前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个Python小游戏的问题,这里拿出来给大家分享下,一起学习下。

  二、解决过程

  看上去代码有报错,截图如下。

  这个错误倒是很常见,因为数据类型不同,直接相加肯定报错,如果需要更改的话,那么需要转一下数据类型,这里【沈复】大佬给出了答案,如下图所示。

  当然了,粉丝的代码残缺的太厉害了,少了5-7个函数,【月神】依次补充完整之后,总算可以进入游戏了,然后顺便找到了这个报错位置。

  这里问题还是不少的,【月神】帮忙更新了下代码,如下:

  def replay(): key = input('Do you want to play again? Enter Yes or No: ') return True if key[0].upper() == 'Y' else False

  这样的话,就完美解决了。

  最后分享下这个游戏的完整的代码给大家,感兴趣的小伙伴们可以玩玩看。

  print('Welcome to Tic Tac Toe!')from IPython.display import clear_outputimport randomdef choose_first(): if random.randint(0,1) == 0: return 'player2' else: return 'player1'def player_input(): marker = '' while not (marker == 'X' or marker == 'O'): marker = input("Do you want to be X or O? ").upper() if marker == 'X': return 'X' else: return 'O'def player_choice(board): position = 0 while position not in [1, 2, 3, 4, 5, 6, 7, 8, 9] or not space_check(board, position): position = int(input('Choose your next position: (1-9): ')) return positiondef space_check(board, position): return board[position] == ' 'def full_board_check(board): for i in range(1,10): if space_check(board,i): return False return Truedef replay(): key = input('Do you want to play again? Enter Yes or No: ') return True if key[0].upper() == 'Y' else Falsedef place_marker(board, marker, position): board[position] = markerdef win_check(board, mark): return ( (board[1]==mark and board[2]==mark and board[3]==mark) or (board[4]==mark and board[5]==mark and board[6]==mark) or (board[7]==mark and board[8]==mark and board[9]==mark) or (board[1]==mark and board[4]==mark and board[7]==mark) or (board[2]==mark and board[5]==mark and board[8]==mark) or (board[3]==mark and board[6]==mark and board[9]==mark) or (board[1]==mark and board[5]==mark and board[9]==mark) or (board[3]==mark and board[5]==mark and board[7]==mark) )def display_board(board): clear_output() print(' | |') print(' ' + board[7] + ' | ' + board[8] + ' | ' + board[9]) print(' | |') print('-----------') print(' | |') print(' ' + board[4] + ' | ' + board[5] + ' | ' + board[6]) print(' | |') print('-----------') print(' | |') print(' ' + board[1] + ' | ' + board[2] + ' | ' + board[3]) print(' | |')while True: # Reset the board theBoard = [' '] * 10 player1_marker = player_input() player2_marker = player_input() turn = choose_first() print(turn + ' will go first') play_game = input('Are you ready to play? yes or no? ') if play_game[0].lower() == 'y': game_on = True else: game_on = False while game_on: if turn == 'Player1': # Player1 turn display_board(theBoard) position = player_choice(theBoard) place_marker(theBoard, player1_marker, position) if win_check(theBoard, player1_marker): display_board(theBoard) print('Congratulations! You have won the game!') game_on = False else: if full_board_check(theBoard): display_board(theBoard) print('The game is a draw!') break else: turn = 'Player2' else: # player2 turn display_board(theBoard) position = player_choice(theBoard) place_marker(theBoard, player2_marker, position) if win_check(theBoard, player2_marker): display_board(theBoard) print('Player2 has won!') game_on = False else: if full_board_check(theBoard): display_board(theBoard) print('The game is a draw!') break else: turn = 'Player1' if not replay(): break

  三、总结

  大家好,我是皮皮。这篇文章主要分享了使用Python编程打造一款小游戏,针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

  最后感谢粉丝【Chloe】提问,感谢【沈复】、【月神】给出的具体解析和代码演示,感谢【dcpeng】、【冯诚】等人参与学习交流。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
县委书记任上主动投案的谢建军,被逮捕

县委书记任上主动投案的谢建军,被逮捕

鲁中晨报
2024-11-11 23:01:11
2005年,梅拉尼娅怀着巴伦参加特朗普大儿子婚礼,被原配抢了风头

2005年,梅拉尼娅怀着巴伦参加特朗普大儿子婚礼,被原配抢了风头

笑傲春秋
2024-11-11 21:13:22
冠中冠冷门不断!的哥翻车,卫冕冠军大比分落后,NO.17冲4强?

冠中冠冷门不断!的哥翻车,卫冕冠军大比分落后,NO.17冲4强?

刘姚尧的文字城堡
2024-11-12 04:56:42
乌克兰:俄军轰炸机发射巡航导弹,全境发布空袭警报

乌克兰:俄军轰炸机发射巡航导弹,全境发布空袭警报

上观新闻
2024-11-11 15:03:03
传音之殇:非洲不需要“小米”

传音之殇:非洲不需要“小米”

道总有理
2024-11-11 17:30:33
离岸人民币兑美元跌285个基点报7.2275

离岸人民币兑美元跌285个基点报7.2275

每日经济新闻
2024-11-12 06:08:07
新一代电子茅台预定!华为Mate 70 Pro+抢到赚到

新一代电子茅台预定!华为Mate 70 Pro+抢到赚到

快科技
2024-11-11 15:20:17
撩女人的直接方法,从以下3个方面“越界”,大多搞定了

撩女人的直接方法,从以下3个方面“越界”,大多搞定了

叶飞飞
2024-10-25 18:01:41
大瓜!网传某农大老师和学生宾馆亲热,没拉窗帘:1分钟视频曝光

大瓜!网传某农大老师和学生宾馆亲热,没拉窗帘:1分钟视频曝光

农村情感故事
2024-11-11 22:05:28
黑天鹅正式降落!今日凌晨的四大消息全面来袭(11.12)!

黑天鹅正式降落!今日凌晨的四大消息全面来袭(11.12)!

风口招财猪
2024-11-12 02:35:56
知名美女网红车震被丈夫捉奸,3分钟不雅视频流出,男女双方被扒

知名美女网红车震被丈夫捉奸,3分钟不雅视频流出,男女双方被扒

博士观察
2024-11-11 18:27:03
瘫痪两年的妻子突然自己站起来了,丈夫兴奋地大喊“我的娘嘞”:“非常激动,从来没想过放弃她”

瘫痪两年的妻子突然自己站起来了,丈夫兴奋地大喊“我的娘嘞”:“非常激动,从来没想过放弃她”

观威海
2024-11-11 18:57:11
新加坡预测:特朗普上台后,我国 GDP 将下降 2%,出口将降 8%!

新加坡预测:特朗普上台后,我国 GDP 将下降 2%,出口将降 8%!

橘色数码
2024-11-11 09:02:38
商务部:11月15日起对原产于欧盟的进口相关白兰地实施临时反倾销措施

商务部:11月15日起对原产于欧盟的进口相关白兰地实施临时反倾销措施

每日经济新闻
2024-11-11 17:14:16
真的惨!新赛季鹈鹕战绩3胜7负 但是伤了一个首发阵容

真的惨!新赛季鹈鹕战绩3胜7负 但是伤了一个首发阵容

直播吧
2024-11-12 06:50:03
中法谈判大门封死,马克龙派人来华目的不单纯,200亿大单飞了

中法谈判大门封死,马克龙派人来华目的不单纯,200亿大单飞了

星辰故事屋
2024-11-11 20:30:00
今明年,如果房贷利率跌破2%,超42%的家庭,或面临“3大风险”

今明年,如果房贷利率跌破2%,超42%的家庭,或面临“3大风险”

巢客HOME
2024-11-12 06:00:03
玩呢!拿到顶薪就下滑,年薪5000万啊,安吉失算,勇士逃过一劫

玩呢!拿到顶薪就下滑,年薪5000万啊,安吉失算,勇士逃过一劫

球童无忌
2024-11-11 15:51:09
危楼愚夫:猪一样的价值观,必然猪一样的命运

危楼愚夫:猪一样的价值观,必然猪一样的命运

诗词中国
2024-11-09 13:57:20
左宗棠收复新疆,发现新疆有五千多印度人,左宗棠如何处置的?

左宗棠收复新疆,发现新疆有五千多印度人,左宗棠如何处置的?

小杨历史
2024-11-10 22:51:02
2024-11-12 09:26:44
Python学习交流
Python学习交流
人生苦短,我用Python
419文章数 4850关注度
往期回顾 全部

科技要闻

史上最长双11收官,阿里京东战报都很简略

头条要闻

复旦教授梁永安:年轻人毕业后可以考虑先啃老几年

头条要闻

复旦教授梁永安:年轻人毕业后可以考虑先啃老几年

体育要闻

武磊已返回国内+接受治疗 确认缺战巴林

娱乐要闻

赵露思和虞书欣是要决出个胜负吗?

财经要闻

潘功胜重磅发声,信息量太大

汽车要闻

华为鸿蒙座舱零门槛 全新岚图梦想家有大老板体验

态度原创

本地
教育
旅游
房产
公开课

本地新闻

英国男人有自己的“血脉觉醒”

教育要闻

一个教师强大到可怕的40种表现,尤其最后几条!

旅游要闻

香港机场一摆渡车车顶来回刮擦客机机翼

房产要闻

双十一特价大战!海口又一批开发商开始割肉卖房!

公开课

AI如何揭开大自然和宇宙的奥秘

无障碍浏览 进入关怀版