国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一堂生動(dòng)有趣的C#實(shí)驗(yàn)課的教學(xué)設(shè)計(jì)

2012-04-29 15:46:55胡巧兒
電腦知識與技術(shù) 2012年9期
關(guān)鍵詞:實(shí)驗(yàn)課教學(xué)設(shè)計(jì)游戲

胡巧兒

摘要:如何利用實(shí)驗(yàn)教學(xué)這個(gè)環(huán)節(jié)提高學(xué)生的編程技巧及興趣,該文中設(shè)計(jì)了一堂生動(dòng)有趣的C#實(shí)驗(yàn)課的教學(xué)過程。通過由簡單到復(fù)雜,步步推進(jìn)的方式,引導(dǎo)學(xué)生在上機(jī)時(shí)把“龜兔賽跑”這一個(gè)婦孺皆知的兒童故事制作成一個(gè)簡單的游戲,在達(dá)到教學(xué)目的同時(shí),可以激發(fā)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的熱情和興趣。

關(guān)鍵詞: C#實(shí)驗(yàn)課;圖像繪制;“龜兔賽跑”游戲;教學(xué)設(shè)計(jì)

中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)09-2144-05

A Lively and Interesting C # Experimental Teaching Design

HU Qiao-er

(Jiangsu Maritime Institue, Nanjing 211170, China)

Abstract:How to use the experimental teaching this link to improve the programming skills and interests, this paper design a vivid and interesting C # experiment teaching process. Through from simple to complex, step by step way, guide the machine when the students to" the tortoise and the hare" this one even woman and children all know the childrens story into a simple game, in the teaching aim can be achieved at the same time, can stimulate the students enthusiasm and interest in learning program design.

Key words:C # experiment course; Image rendering;“the tortoise and the hare" game; teaching design

1概述

眾所周知,實(shí)驗(yàn)教學(xué)是程序設(shè)計(jì)語言理論教學(xué)的重要輔助手段。C#作為一門程序設(shè)計(jì)語言,在教學(xué)過程中上機(jī)實(shí)驗(yàn)是一項(xiàng)必不可少的教學(xué)環(huán)節(jié)。通過實(shí)驗(yàn)課,可以驗(yàn)證、鞏固理論課堂教學(xué)所學(xué)的知識點(diǎn),并提高學(xué)生的程序設(shè)計(jì)能力。然而,程序設(shè)計(jì)是邏輯性很強(qiáng)的一項(xiàng)艱苦工作,教師如何在課前做好充分的準(zhǔn)備工作,通過實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)過程的設(shè)計(jì)以及實(shí)驗(yàn)素材的提供,激發(fā)學(xué)生的學(xué)習(xí)興趣,是決定實(shí)驗(yàn)課成敗的重要因素之一。下面通過實(shí)現(xiàn)一個(gè)簡單的“龜兔賽跑”游戲,設(shè)計(jì)一堂生動(dòng)有趣的C#實(shí)驗(yàn)課的教學(xué)過程,以供同行參考。

2實(shí)驗(yàn)教學(xué)設(shè)計(jì)

2.1設(shè)計(jì)實(shí)驗(yàn)內(nèi)容

2.1.1基本部分:(達(dá)到本次實(shí)驗(yàn)基本目的)

1)在窗體內(nèi)畫一只龜和一只兔比賽跑步,用按鈕控制比賽開始或結(jié)束。

2)添加背景跑道,顯示烏龜和兔子跑過的距離

3)添加控制兔子停下來休息的按鈕

2.1.2擴(kuò)展部分:(已學(xué)知識點(diǎn)綜合應(yīng)用,增加編程興趣、提高編程技巧)

1)添加比賽結(jié)果信息顯示:窗體繪制一朵大紅花,并繪制文本“XX贏了!”2)添加計(jì)數(shù)器,控制比賽在龜或兔先跑完二個(gè)來回后結(jié)束

2.2提供實(shí)驗(yàn)素材

烏龜?shù)恼锤?張圖像,兔子的正反各4張圖像,大紅花圖像,背景跑道圖像

2.3設(shè)計(jì)實(shí)驗(yàn)步驟

2.3.1基本部分

1)在窗體內(nèi)畫一只龜和一只兔比賽跑步,用按鈕控制比賽開始或結(jié)束。

a)新建1個(gè)Windows應(yīng)用程序項(xiàng)目:Bx_1

b)設(shè)置窗體屬性如下:name屬性為MainForm,Text屬性為“龜兔賽跑”,Size屬性設(shè)為適當(dāng)大小,DoubleBuffered屬性為True。

c)在窗體上添加Button控件并命名為btnPlay,Text屬性設(shè)為“開始”。

d)在窗體上添加Timer控件,Interval屬性設(shè)為150。

e)在窗體上添加2個(gè)ImageList控件,分別命名為imgTortoise、imgRabbit,ImageSize屬性均設(shè)為“100,100”,分別載入龜、兔的8張圖像

f)選中窗體,并在事件窗口中雙擊Paint事件,生成窗體的Paint事件;雙擊btnPlay控件,生成按鈕的Click事件;雙擊Timer1控件生成定時(shí)器的Tick事件。在代碼窗口中輸入代碼:(以下給出程序框架,要求學(xué)生在實(shí)驗(yàn)過程完成注解部分的代碼)

int torX = 0; //龜?shù)奈恢?/p>

int torVX=10; //龜?shù)姆较蚝兔看我苿?dòng)的距離

int torPic = 0; //龜?shù)妮啌Q圖片索引

int rabX = 0; //免的位置

int rabVX = 30; //免的方向和每次移動(dòng)的距離

int rabPic = 0; //免的輪換圖片索引

private void MainForm_Paint(object sender, PaintEventArgs e)

{//用虛擬畫布畫圖

}

private void btnPlay_Click(object sender, EventArgs e)

{//“開始”按鈕和“停止”按鈕的切換

}

private void timer1_Tick(object sender, EventArgs e)

{

//移動(dòng)龜

//當(dāng)龜方向?yàn)橛視r(shí),只取前4張圖片;方向?yàn)樽髸r(shí),只取后4張圖片

//當(dāng)龜?shù)竭_(dá)右邊界或左邊界時(shí)轉(zhuǎn)向

//移動(dòng)兔

//當(dāng)兔方向?yàn)橛視r(shí),只取前4張圖片;方向?yàn)樽髸r(shí),只取后4張圖片

//當(dāng)兔到達(dá)右邊界或右邊界時(shí)轉(zhuǎn)向

this.Refresh();

}

2)添加背景跑道,顯示烏龜和兔子跑過的距離

設(shè)置窗體BackGroudImage屬性,修改龜兔的縱坐標(biāo),使它們位于跑道上。增加2個(gè)變量,分別用于統(tǒng)計(jì)龜兔跑過的距離。

3)讓兔子停下來休息

添加命令按鈕btnRest,該按鈕的Text屬性要進(jìn)行“兔子跑了”或“兔子休息”的切換,在計(jì)時(shí)器控件的Tick事件中對兔子進(jìn)行操作前要先加上對該按鈕狀態(tài)的判斷。

2.3.2擴(kuò)展部分

1)添加比賽結(jié)果信息顯示:窗體繪制一朵大紅花,并繪制文本“XX贏了!”

在比賽結(jié)束時(shí)添加繪制大紅花及“XX贏了!”文本的語句。

2)添加計(jì)數(shù)器,控制比賽在龜或兔先跑完二個(gè)來回后結(jié)束。

增加2個(gè)變量分別做龜、兔的計(jì)時(shí)器,當(dāng)跑到它們跑到左、右邊界時(shí)計(jì)數(shù)器值加1,同時(shí)要緊跟其后增加判斷比賽是否結(jié)束的語句。

2.4運(yùn)行效果演示

完成基本部分及擴(kuò)展部分后的程序運(yùn)行效果如下面圖1、圖2所示。

圖1實(shí)驗(yàn)基本部分運(yùn)行效果

圖2程序擴(kuò)展部分運(yùn)行效果

2.5上課過程設(shè)計(jì)

“演示法”引入實(shí)驗(yàn)內(nèi)容,依據(jù)實(shí)驗(yàn)內(nèi)容分階段,先演示運(yùn)行效果,再進(jìn)行要點(diǎn)難點(diǎn)分析、講解,注意事項(xiàng)提醒,然后學(xué)生上機(jī)實(shí)驗(yàn),教師巡回輔導(dǎo),如此反復(fù),由簡單到復(fù)雜,引導(dǎo)學(xué)生一步步完成實(shí)驗(yàn)內(nèi)容,達(dá)到預(yù)期的實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)各階段要點(diǎn)、難點(diǎn)分析及注意事項(xiàng)參見表1。

表1分階段要點(diǎn)、難點(diǎn)分析

在學(xué)生上機(jī)過程中,教師要巡回輔導(dǎo),注意以“點(diǎn)”帶“面”,留意學(xué)生間存在的共性問題,通過廣播或投影進(jìn)行提醒或集體答疑。允許學(xué)生自主練習(xí)和互助練習(xí)相結(jié)合,可以大大減輕指導(dǎo)教師與學(xué)生一對多的輔導(dǎo)壓力。同時(shí)提醒學(xué)生做完一部分,調(diào)試運(yùn)行一部分,便于降低程序調(diào)試難度。

實(shí)驗(yàn)課結(jié)束前,要有評價(jià)與總結(jié)??梢哉故緜€(gè)人優(yōu)秀作品,再次提醒上機(jī)過程中發(fā)現(xiàn)的突出共性問題的解決方法。

最后,布置課后作業(yè):繼續(xù)完成擴(kuò)展部分的內(nèi)容;在學(xué)有余力的情況下,發(fā)揮想像力,對“龜兔賽跑”的故事及畫面進(jìn)行創(chuàng)意并編程實(shí)現(xiàn)。

2.6程序參考代碼

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Ex_1

{public partial class MainForm : Form

{

int torX = 0; //龜?shù)奈恢?/p>

int torVX = 10; //龜?shù)姆较蚝兔看我苿?dòng)的距離

int torPic = 0; //龜?shù)妮啌Q圖片索引

int rabX = 0; //免的位置

int rabVX = 30; //免的方向和每次移動(dòng)的距離

int rabPic = 0; //免的輪換圖片索引

int torDis = 0; //烏龜跑的路程

int rabDis = 0; //兔子跑的路程

int countTor = 0; //烏龜?shù)挠?jì)數(shù)器

int countRab = 0; //兔子的計(jì)數(shù)器

public MainForm()

{

InitializeComponent();

}

private void MainForm_Paint(object sender, PaintEventArgs e)

{

Bitmap bmp = new Bitmap(ClientSize.Width, ClientSize.Height);

Graphics g = Graphics.FromImage(bmp);

g.DrawImage(imgRabbit.Images[rabPic], rabX, 270);

g.DrawImage(imgTortoise.Images[torPic], torX, 370);

e.Graphics.DrawImage(bmp, 0, 0);

g.Dispose();

bmp.Dispose();

}

private void btnPlay_Click(object sender, EventArgs e)

{

//為了可以在運(yùn)行過程中反復(fù)開始游戲,變量需要初始化,為重新開始游戲做好準(zhǔn)備

torX = 0;

torVX = 10;

torPic = 0;

rabX = 0;

rabVX = 30;

rabPic = 0;

torDis = 0;

rabDis = 0;

countRab = 0;

countTor = 0;

timer1.Start();

btnPlay.Enabled = false; //游戲開始后,“開始”按鈕處于不可用狀態(tài)

btnRest.Enabled = true; //游戲開始后,控制兔子休息的按鈕激活

}

private void timer1_Tick(object sender, EventArgs e)

{

torX += torVX; //移動(dòng)龜

torDis += Math.Abs(torVX); //增加龜跑的路程

if (torVX > 0) //當(dāng)龜方向?yàn)橛視r(shí),只取前4張圖片;方向?yàn)樽髸r(shí),只取后4張圖片

{ torPic = (++torPic) % 4;

}else

{ torPic = 4 + (++torPic) % 4;

}

if (torX + 100 >= ClientSize.Width || torX < =0)//當(dāng)龜?shù)竭_(dá)右邊界或左邊界時(shí)轉(zhuǎn)向

{ torVX = -torVX;

countTor++; //龜?shù)慕K點(diǎn)計(jì)數(shù)器加1

}

tsslTor.Text = "烏龜跑的路程:" + torDis.ToString(); //狀態(tài)欄顯示烏龜跑的路程

if(btnRest.Text=="兔子休息")

{ rabX += rabVX; //移動(dòng)兔

rabDis += Math.Abs(rabVX); //增加兔跑的路程

if (rabVX > 0) //當(dāng)兔方向?yàn)橛視r(shí),只取前4張圖片;方向?yàn)樽髸r(shí),只取后4張圖片

{rabPic = (++rabPic) % 4;

}else

{ rabPic = 4 + (++rabPic) % 4;

} if (rabX + 100 >= ClientSize.Width || rabX <= 0) //當(dāng)兔到達(dá)右邊界或右邊界時(shí)轉(zhuǎn)向

{rabVX = -rabVX;

countRab++; //兔的終點(diǎn)計(jì)數(shù)器加1

} }

tsslRab.Text = "兔子跑的路程:" + rabDis.ToString(); //狀態(tài)欄顯示兔跑的路程

this.Refresh();

if (countRab >= 4 || countTor >= 4)

{ //比賽結(jié)束處理及信息顯示

timer1.Stop();

btnPlay.Enabled = true; //“開始”按鈕激活,準(zhǔn)備下一次比賽

btnRest.Enabled = false; //比賽結(jié)束,控制兔子的按鈕不可用

string result = "兔子贏了!";

if (torDis >= rabDis)

{

result = "烏龜贏了??!";

}

Bitmap bmp = new Bitmap(@"d:flower.jpg");

Graphics g = this.CreateGraphics();

g.DrawImage(bmp, 200, 250);//繪制“大紅花”

g.DrawString(result, new Font("隸書", 30), Brushes.Red, 400, 200);

g.Dispose();

bmp.Dispose();

} }

private void btnRest_Click(object sender, EventArgs e)

{ if(btnRest.Text=="兔子休息")

{ btnRest.Text="兔子跑了";

} else

{ btnRest.Text="兔子休息";

}}}}

3結(jié)束語

經(jīng)過多次教學(xué)實(shí)踐證明:通過本次實(shí)驗(yàn),學(xué)生能夠很好地了解動(dòng)畫制作的基本原理,掌握C#圖像繪制的方法及雙緩沖技術(shù)的使用,最重要的是:本次實(shí)驗(yàn)通過由簡單到復(fù)雜、步步推進(jìn)的方式完成一個(gè)簡單的游戲制作。利用這樣一個(gè)婦孺皆知的兒童故事,把枯燥的編程訓(xùn)練變成一堂妙趣橫生的實(shí)驗(yàn)課,學(xué)生在整個(gè)學(xué)習(xí)實(shí)驗(yàn)過程中熱情高漲,程序設(shè)計(jì)的興趣激增。(實(shí)驗(yàn)素材及代碼已上傳到http://www.csdn.net,供有興趣的讀者下載使用)

參考文獻(xiàn):

[1]王明福. C#程序設(shè)計(jì)案例教程[M].北京:科學(xué)出版社,2009

[2]陳廣. C#程序設(shè)計(jì)基礎(chǔ)教程與實(shí)訓(xùn)[M].北京:北京大學(xué)出版社,2008.

猜你喜歡
實(shí)驗(yàn)課教學(xué)設(shè)計(jì)游戲
數(shù)獨(dú)游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
高中數(shù)學(xué)一元二次含參不等式的解法探討
考試周刊(2016年79期)2016-10-13 22:17:05
“仿真物理實(shí)驗(yàn)室” 在微課制作中的應(yīng)用
考試周刊(2016年77期)2016-10-09 11:49:00
翻轉(zhuǎn)課堂在高職公共英語教學(xué)中的應(yīng)用現(xiàn)狀分析及改善建議
考試周刊(2016年76期)2016-10-09 09:18:59
提高課堂教學(xué)有效性的研究
成才之路(2016年26期)2016-10-08 11:13:47
爆笑游戲
“自由”的實(shí)驗(yàn)課
上實(shí)驗(yàn)課
第八章直接逃出游戲
深圳市| 苗栗县| 舟曲县| 梓潼县| 金寨县| 阜康市| 平南县| 如皋市| 黄平县| 葵青区| 绥化市| 北流市| 九龙坡区| 雅安市| 沙湾县| 双鸭山市| 乌拉特中旗| 阳春市| 阳朔县| 黔江区| 怀宁县| 卓资县| 方山县| 哈巴河县| 泾川县| 修文县| 汶上县| 玉屏| 江口县| 繁昌县| 石河子市| 黄冈市| 务川| 巩义市| 鄂伦春自治旗| 深水埗区| 长岛县| 凯里市| 筠连县| 岳阳市| 上饶县|