在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙元服務(wù)實(shí)戰(zhàn)-笑笑五子棋(2)

萬(wàn)少 ? 來(lái)源:jf_22972444 ? 作者:jf_22972444 ? 2025-03-31 09:20 ? 次閱讀

鴻蒙元服務(wù)實(shí)戰(zhàn)-笑笑五子棋(2)

章節(jié)導(dǎo)讀

本章節(jié)主要講解如何創(chuàng)建元服務(wù)和使用 canvas 描繪圖形

目標(biāo)

img

上一章最后講到了 笑笑五子棋 主要的技術(shù)棧如下:

  1. ArkTS API 12
  2. Canvas
  3. 元服務(wù)獨(dú)有的 AtomicServiceTabs
  4. 卡片開(kāi)發(fā)
  5. 元服務(wù)的創(chuàng)建
  6. 元服務(wù)的上架

那么本章節(jié)就開(kāi)始實(shí)現(xiàn)這個(gè)案例。

AGC 平臺(tái)上創(chuàng)建元服務(wù)

需要先在AGC平臺(tái)上項(xiàng)目,然后再新建元服務(wù)。一個(gè)項(xiàng)目可以對(duì)應(yīng)多個(gè)元服務(wù)。

image-20250104215412454

DevEco Studio 創(chuàng)建元服務(wù)工程

AGC 平臺(tái)上創(chuàng)建好了項(xiàng)目,我們可以在本地創(chuàng)建元服務(wù)。

  1. 新建元服務(wù)

image-20250104215538468


  1. 選擇 笑笑五子棋

image-20250104215654355

  1. 選擇工程位置

image-20250104215718600

  1. 元服務(wù)創(chuàng)建成功
    image-20250104220153486

Canvas 入門

Canvas提供畫布組件,用于自定義繪制圖形,開(kāi)發(fā)者使用 CanvasRenderingContext2D 對(duì)象和 OffscreenCanvasRenderingContext2D

對(duì)象在 Canvas 組件上進(jìn)行繪制,繪制對(duì)象可以是基礎(chǔ)形狀、文本、圖片等。

基本使用

canvas 的基本使用分為 4 步:

  1. 設(shè)置是否抗鋸齒抗鋸齒(Anti - aliasing)是一種在數(shù)字圖形處理中使用的技術(shù),主要用于減少圖像中因?yàn)橄袼赜邢薅a(chǎn)生的鋸齒狀邊緣的現(xiàn)象
  2. 創(chuàng)建畫布上下文
  3. 渲染畫布組件
  4. 在畫布上描繪圖案
@Entry
@Component
struct Index {
  // 1 用來(lái)配置CanvasRenderingContext2D對(duì)象的參數(shù),包括是否開(kāi)啟抗鋸齒,true表明開(kāi)啟抗鋸齒。
  private settings: RenderingContextSettings = new RenderingContextSettings(true)
  // 2 用來(lái)創(chuàng)建CanvasRenderingContext2D對(duì)象,通過(guò)在canvas中調(diào)用CanvasRenderingContext2D對(duì)象來(lái)繪制。
  private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)

  build() {
      // 3 在canvas中調(diào)用CanvasRenderingContext2D對(duì)象。
    Column(){
      Canvas(this.context)
        .width('100%')
        .height('100%')
        .backgroundColor('#F5DC62')
        .onReady(() = > {
          // 4 可以在這里繪制內(nèi)容。
          this.context.strokeRect(50, 50, 200, 150);
        })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}
  1. 效果

image-20250104222001043

canvas 常見(jiàn)用法

canvas 的核心思想是將想要的圖形如,直線、圓圈、矩形等圖形描繪到畫布上。如果想要呈現(xiàn)出比較酷炫的效果,做法是:

  1. 描繪圖形
  2. 擦除畫布
  3. 計(jì)算數(shù)值-重新描繪圖形
  4. 擦除畫布
  5. 。。。

通過(guò)以上過(guò)程實(shí)現(xiàn)動(dòng)畫效果

image-20250104223622772

canvas 的坐標(biāo)系

在 canvas 中畫圖形都是基于坐標(biāo)系來(lái)進(jìn)行的。 左上角為起點(diǎn)。

image-20250104224722034

描繪圖形

canvas 中內(nèi)置的常見(jiàn)的描繪圖形的方法有以下:

  1. 直線
  2. 矩形
  3. 弧形
  4. 文本
  5. 圖像
  6. ...

直線

描繪直線可以使用:

  1. 定起點(diǎn) moveTo
  2. 定終點(diǎn) lineTo
  3. 開(kāi)始描繪 stroke
this.context.moveTo(10, 10);
this.context.lineTo(100, 100);
this.context.stroke();

image-20250104224216771

矩形

可以使用直線lineTo自己畫成一個(gè)矩形。也可以直接使用 strokeRect直接生成矩形

lineTo 畫矩形

this.context.moveTo(10, 10);
this.context.lineTo(300, 10);
this.context.lineTo(300, 300);
this.context.lineTo(10, 300);
//   自動(dòng)閉環(huán)
this.context.closePath();
//   開(kāi)始描述 將路徑的當(dāng)前點(diǎn)移回到路徑的起點(diǎn),當(dāng)前點(diǎn)到起點(diǎn)間畫一條直線
this.context.stroke();

image-20250104225516822

strokeRect 畫矩形

// this.context.strokeRect(x, y, 寬度, 高度);
this.context.strokeRect(50, 50, 200, 150);

image-20250104225643875

弧形

弧形可以使用 arcarcTo 來(lái)描繪

arc

arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean)

參數(shù)名類型必填說(shuō)明
xnumber弧線圓心的 x 坐標(biāo)值。默認(rèn)單位:vp。
ynumber弧線圓心的 y 坐標(biāo)值。默認(rèn)單位:vp。
radiusnumber弧線的圓半徑。默認(rèn)單位:vp。
startAnglenumber弧線的起始弧度。單位:弧度
endAnglenumber弧線的終止弧度。單位:弧度
counterclockwiseboolean是否逆時(shí)針繪制圓弧。true:逆時(shí)針?lè)较蚶L制橢圓。false:順時(shí)針?lè)较蚶L制橢圓。默認(rèn)值:false。

這里需要注意的是 arc 使用的單位是弧度不是角度

一圈 = 360角度 =  2 * Math.PI
半圈 = 180角度 =  Math.PI ≈ 3.14

觀察以下效果

image-20250104230514600

100,75 是圓心坐標(biāo)

50 是半徑

0 是開(kāi)始的弧度

6.28 ≈ 2 * Math.PI = 一圈


arc 是從正右方向開(kāi)始旋轉(zhuǎn)的。

this.context.beginPath();
this.context.arc(100, 75, 50, 0, 3.14 / 2);
this.context.stroke();

image-20250104230945457

arcTo

arcTo(x1: number, y1: number, x2: number, y2: number, radius: number)

參數(shù)名類型必填說(shuō)明
x1number第一個(gè)控制點(diǎn)的 x 坐標(biāo)值。默認(rèn)單位:vp。
y1number第一個(gè)控制點(diǎn)的 y 坐標(biāo)值。默認(rèn)單位:vp。
x2number第二個(gè)控制點(diǎn)的 x 坐標(biāo)值。默認(rèn)單位:vp。
y2number第二個(gè)控制點(diǎn)的 y 坐標(biāo)值。默認(rèn)單位:vp。
radiusnumber圓弧的圓半徑值。默認(rèn)單位:vp。

image-20250104235451185

this.context.beginPath();
this.context.strokeStyle = "#000000";
this.context.lineWidth = 3;
this.context.moveTo(360, 20);
this.context.arcTo(360, 170, 110, 170, 150);
this.context.stroke();

輔助理解

想象一下,我們有一個(gè)起點(diǎn)(即當(dāng)前路徑的最后一個(gè)點(diǎn)),然后有三個(gè)更多的點(diǎn):兩個(gè)控制點(diǎn) (x1, y1) 和 (x2, y2),以及由 radius

定義的一個(gè)圓心。arcTo 會(huì)創(chuàng)建一條從起點(diǎn)到第二個(gè)控制點(diǎn) (x2, y2) 的圓弧,這條圓弧是位于以 radius 為半徑的圓周上的一部

分。該圓弧會(huì)在起點(diǎn)和第一個(gè)控制點(diǎn) (x1, y1) 之間形成一個(gè)切線,并且也會(huì)在第二個(gè)控制點(diǎn) (x2, y2) 和圓弧的終點(diǎn)之間形成一個(gè)切線。

image-20250104234845265

文本

  1. strokeText表示描邊的圖形
  2. fillText 表示填充的圖形,還有其他 fillfillRect等也表示填充。

strokeText

this.context.font = '55px sans-serif'
  this.context.strokeText("Hello World!", 20, 60)

image-20250104235533508

fillText

this.context.font = '55px sans-serif'
this.context.fillText("Hello World!", 20, 60)

image-20250104235642059

圖像

drawImage可以把圖像描繪到畫布上,很多的在線圖形合成效果都可以利用該功能實(shí)現(xiàn)

drawImage(image: ImageBitmap | PixelMap, dx: number, dy: number): void

drawImage(image: ImageBitmap | PixelMap, dx: number, dy: number, dw: number, dh: number): void

drawImage(image: ImageBitmap | PixelMap, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void

參數(shù)名類型必填說(shuō)明
imageImageBitmapPixelMap圖片資源,請(qǐng)參考 ImageBitmap 或 PixelMap。
sxnumber裁切源圖像時(shí)距離源圖像左上角的 x 坐標(biāo)值。image 類型為 ImageBitmap 時(shí),默認(rèn)單位:vp。image 類型為 PixelMap 時(shí),單位:px。
synumber裁切源圖像時(shí)距離源圖像左上角的 y 坐標(biāo)值。image 類型為 ImageBitmap 時(shí),默認(rèn)單位:vp。image 類型為 PixelMap 時(shí),單位:px。
swnumber裁切源圖像時(shí)需要裁切的寬度。image 類型為 ImageBitmap 時(shí),默認(rèn)單位:vp。image 類型為 PixelMap 時(shí),單位:px。
shnumber裁切源圖像時(shí)需要裁切的高度。image 類型為 ImageBitmap 時(shí),默認(rèn)單位:vp。image 類型為 PixelMap 時(shí),單位:px。
dxnumber繪制區(qū)域左上角在 x 軸的位置。默認(rèn)單位:vp。
dynumber繪制區(qū)域左上角在 y 軸的位置。默認(rèn)單位:vp。
dwnumber繪制區(qū)域的寬度。當(dāng)繪制區(qū)域的寬度和裁剪圖像的寬度不一致時(shí),將圖像寬度拉伸或壓縮為繪制區(qū)域的寬度。默認(rèn)單位:vp。
dhnumber繪制區(qū)域的高度。當(dāng)繪制區(qū)域的高度和裁剪圖像的高度不一致時(shí),將圖像高度拉伸或壓縮為繪制區(qū)域的高度。默認(rèn)單位:vp。
@Entry
@Component
struct Index {
  private settings: RenderingContextSettings = new RenderingContextSettings(true)
  private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
  private img: ImageBitmap = new ImageBitmap("/images/example.jpg")

  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Canvas(this.context)
        .width('100%')
        .height('100%')
        .backgroundColor('#ffff00')
        .onReady(() = > {
          this.context.drawImage(this.img, 0, 0)
          this.context.drawImage(this.img, 0, 150, 300, 100)
          this.context.drawImage(this.img, 0, 0, 500, 500, 0, 300, 400, 200)
        })
    }
    .width('100%')
    .height('100%')
  }
}

image-20250105000141244

canvas 淺嘗動(dòng)態(tài)效果 1

const width = px2vp(display.getDefaultDisplaySync().availableWidth) * 0.9;
const height = width;
let x = 0;
let y = 0;
setInterval(() = > {
  this.context.strokeRect(x, y, 100, 100);
  x++;
  y++;
}, 20);

PixPin_2025-01-05_00-07-08

canvas 淺嘗動(dòng)態(tài)效果 2

const width = px2vp(display.getDefaultDisplaySync().availableWidth) * 0.9;
const height = width;
let x = 0;
let y = 0;
setInterval(() = > {
  // 清理畫布
  this.context.strokeRect(x, y, 100, 100);
  x++;
  y++;
}, 20);

PixPin_2025-01-05_00-08-20

canvas 屬性 一覽

名稱說(shuō)明
fillStyle設(shè)置繪制的填充色,支持多種類型及對(duì)應(yīng)創(chuàng)建方式,有默認(rèn)值。
lineWidth設(shè)置繪制線條的寬度,有默認(rèn)值及取值限制。
strokeStyle設(shè)置線條的顏色,支持多種類型及對(duì)應(yīng)創(chuàng)建方式,有默認(rèn)值。
lineCap指定線端點(diǎn)的樣式,有可選值及默認(rèn)值。
lineJoin指定線段間相交的交點(diǎn)樣式,有可選值及默認(rèn)值。
miterLimit設(shè)置斜接面限制值,有默認(rèn)值及取值限制。
font設(shè)置文本繪制中的字體樣式,包含多種可選參數(shù)及默認(rèn)值。
textAlign設(shè)置文本繪制中的文本對(duì)齊方式,有可選值及默認(rèn)值。
textBaseline設(shè)置文本繪制中的水平對(duì)齊方式,有可選值及默認(rèn)值。
globalAlpha設(shè)置透明度,有默認(rèn)值。
lineDashOffset設(shè)置畫布的虛線偏移量,有默認(rèn)值。
globalCompositeOperation設(shè)置合成操作的方式,有可選值及默認(rèn)值。
shadowBlur設(shè)置繪制陰影時(shí)的模糊級(jí)別,有默認(rèn)值及取值限制。
shadowColor設(shè)置繪制陰影時(shí)的陰影顏色,有默認(rèn)值。
shadowOffsetX設(shè)置繪制陰影時(shí)和原有對(duì)象的水平偏移值,有默認(rèn)值。
shadowOffsetY設(shè)置繪制陰影時(shí)和原有對(duì)象的垂直偏移值,有默認(rèn)值。
imageSmoothingEnabled設(shè)置繪制圖片時(shí)是否進(jìn)行圖像平滑度調(diào)整,有默認(rèn)值。
height表示組件高度,有默認(rèn)單位。
width表示組件寬度,有默認(rèn)單位。
imageSmoothingQuality設(shè)置圖像平滑度,有默認(rèn)值。
direction設(shè)置繪制文字時(shí)使用的文字方向,有默認(rèn)值。
filter設(shè)置圖像的濾鏡,支持多種濾鏡效果,有默認(rèn)值。
canvas獲取和 CanvasRenderingContext2D 關(guān)聯(lián)的 Canvas 組件的 FrameNode 實(shí)例,可監(jiān)聽(tīng)可見(jiàn)狀態(tài),默認(rèn)值為 null。

canvas 方法 一覽

名稱說(shuō)明
fillRect推測(cè)用于進(jìn)行圖形填充相關(guān)操作(通常是填充矩形區(qū)域)
strokeRect推測(cè)用于繪制矩形邊框相關(guān)操作(通常是繪制矩形的輪廓)
clearRect推測(cè)用于清除指定矩形區(qū)域的內(nèi)容
fillText推測(cè)用于對(duì)文本進(jìn)行填充操作(比如設(shè)置文本填充顏色等相關(guān)樣式填充)
strokeText推測(cè)用于繪制文本的輪廓相關(guān)操作
measureText推測(cè)用于測(cè)量文本相關(guān)的尺寸等屬性
stroke一般用于繪制圖形的輪廓、線條等(按常規(guī)語(yǔ)義理解)
beginPath通常用于開(kāi)始定義一個(gè)新的路徑,后續(xù)可基于此路徑進(jìn)行圖形繪制等操作
moveTo常用來(lái)將畫筆移動(dòng)到指定坐標(biāo)位置,作為繪制路徑的起始點(diǎn)等操作
lineTo一般用于從當(dāng)前畫筆位置繪制直線到指定坐標(biāo)位置,構(gòu)建路徑內(nèi)容
closePath通常用于閉合當(dāng)前正在繪制的路徑,使路徑形成封閉圖形
createPattern可能用于創(chuàng)建某種圖案(比如重復(fù)平鋪的圖案等)用于繪制等
bezierCurveTo大概率用于繪制貝塞爾曲線,通過(guò)控制點(diǎn)來(lái)定義曲線形狀
quadraticCurveTo推測(cè)用于繪制二次貝塞爾曲線,指定控制點(diǎn)來(lái)確定曲線走向
arc一般用于繪制圓弧,通過(guò)圓心、半徑、起始角度、結(jié)束角度等參數(shù)來(lái)定義
arcTo常用來(lái)繪制與兩條切線相切的圓弧,按給定條件確定圓弧形狀
ellipse用于繪制橢圓圖形,需指定相關(guān)參數(shù)如圓心坐標(biāo)、長(zhǎng)半軸、短半軸等
rect可用于繪制矩形,指定矩形的左上角坐標(biāo)、寬度、高度等參數(shù)
fill用于對(duì)已繪制的圖形或者指定區(qū)域進(jìn)行填充操作
clip可能用于設(shè)置裁剪區(qū)域,后續(xù)繪制內(nèi)容只在裁剪區(qū)域內(nèi)顯示
reset12+從名稱看可能是在特定版本(12+)中用于重置某些狀態(tài)或設(shè)置的操作
saveLayer12+在特定版本(12+)里可能用于保存圖層相關(guān)狀態(tài)等操作
restoreLayer12+在特定版本(12+)里對(duì)應(yīng)于之前保存圖層狀態(tài)進(jìn)行恢復(fù)的操作
resetTransform推測(cè)用于重置圖形變換相關(guān)的設(shè)置(比如旋轉(zhuǎn)、縮放等變換)
rotate用于將圖形進(jìn)行旋轉(zhuǎn)操作,需指定旋轉(zhuǎn)角度等參數(shù)
scale用于對(duì)圖形進(jìn)行縮放操作,指定橫向和縱向的縮放比例
transform一般用于對(duì)圖形進(jìn)行多種變換(如平移、旋轉(zhuǎn)、縮放等組合變換)的設(shè)置
setTransform可能用于設(shè)置圖形的變換矩陣,來(lái)確定圖形的變換情況
getTransform推測(cè)用于獲取當(dāng)前圖形的變換相關(guān)信息(比如變換矩陣等)
translate用于將圖形進(jìn)行平移操作,指定在橫、縱坐標(biāo)方向平移的距離
drawImage通常用于在畫布上繪制圖像,指定圖像源及繪制位置等參數(shù)
createImageData可能用于創(chuàng)建圖像數(shù)據(jù)對(duì)象(比如像素?cái)?shù)據(jù)等相關(guān)內(nèi)容)
getPixelMap推測(cè)用于獲取像素映射相關(guān)的數(shù)據(jù)(比如圖像像素的分布等情況)
setPixelMap大概是用于設(shè)置像素映射相關(guān)數(shù)據(jù),改變圖像像素表現(xiàn)等
getImageData一般用于獲取圖像的像素?cái)?shù)據(jù)等具體信息內(nèi)容
putImageData通常是將獲取到的圖像數(shù)據(jù)(如像素?cái)?shù)據(jù))重新應(yīng)用到畫布等位置
setLineDash可能用于設(shè)置線條的虛線樣式,指定虛線的長(zhǎng)度、間隔等參數(shù)
getLineDash推測(cè)用于獲取當(dāng)前線條所設(shè)置的虛線樣式相關(guān)參數(shù)
transferFromImageBitmap從名稱看可能是與從圖像位圖進(jìn)行數(shù)據(jù)轉(zhuǎn)移相關(guān)操作
toDataURL通常用于將畫布等內(nèi)容轉(zhuǎn)換為可以表示圖像數(shù)據(jù)的 URL 格式
restore一般用于恢復(fù)之前保存的某些狀態(tài)(如畫布狀態(tài)等)
save常用來(lái)保存當(dāng)前畫布等相關(guān)的狀態(tài),以便后續(xù)恢復(fù)使用
createLinearGradient用于創(chuàng)建線性漸變對(duì)象,可用于圖形的漸變填充等操作
createRadialGradient用于創(chuàng)建徑向漸變對(duì)象,定義從中心向外擴(kuò)散的漸變效果
createConicGradient用于創(chuàng)建圓錐漸變對(duì)象,實(shí)現(xiàn)類似圓錐形狀的漸變效果

總結(jié)

這篇文章主要是介紹了元服務(wù)的創(chuàng)建和基本 canvas 的使用

如果你興趣想要了解更多的鴻蒙應(yīng)用開(kāi)發(fā)細(xì)節(jié)和最新資訊,歡迎在評(píng)論區(qū)留言或者私信或者看我個(gè)人信息,可以加入技術(shù)交流群。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AGC
    AGC
    +關(guān)注

    關(guān)注

    0

    文章

    167

    瀏覽量

    52442
  • Canvas
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    11192
  • 鴻蒙
    +關(guān)注

    關(guān)注

    59

    文章

    2542

    瀏覽量

    43834
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    labview五子棋程序

    本帖最后由 桂花酒 于 2012-6-10 13:43 編輯 labview五子棋程序,想用的可以看看!本來(lái)是發(fā)的求助帖,找五子棋程序,不過(guò)剛才下了一個(gè),鑒于論壇上現(xiàn)在已經(jīng)搜不著了(我原來(lái)下過(guò),不過(guò)刪了)一起學(xué)習(xí)!
    發(fā)表于 06-10 13:16

    五子棋的棋盤怎么么做

    做課程設(shè)計(jì),五子棋的棋盤怎么做
    發(fā)表于 07-02 23:18

    五子棋主程序前面板怎么設(shè)計(jì)

    五子棋主程序前面板怎么設(shè)計(jì)?后面版有程序了
    發(fā)表于 07-03 16:39

    用Verilog寫的一個(gè)五子棋

    在期末EDA課答辯之際寫了一個(gè)五子棋的代碼,主要用到了VGA和PS2接口的外設(shè),因?yàn)樵谧约呵玫臅r(shí)候來(lái)網(wǎng)上找過(guò),沒(méi)找到有關(guān)的資料,所以自己寫好之后就想發(fā)上來(lái)和大家討論下。基本實(shí)現(xiàn)了雙人對(duì)戰(zhàn)五子棋的功能。感覺(jué)有很多紕漏,想請(qǐng)大家指點(diǎn)
    發(fā)表于 06-15 14:40

    五子棋

    求一個(gè)五子棋的程序
    發(fā)表于 06-26 16:09

    五子棋

    自己做的五子棋,說(shuō)不上有什么難的
    發(fā)表于 08-12 21:44

    labview 虛擬五子棋

    `一個(gè)簡(jiǎn)易的五子棋程序,喜歡的可以借鑒下`
    發(fā)表于 06-16 21:57

    怎樣去設(shè)計(jì)一種人機(jī)對(duì)弈五子棋程序

    五子棋游戲應(yīng)達(dá)到幾方面的要求?怎樣去設(shè)計(jì)一種人機(jī)對(duì)弈五子棋程序?
    發(fā)表于 09-29 07:26

    五子棋程序源代碼-Matlab實(shí)現(xiàn)

    五子棋程序源代碼-M
    發(fā)表于 07-04 16:15 ?50次下載

    用java語(yǔ)言編寫的智能五子棋源程序

    用java語(yǔ)言編寫的智能五子棋源程序
    發(fā)表于 10-30 10:31 ?98次下載
    用java語(yǔ)言編寫的智能<b class='flag-5'>五子棋</b>源程序

    C語(yǔ)言五子棋

    C語(yǔ)言五子棋,有趣的東西,值得玩玩,不用看著黑框發(fā)呆
    發(fā)表于 01-12 16:49 ?2次下載

    Delphi教程_使用DrawGrid控件制作五子棋

    Delphi教程使用DrawGrid控件制作五子棋,很好的Delphi的學(xué)習(xí)資料。
    發(fā)表于 03-16 14:55 ?19次下載

    C語(yǔ)言教程之五子棋游戲的問(wèn)題

    C語(yǔ)言教程之五子棋游戲的問(wèn)題,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-25 17:07 ?0次下載

    基于LabVIEW的五子棋博弈算法

    針對(duì)目前五子棋人機(jī)對(duì)弈多數(shù)基于電腦、手機(jī),缺少真實(shí)環(huán)境的問(wèn)題,提出一種基于LabVIEW的博弈算法,并運(yùn)用于真實(shí)的五子棋人機(jī)對(duì)弈。首先通過(guò)圖像采集系統(tǒng)獲取當(dāng)前狀態(tài)下棋盤及人機(jī)雙方棋子的位置信息;然后
    發(fā)表于 12-17 11:32 ?29次下載

    鴻蒙服務(wù)實(shí)戰(zhàn)-笑笑五子棋(1)

    鴻蒙服務(wù)實(shí)戰(zhàn)-笑笑五子棋(1) 前言 作為鴻蒙應(yīng)用的深度開(kāi)發(fā)者都應(yīng)該知道,經(jīng)歷了 波瀾壯闊 1
    的頭像 發(fā)表于 03-31 09:23 ?258次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>元</b><b class='flag-5'>服務(wù)實(shí)戰(zhàn)</b>-<b class='flag-5'>笑笑</b><b class='flag-5'>五子棋</b>(1)
    主站蜘蛛池模板: 色综合久久九月婷婷色综合 | 中文字幕在线观看亚洲 | 亚洲欧洲一区二区三区在线 | 狠狠色欧美亚洲狠狠色www | 九色视频网站 | 欧美色综合高清视频在线 | 你懂的免费在线 | 大伊人网| 丁香六月综合激情 | 午夜免费网址 | 亚洲天堂资源网 | 粗又长好猛好爽 | 99久久精品国产免费 | 最好看最新的中文字幕1 | 精品女视频在线观看免费 | 天天干天天操天天拍 | 成人美女隐私免费 | 波多野结衣50连精喷在线 | 日韩亚洲人成在线综合日本 | xxx色xxx性| 国产一级大片在线观看 | 午夜影院免费观看 | 欧美一区中文字幕 | 亚洲高清免费 | 欧美xx高清 | 羞羞色男人的天堂伊人久久 | 国产精选经典三级小泽玛利亚 | 污污的黄色小说 | 色综合久久98天天综合 | 日本黄段视频 | 亚洲综合色吧 | 热久久久| 激情com | 天天做天天爱天天爽综合网 | 激情福利网站 | 日本黄色录像视频 | 亚洲网站在线看 | 一本到卡二卡三卡免费高 | 国产亚洲精品久久久久久久软件 | 国产人成精品香港三级古代 | 国产好深好硬好爽我还要视频 |