c++编程简易计算器、JavaScript游戏

本文介绍了如何使用C++编写简易计算器和JavaScript开发游戏,同时分享了针对CSDN限制复制代码的解决方法,包括通过设置浏览器console、创建书签以及使用Chrome扩展程序Simple Allow Copy来实现无限制复制。
摘要由CSDN通过智能技术生成

c++编程简易计算器、JavaScript游戏

大家好,我是纳米核心38,我“精通”C++、C、JavaScript,请大家多多指教。
计算器代码:

#include<bits/stdc++.h>
#include<windows.h>
#define p 3.1415926535897932384646433832795028841971693993751058209749445923078164062862089986280348253421170679821480
#define r p/180
using namespace std;
char ch[6]={
   'A','B','C','D','E','F'}; 
void TrunDate(int,int);
int fac(float);
int main(){
   
float i,j,k;
int l,m,n,a[10];
char cmd;
LOOP:
system("cls");
printf("\t ***********************\n");
printf("\t *******简易计算器******\n");
printf("\t ***********************\n");
printf("\n\t 本计算器提供+、-、*、/运算及以下运算:\n");
printf("\t p-代表圆周率pai。\n");
printf("\t R-代表十进制转换为二进制。\n");
printf("\t b-代表十进制转换为八进制。\n");
printf("\t l-代表十进制转换为十六进制。\n");
printf("\t d-代表该数值开方。\n");
printf("\t e-代表该数值开立方。\n");
printf("\t ^-代表求几次方。\n");
printf("\t S-代表sin。\n");
printf("\t C-代表cos。\n");
printf("\t T-代表tan。\n");
printf("\t s-代表asin。\n");
printf("\t c-代表acos。\n");
printf("\t t-代表atan。\n");
printf("\t !-代表阶乘。\n"); 
printf("\t 请输入要计算的数字和运算符号,输入“#”时,结束;输入“?”时复位。\n");

scanf("%f",&k);
while((cmd=getchar())!='#')
{
   
if(i!=0)
switch(cmd)
{
   
case '+': scanf("%f",&i);
k+=i;
printf("=%5.2f",k);
break; case '-': scanf("%f",&i);
k-=i;
printf("=%5.2f",k);
break; case '*': scanf("%f",&i);
k*=i;
printf("=%5.2f",k);
break; case '/': scanf("%f",&i);
if(i==0) {
   
cout<<"数学错误Math ERROR\n";
break;	
}
k/=i;
printf("=%5.2f",k);
break;

case 'p': k=k*p;
printf("%6.4f",k);
break; case '^': printf("请输入要求该数字的几次方:");
scanf("%d",&n);
i=k;
for(m=0;m<n-1;m++)
k=k*i;
printf("%5.2f",k);
break; case 'R': printf("转换成二进制\n");
TrunDate(k,2);
break; 
case 'b': 
printf("转换成八进制\n");
TrunDate(k,8);
break;

case 'l': printf("转换成十六进制\n");
TrunDate(k,16);
break;
case 'e': printf("该数值开立方得\n");
i=pow(k,1.0/3);
printf("%5.2f",i );
break;

case 'd': printf("该数值开方得\n");
i=k/2;
j=sqrt(k);
printf("%5.2f",j);
break; case 'S': k=k*r;
i=sin(k);
printf("%5.2f",i);
break;

case 'C': k*=r;
i=cos(k);
printf("%5.2f",i);
break; case 'T': k=k*r;
i=tan(k);
printf("%5.2f",i);
break;
 case 's': k=k*r;
 if(k>=1){
   
 	cout<<"数学错误MathERROR\n";
 	break;
 }
i=asin(k);
printf("%5.2f",i);
break;
case 'c': k*=r;
if(k>=1){
   
	cout<<"数学错误MathERROR\n";
	break;
}
i=acos(k);
printf("%.2f",i);
break; 
case 't': k*=r;
if(k>=1){
   
	cout<<"数学错误MathERROR\n";
	break;
}
i=atan(k);
printf("%.2f",i);
break; 
case '!':
	k=fac(k);
	printf("%d",k);
	break;

 case '?': goto LOOP;
 default:cout<<"语法错误Syntax ERROR\n";

}

}
}
int fac(float X){
   
	(int) X;
	return X==0?  1:X*fac(X-1);
}
void TrunDate(int n,int a){
   
	int x[17],i,j,k=0;
	if(n<0) cout<<'-'; 
	j=abs(n);
	do{
   
		k++;i=j%a;
		x[k]=i; 
	}while(j!=0);
	for(int h=k;h>=1;--h)
		if(x[h]<10) cout<<x[h];
		else cout<<ch[x[h]-10];	
}

可以在DEV-C++中复制粘贴;
游戏代码:

<body></body>
<script src="/three.js"></script>
<script src="/physi.js"></script>
<script src="/scoreboard.js"></script>

<script>
 // Physics settings
 Physijs.scripts.ammo = '/ammo.js';
 Physijs.scripts.worker = '/physijs_worker.js';

 // The "scene" is where stuff in our game will happen:
 var scene = new Physijs.Scene({
    fixedTimeStep: 2 / 60 });
 scene.setGravity(new THREE.Vector3( 0, -100, 0 ));
 var flat = {
   flatShading: true};
 var light = new THREE.HemisphereLight('white', 'grey', 0.7);
 scene.add(light);

 // The "camera" is what sees the stuff:
 var width = window.innerWidth,
     height = window.innerHeight,
     aspectRatio = width / height;
 var camera = new THREE.PerspectiveCamera(75, aspectRatio, 1, 10000);
 // var camera = new THREE.OrthographicCamera(
 //   -width/2, width/2, height/2, -height/2, 1, 10000
 // );
 camera.position.z = 500;
 camera.position.y = 200;
 camera.lookAt(new THREE.Vector3(0,0,0));
 scene.add(camera);

 // The "renderer" draws what the camera sees onto the screen:
 var renderer = new THREE.WebGLRenderer({
   antialias: true});
 renderer.setSize(window.innerWidth, window.innerHeight);
 document.body.appendChild(renderer.domElement);
 document.body.style.backgroundColor = '#ffffff';
 // ******** START CODING ON THE NEXT LINE ********

 function Launcher(location) {
   
   this.location = location;
   this.color = 'yellow';
   if (location == 'right') this.color = 'lightblue';
   this.angle = 0;
   this.power = 0;
   this.draw();
   this.keepScore();
 }
 Launcher.prototype.draw = function() {
   
   var direction = new THREE.Vector3(0, 1, 0);
   var x = 0;
   if (this.location == 'left') x = -100;
   if (this.location == 'right') x = 100;
   var position = new THREE.Vector3( x, -100, 250 );
   var length = 100;
   this.arrow = new THREE.ArrowHelper(
     direction,
     position,
     length,
     this.color
   );
   scene.add(this.arrow);
 };
 Launcher.prototype.vector = function() {
   
   return new THREE.Vector3(
     Math.sin(this.angle),
     Math.cos(this.angle),
     0
   );
 };
 Launcher.prototype.moveLeft = function(){
   
   this.angle = this.angle - Math.PI / 100;
   this.arrow.setDirection(this.vector());
 };
 Launcher.prototype.moveRight = function(){
   
   this.angle = this.angle + Math.PI / 100;
   this.arrow.setDirection(this.vector());
 };
 Launcher.prototype.powerUp = function(){
   
   if (this.power >= 100) return;
   this.power = this.power + 5;
   this.arrow.setLength(this.power);
 };
 Launcher.prototype.launch = function(){
   
   var shape = new THREE.SphereGeometry(10);
   var material = new THREE.MeshPhongMaterial({
   color: this.color});
   var ball = new Physijs.SphereMesh(shape, material, 1);
   ball.name = 'Game Ball';
   ball.scoreboard = this.scoreboard;
   var p = this.arrow.position;
   ball.position.set(p.x, p.y, p.z);
   scene.add(ball);

   var speedVector = new THREE.Vector3(
     2.5 * this.power * this.vector().x,
     2.5 * this.power * this.vector().y,
    -80
   );
   ball.setLinearVelocity(speedVector);

   this.power = 0;
   this.arrow.setLength(100);
 };
 Launcher.prototype.keepScore = function(){
   
   var scoreboard = new Scoreboard('top' + this.location);
   scoreboard.countdown(60);
   scoreboard.score(0);

   var moveKeys;
   if (this.location == 'left') moveKeys = 'A和 D';
   if (this.location == 'right') moveKeys = 'J和L';
   if (this.location == 'left') aKeys = 'A and D';
   if (this.location == 'right') aKeys = 'J and L';


   var launchKeys;
   if (this.location == 'left') launchKey = 'S';
   if (this.location == 'right') launchKey = 'K';

   scoreboard.help(
   '用'+moveKeys+'键调整发射角度!'+
   '用'+launchKey+'键储力!'+
   '松开'+launchKey+'键发射球!'+
   '小心有风!'+
     'Use the' + aKeys +'  keys to point the launcher. ' +
     'Press and hold the ' + launchKey + ' key to power up the launcher. ' +
     'Let go of the ' + launchKey + ' key to launch. ' +
     'Watch out for the wind!!!'
   );
   scoreboard.onTimeExpired(timeExpired);
     function timeExpired() {
   
     if (launcher2.scoreboard.getScore() < launcher1.scoreboard.getScore()) 
     {
   
       launcher2.scoreboard.message("游戏结束,你输了):,别灰心,用R键再来一次!Game Over you lost): not lose hear,keep the R key again!");
       launcher1.scoreboard.message("游戏结束,你赢了(:,用R键再来一次!Game Over you win(:,keep the R key again!");
     }
     
     else if(launcher2.scoreboard.getScore
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值