多线程乒乓球双打-服务计算概论作业

更新时间:2023-05-31 21:59:54 阅读: 评论:0

J I A N G S U U N I V E R S ITY
多线程模拟乒乓球双打
学院名称:          计算机           
专业班级:           软件1401         
学生:           吴帅帅             
学生学号: 3140608020       
            指导教师:锦富
201767
一、题目
1.manager是什么意思有四个选手, A1和A2为一个队, B1和B2为另一个队. A1首先发球(启动球), 然后B1, A2, B2将最后发球. 每一轮每个选手发2个球.
2.选手不改变他们的位置.
bbc china>腾讯开心鼠英语
3.比赛期间, 双方选手必须轮流发球,并且在同一个队伍的两个选手可以竞争发球.
4.当轮到某个选手时, 他/她可以调用一个叫做shot(rate) 的随机函数来模拟比赛,在给定概率rate以,该函数返回 “in”, 否则返回”out”. 例如 rate=85%, 则球在界的概率为85%, 出界的概率为15%.
5.goldmine如果shot函数返回”in”, 对方选手必须调用shot函数把球打回.
6.如果shot函数返回”out”, 对方选手赢得1分,随后重新发球.
7.当每个选手发完2个球后比赛终止.分数多的一方赢得比赛.分数一样多,比赛为平局.
8.每个选手作为一个线程实现.
二、实现思路
rve: 是指发球的goroutine. 
rveMetux: 发球锁。 
playerA: 是指A队伍抢到球的goroutine. 
playerB: 是指B队伍抢到球的goroutine. 
catch_chanel_A : 给A队伍的球的通道。 
catch_chanel_B : 给B队伍的球的通道。
大致步骤: 
1. rve 先加锁,后发球(将TableTennis放入通道中,如catch_chanel_A ),然后重复上锁(rveMetux)阻塞自身。capec 
2. playerA 如果catch_chanel_A 没有球,阻塞自身。如果有球,则从通道中拿到球,shot(rate) 后返回in, 记录信息后,则将球放入给B的通道catch_chanel_B中。letting go什么意思 
3. playerB 如果catch_chanel_B 没有球,阻塞自身。如果有球,则从通道中拿到球,shot(rate) 后返回in, 记录信息后,则将球放入给B的通道catch_chanel_A中。如果shot(rate)返回out, 则解除锁(rveMetux),此时rve唤醒,开始下一次发球。
三、实现代码
package main
import (
"fmt"
"sync"
"math/rand"
"container/ring"
"strings"
"time"
)
var (
澳大利亚遇百年一遇洪水    wg            sync.WaitGroup 怎样提高自己的表达能力// 用于goroutine计数
    times          = 2// 每个选手发球次数
    nums          = 4// 多少个选手
    rveTotals    = nums * times  // 总发球次数
    score_balls_A  = make([]TableTennis, 0, rveTotals) // A的得分球
    score_balls_B  = make([]TableTennis, 0, rveTotals) // B的得分球
    turn          = ring.New(4)                        // 发球顺序
    rveMetux    sync.Mutex                            // 发球锁
    catch_chanel_B = make(chan TableTennis, 0)          // B队伍接球的通道
    catch_chanel_A = make(chan TableTennis, 0)          // A队伍接球的通道
    balls_ids      = make(chanint, rveTotals)        // 球的id
)
// 乒乓球
type TableTennis struct {
    id    int
    trail string// 球的轨迹
北京鼎石国际学校}
func rve() {
元旦 英文
defer wg.Done()
// 初始化发球顺序

本文发布于:2023-05-31 21:59:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/129685.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:选手   发球   比赛   通道   函数   队伍   实现
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图