エラーが発生しています。

バブルソート

by mjhd, at 2015年8月 5日 18:12:45

powered by hsp3dish.js / OpenHSP

コメント
説明

ただのアートです

昔の作品です
http://hsp.tv/contest2009/list_s2.html

#include "hsp3dish.as"

#const CELL_H 12
#const CELL_W 12

#const SCRN_W 640
#const SCRN_H 480

#define CELL_N_V (SCRN_H/CELL_H)
#define CELL_N_H (SCRN_W/CELL_W)

#const COL_DIV 255
#define COL_PER (255/COL_DIV)

	// 初期化
	screen 0, 640, 480
	randomize 
	
	dim val, CELL_N_H, CELL_N_V
	
	has_changed = 1
	direction = -1
	
	repeat CELL_N_H
		x = cnt
		repeat CELL_N_V
			y = cnt
			
			val(x, y) = rnd(COL_DIV)
			
		loop
	loop

*main

	if (has_changed) {
		has_changed = 0

		repeat CELL_N_H
			x = cnt
			
			y = -1
			if (direction < 0) {
				y = CELL_N_V - 1
			}
			
			repeat CELL_N_V - 1
				y += direction
				
				if (direction*val(x, y) < direction*val(x, y+1)) {
					tmp = val(x, y)
					val(x, y)   = val(x, y+1)
					val(x, y+1) = tmp
					
					has_changed = 1
				}
			
			loop
		loop
	} else {
	
		direction *= -1
		has_changed = 1
	
	}

	// 画面の書き換えを止める
	redraw 0

	repeat CELL_N_H
		x = cnt
		repeat CELL_N_V
			y = cnt
			color val(x,y)*COL_PER, val(x,y)*COL_PER, val(x,y)*COL_PER
			boxf x*CELL_W,y*CELL_H,(x+1)*CELL_W,(y+1)*CELL_H
		loop
	loop

	// 画面の書き換えを反映
	redraw 1
	
	// 60ミリ秒待つ
	await 60

	// *mainまで戻る
	goto *main

作成者
icon

mjhd

ここはユーザの紹介文

詳しく...


関連プログラム