Skip to content

Instantly share code, notes, and snippets.

@qex
Created July 3, 2015 22:27
Show Gist options
  • Save qex/8dcc7c117ca7111b0489 to your computer and use it in GitHub Desktop.
Save qex/8dcc7c117ca7111b0489 to your computer and use it in GitHub Desktop.
单纵就是干
/* player defination ... */
var Players = {
Sunyanzi : { HP:100, ATT:20, DEF:5 },
ikaros : { HP:100, ATT:15, DEF:5 }
};
/* initialize battle field ... */
var queue = [];
/* decide fighting order ... */
for ( name in Players )
Math.random() < 0.5 ? queue.push( name ) : queue.unshift( name );
/* so who will take first blood ..? */
var attacker = queue.shift();
/* battle roar ... */
console.log( attacker + "开始了战斗!" );
/* it is a good day to die ... */
try {
/* just one player ..? */
if ( ! queue.length )
throw new message( attacker + "揍了自己一顿,感觉十分开心。" );
/* fight until die ... */
while ( 1 ) {
/* pick defender ... */
var defender = queue.shift();
/* calculate damage ... */
var damage = parseInt( Math.random() * ( Players[attacker].ATT - Players[defender].DEF ) );
/* settle ... */
Players[defender].HP -= damage;
/* print battle log ... */
if ( damage > Players[defender].DEF * 2 )
console.log( attacker + "的会心一击," + defender + "受到" + damage + "点伤害!" );
else if ( 0 == damage )
console.log( attacker + "的攻击,但并没有命中" + defender + "。" );
else
console.log( attacker + "的攻击," + defender + "受到" + damage + "点伤害。" );
/* enemy down ..? */
if ( Players[defender].HP < 1 )
/* is there another enemy ..? */
if ( queue.length ) {
/* battle log ... */
console.log( attacker + "将" + defender + "击倒!" );
/* get new defender ... */
defender = queue.shift();
/* victory ... */
} else throw new message( attacker + "英勇的胜利!" );
/* have a rest ... */
queue.push( attacker );
/* start a new round ... */
attacker = defender;
}
} catch ( e ) {
/* ending message ... */
console.log( e.text );
}
/* object of end battle message ... */
function message( text ) { this.text = text; }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment