团队-团队编程项目作业名称-项目总结

项目名称:井字棋游戏

小组成员:宋沅修,周天翼,朱中浩,王金鑫,张浩

项目托管地址:

https://gitee.com/zzh07142/JingZiQi/blob/master/%E6%96%B0%E5%BB%BA%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3.py

项目说明:井字游戏的游戏界面是一个3*3的格子,系统提示玩家点击棋盘的坐标来表示要下的棋子的位置,如果玩家输入的坐标所在位置已经有棋子或者该坐标已经超出了游戏坐标的范围,就提示玩家重新输入坐标,。当有三个棋子在一条直线上的时候就结束游戏,并输出哪个玩家赢了。

使用说明:玩家1和玩家2各自输入自己的棋子坐标,来表示棋子的位置。如果某个玩家有三个棋子连成一条直线,则该玩家胜利,游戏结束。

项目不足之处:游戏界面太单一,输出的棋盘太小等等。

项目代码:

# -*- coding: cp936 -*-

#1-导入库

import pygame
from random import randint
#tkMessageBox 用来弹出对话框

import tkMessageBox
from pygame.locals import *
#2-初始化游戏

pygame.init()
width,height=480,480
#显示 样式 创建屏幕保存到变量中

screen=pygame.display.set_mode((width,height))
#标题

pygame.display.set_caption("jingziqi")
#插入图片

background=pygame.image.load("bjt.png")
#定义

empty = 0
black=(0,0,0)
red=(255,0,0)
blue=(0,0,255)
white=(255,255,255)
#创建绘制棋盘的函数

def draw_game():
#导入背景图

screen.blit(background,(0,0))
#画线

#用法:pygame.draw.line(显示,颜色,开始位置,结束位置,宽度)

pygame.draw.line(screen, black, (160, 0), (160, 480), 5)
pygame.draw.line(screen, black, (320, 0), (320, 480), 5)
pygame.draw.line(screen, black, (0, 160), (480, 160), 5)
pygame.draw.line(screen, black, (0, 320), (480, 320), 5)
#遍历列表中的元素及他们的下标 row横col竖 row col是下标

for row, line in enumerate(state):
for col, val in enumerate(line):
if val == -1:
#画x

upper_left = (col * 160 + 5, row * 160 + 5)
lower_right = (col * 160 + 155, row * 160 + 155)
pygame.draw.line(screen, red, upper_left, lower_right, 5)

upper_right = (col * 160 + 155, row * 160 + 5)
lower_left = (col * 160 + 5, row * 160 + 155)
pygame.draw.line(screen, red, upper_right, lower_left, 5)
elif val == 1:
#创建一个矩形.在矩形里画圆

rect = (col * 160 + 5, row * 160 + 5, 150, 150)
pygame.draw.ellipse(screen, blue, rect, 5)
else:
assert val == empty
continue
pygame.display.flip()
def draw_O():
#随机函数

while True:
row = randint(0,2)
col = randint(0,2)
#当空格为空的时候画圆

if state[row][col] == 0:
state[row][col] = 1
break
draw_game()
pygame.display.flip()
def is_won():
for val in range(3):
# 检查匹配的行三个图形是否都相同且不等于空

if state[0][val] == state[1][val] == state[2][val] != empty:
return state[0][val]

# 检查匹配的列三个图形是否都相同不等于空

if state[val][0] == state[val][1] == state[val][2] != empty: 
return state[val][0]

#判断 \ 中三个图形是否都相同

if state[0][0] == state[1][1] == state[2][2] != empty: 
return state[1][1]
#判断 / 中三个图形是否都相同

if state[0][2] == state[1][1] == state[2][0] != empty: 
return state[1][1]
#初始化棋盘

def begin():
global state
state = [[empty] * 3,[empty] * 3,[empty] * 3]
draw_game()
#首先初始化 pygame.display.flip()

begin() 
#主循环

while True: 
event=pygame.event.wait()
#初始化

pos = None
temp = 0
#接收到退出事件后退出程序

if event.type == pygame.QUIT:
pygame.quit()
exit(0)
#加入了按键功能

elif event.type == KEYDOWN:
if event.key == K_a:
begin()
draw_game()
pygame.display.flip()
elif event.key == K_s:
pygame.event.post(pygame.event.Event(QUIT))
#接受鼠标点击事件

elif event.type == MOUSEBUTTONDOWN and event.button == 1:
#event.pos[0]代表x轴坐标 event.pos[1]代表y轴坐标

pos = (event.pos[1]/160, event.pos[0]/160)
row,col=pos 
#if pygame.mouse.get_rel()==(0,0):

# continue

#加一个条件让它只能在空的时候画x

if state[row][col]==0:
state[row][col] = -1
else:
continue
print pos
draw_game()
draw_O()
#判断属性接受返回值

if is_won() == -1:
tkMessageBox.showinfo(title=‘win‘,message=‘win‘)
pygame.quit()
exit(0)
elif is_won() == 1:
tkMessageBox.showinfo(title=‘lose‘,message=‘lose‘)
pygame.quit()
exit(0)

项目图示:

项目总结:通过这次团队合作编写井字棋项目,我们小组通过运用所学的知识成功编写出了井字棋项目,并且成功运行,让我们编写程序的能力得到了提升。不过我们虽然分工明确,但各个部分的代码还是有一些麻烦和差错需要解决,有的问题我们不太容易解决,在解决这些问题之中,我们也得到了许多受益匪浅的知识,使我们以后编写代码会更加游刃有余。

时间: 2024-08-04 16:47:21

团队-团队编程项目作业名称-项目总结的相关文章

《团队-团队编程项目作业名称-项目总结》

软件工程这门课即将结束了,我们的团队编程项目也完成的很好希望我们以后互帮互助 得到更好的成绩!!下面我做一下简单的总结还有软件模块实现的过程: 我们这个项目使用的是 Android studio 进行代码编译,好处是我们能够及时通过连接手机端进行同步测试,一旦程序做的不好,或者有新的想法能够通过再次编译重新进行操作,同时我们还不需要夜神模拟器同时也省下了电脑运行内存,提高我们工作效率 1)我们设计完了初步的构架,打包成apk文件,传送到手机进行安装,如一图所示:红色框框即是我们名为NotePad

团队-团队编程项目作业名称-团队信息

团队名称: BUG组 队长: 学号:2015035107059 姓名:王志昂 队员: 学号:2015035107010 姓名:郑月 学号:2015035107034 姓名:李古宇 学号:2015035107223 姓名:孙晨旭 学号:2015035107018 姓名:程冠菲 学号:2015035107003 姓名:鞠牧孜 团队编程项目作业名称:学生成绩管理系统

《团队-团队编程项目作业名称-团队信息》

团队名称:Forward队长:学号:2015035107113姓名:马壮成员学号:2015035107105姓名:李志宇学号:2015035107114姓名:年光宇学号:2015035107128姓名:邢云淇学号:2015035107136姓名:张良学号:2015035107109姓名:刘子轩 团队编程项目作业名称:Python 爬取豆瓣电影top250所有电影选择该团队编程项目原因:我们学的反向不同,所以用python编写,我们认为选择这个项目用python写更简洁些

《结对-结对编项目作业名称-开发环境搭建过程》

<结对-结对编项目作业名称-开发环境搭建过程>要求:选择适合的开发工具,搭建开发环境及环境搭建过程. 1.开发工具:Python Python,是一种面向对象.直译式计算机编程语言,具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内

《团队-团队编程项目作业名称-代码设计规范》

如何才能写出好代码呢? 在一次讲座上,我听了一位编程大神的看法,在这里分享给大家. 好的代码应该至少具备下面这6个特点: 使用空行来分割逻辑 使用注释和花括号 不用的代码和引用删除 不要用中文拼音做变量名 可用,清晰优雅,高效 多写代码,多思考 使用空行来分割逻辑 一般代码超过30行左右,我们就在考虑,要不要把这些代码封装到一个方法中去.但是即使把这一大段代码扔到一个方法中去,在主函数里调用这个方法,也不能保证以后不会修改这个方法了.所以为了自己和他人,还是有必要对比较长的代码做一些处理. 一般

《团队-团队编程项目作业名称-开发文档》

项目托管平台地址:https://github.com/Vcandoit/Notepad.git 我在本次团队项目作为项目主管,并且进行测试  主要工作: 1.配合组长完成结尾工作 2.保证项目的进度 3.完成项目的各个测试

《团队-团队编程项目作业名称-成员简介及分工》

项目名称:学生成绩管理系统 成员: 鞠牧孜 负责:前端开发.

团队-团队编程项目作业名称-设计文档

项目名称:象棋游戏成员:郭依程 高承志 马文婷 祁昊 陈智鹏开发环境:谷歌浏览器 , HBuilder 现实功能1,人机对战,红棋先行(有时间的话会添加人人对战)2,一方获胜时会有弹窗提示3,判定和棋4,设定bgm再成功实现以上建议功能后,尝试添加复杂规则,尝试添加游戏时间以及出手时间.

团队-团队编程项目作业名称-团队一阶段互评

团队名称:加油啊 学号:2015035107149 得分:3.5原因:组织我们完成任务,积极 学号:2015035107150得分: 8原因: 在遇到问题的时候,积极查找资料,帮助我们解决问题 学号:2015035107151得分:2.5原因:积极参加团队合作,帮助团队完成任务 学号:2015035107153 得分: 5原因沟通组员,是我们的团队更加的完整,有责任心 学号:2015035107154 得分: 7原因: 测试代码,发现问题 学号:2015035107155得分:6.5原因: 有美